Skip to content

Commit

Permalink
Версия 0.3.1
Browse files Browse the repository at this point in the history
- Добавлена возможность отключать загрузку текстурпака, если он уже установлен вручную
- Конфиг файл изменен: добавлена опция force-download-resourcepack для включения и отключения загрузки текстурпака, а также изменены названия пунктов donation-amounts и twitch-filter
- Добавлено уведомление о необходимости использования Optifine с возможностью отключения уведомления в файле конфигурации плагина
  • Loading branch information
link1107 committed Jan 31, 2022
1 parent 0716ee6 commit b5313d1
Show file tree
Hide file tree
Showing 11 changed files with 53 additions and 50 deletions.
2 changes: 2 additions & 0 deletions src/main/java/igorlink/command/ReloadSubCommand.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package igorlink.command;

import igorlink.donationexecutor.DonationExecutor;
import igorlink.service.MainConfig;
import igorlink.service.Utils;
import org.bukkit.command.CommandSender;
Expand All @@ -8,6 +9,7 @@
public class ReloadSubCommand {
public static void onReloadCommand(CommandSender sender) throws InterruptedException {
MainConfig.loadMainConfig(true);
DonationExecutor.getInstance().streamerPlayersManager.reload();
Utils.logToConsole("Настройки успешно обновлены!");
if (sender instanceof Player) {
Utils.sendSysMsgToPlayer(((Player) sender).getPlayer(), "Настройки успешно обновлены!");
Expand Down
12 changes: 10 additions & 2 deletions src/main/java/igorlink/donationexecutor/GeneralEventListener.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package igorlink.donationexecutor;

import igorlink.service.MainConfig;
import igorlink.service.Utils;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
Expand All @@ -25,9 +26,16 @@ public void onComburst(EntityCombustEvent e){
//Закачка ресурспака и оповещение о том, что плагин не активен, если он не активен
@EventHandler
public void onJoin(PlayerJoinEvent e) {
e.getPlayer().setResourcePack("https://download.mc-packs.net/pack/4923efe27212858f64c3ba65ff4bd35a42dadfb0.zip", Utils.decodeUsingBigInteger("4923efe27212858f64c3ba65ff4bd35a42dadfb0"));
if (MainConfig.isForceResourcePack()) {
e.getPlayer().setResourcePack("https://download.mc-packs.net/pack/4923efe27212858f64c3ba65ff4bd35a42dadfb0.zip", Utils.decodeUsingBigInteger("4923efe27212858f64c3ba65ff4bd35a42dadfb0"));
}

if (MainConfig.isOptifineNotificationOn()) {
sendSysMsgToPlayer(e.getPlayer(), "для отображения кастомных скинов плагина на вашем\nклиенте игры должен быть установлен мод §bOptiFine.\n \n§fЕсли у вас не установлен данный мод, скачать его вы\nможете по ссылке: §b§nhttps://optifine.net/downloads\n\n§7§oДанное оповещение можно отключить в файле настроек\nплагина в папке сервера /plugins/DonationExecutor/\n \n");
}

if (!isPluginActive()) {
sendSysMsgToPlayer(e.getPlayer(), " плагин не активен. Укажите токен и свой никнейм в файле конфигурации плагина и перезапустите сервер.");
sendSysMsgToPlayer(e.getPlayer(), "плагин не активен. Укажите токен и свой никнейм в файле конфигурации плагина и перезапустите сервер.");
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
import static org.bukkit.Bukkit.getPlayerExact;

//Класс гигантского моба
public class GiantMob {
class GiantMob {
private int timesThisGiantMobIsOnOnePlace = 0;
private String thisGiantMobPlayerCurrentTargetName = null;
private int stepsAfterHiding = 0;
Expand All @@ -37,7 +37,7 @@ public class GiantMob {
//Конструктор гигантского моба

//Создаем моба, заспавнив его и указав Имя-тип
public GiantMob(@NotNull Location playerLocation, String mobName) {
GiantMob(@NotNull Location playerLocation, String mobName) {

//Определяем направление игрока и спавним моба перед ним, повернутым к игроку лицом
Vector playerDirection = playerLocation.getDirection();
Expand All @@ -56,7 +56,7 @@ public GiantMob(@NotNull Location playerLocation, String mobName) {
}

//Добавляем существующего
public GiantMob(@NotNull LivingEntity giantMobLivingEntity) {
GiantMob(@NotNull LivingEntity giantMobLivingEntity) {
this.giantMobLivingEntity = giantMobLivingEntity;

//Заставляем бегать и стрелять
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,11 @@
import org.bukkit.event.entity.ProjectileHitEvent;
import org.bukkit.util.Vector;

public class GiantMobEventListener implements Listener {
class GiantMobEventListener implements Listener {

private GiantMobManager thisInstanceOfGiantMobManager;

public GiantMobEventListener(GiantMobManager _thisInstanceOfGiantMobManager) {
GiantMobEventListener(GiantMobManager _thisInstanceOfGiantMobManager) {
thisInstanceOfGiantMobManager = _thisInstanceOfGiantMobManager;
}

Expand All @@ -29,7 +29,7 @@ private void onGiantMobAddTOWorld(EntityAddToWorldEvent e) {
//Удаляем моба из нашего списка, когда он исчезает с карты
@EventHandler
private void onGiantMobRemoveFromWorld(EntityRemoveFromWorldEvent e) {
if (thisInstanceOfGiantMobManager.contains((LivingEntity) e.getEntity())) {
if ( (e.getEntity() instanceof Giant) && (thisInstanceOfGiantMobManager.contains((LivingEntity) e.getEntity())) ) {
thisInstanceOfGiantMobManager.removeMob((LivingEntity) e.getEntity());
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ public StreamerPlayer(@NotNull String _streamerPlayerName, DonationAlertsToken d
//Заполняем список сумм для донатов
String amount;
for (String execName : Executor.executionsNamesList) {
amount = config.getString("DonationAmounts." + donationAlertsToken.getToken() + "." + streamerPlayerName + "." + execName);
amount = config.getString("donation-amounts." + donationAlertsToken.getToken() + "." + streamerPlayerName + "." + execName);
if (!(amount==null)) {
listOfAmounts.put(amount, execName);
} else {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ public void run() {
}

private void getTokensFromConfig() {
Set<String> tokensStringList = MainConfig.getConfig().getConfigurationSection("DonationAmounts").getKeys(false);
Set<String> tokensStringList = MainConfig.getConfig().getConfigurationSection("donation-amounts").getKeys(false);
for (String token : tokensStringList) {
this.addTokenToList(token);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ public DonationAlertsToken(String token) {
e.printStackTrace();
}

for (String spName : MainConfig.getConfig().getConfigurationSection("DonationAmounts." + token).getKeys(false)) {
for (String spName : MainConfig.getConfig().getConfigurationSection("donation-amounts." + token).getKeys(false)) {
listOfStreamerPlayers.add(new StreamerPlayer(spName, this));
}
}
Expand Down
48 changes: 14 additions & 34 deletions src/main/java/igorlink/service/MainConfig.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,8 @@ public class MainConfig {
public static List<String> listOfBlackListedSubstrings = new ArrayList<>();
public static List<String> listOfWhiteListedSubstrings = new ArrayList<>();
private static Boolean twitchFilter;

public MainConfig() {

}
private static Boolean forceResourcePack;
private static Boolean optifineNotification;

//Геттер конфига
public static FileConfiguration getConfig(){
Expand All @@ -44,53 +42,35 @@ public static void loadMainConfig(Boolean isReload) throws InterruptedException
//Если это перезагрузка, обновляем данные, очищаем список игроков
if (isReload) {
DonationExecutor.getInstance().reloadConfig();
DonationExecutor.getInstance().streamerPlayersManager.reload();
}

config = DonationExecutor.getInstance().getConfig();

dirtAmount = Integer.valueOf(config.getString("DirtAmount"));
diamondsAmount = Integer.valueOf(config.getString("DiamondsAmount"));
breadAmount = Integer.valueOf(config.getString("BreadAmount"));
bigBoomRadius = Integer.valueOf(config.getString("BigBoomRadius"));
dirtAmount = config.getInt("DirtAmount");
diamondsAmount = config.getInt("DiamondsAmount");
breadAmount = config.getInt("BreadAmount");
bigBoomRadius = config.getInt("BigBoomRadius");

token = config.getString("DonationAlertsToken");
listOfBlackListedSubstrings = config.getStringList("BlacklistedSubstrings");
listOfWhiteListedSubstrings = config.getStringList("WhitelistedSubstrings");

twitchFilter = config.getBoolean("TwitchFilter");

optifineNotification = config.getBoolean("notify-about-optifine");
twitchFilter = config.getBoolean("twitch-filter");
forceResourcePack = config.getBoolean("force-download-resourcepack");
}


public static void turnFilterOn() {
twitchFilter = true;
}
public static void turnFilterOff() { twitchFilter = false; }

public static void turnFilterOff() {
twitchFilter = false;
}

public static Boolean getFilterStatus() {
return twitchFilter;
}

public static HashMap<String, String> getNameAndExecution (@NotNull String donationAmount) {
String thisDonateForStreamerName = null;
String nameOfExecution = null;
for (String p : donationAmountsHashMap.keySet()) {
if (donationAmountsHashMap.get(p).containsKey(donationAmount)) {
HashMap<String, String> temp = new HashMap<String, String>();
thisDonateForStreamerName = p;
nameOfExecution = donationAmountsHashMap.get(p).get(donationAmount);
temp.put("name", p);
temp.put("execution", nameOfExecution);
return temp;
}
}

return null;
public static Boolean getFilterStatus() { return twitchFilter; }
public static Boolean isForceResourcePack() {
return forceResourcePack;
}
public static Boolean isOptifineNotificationOn() { return optifineNotification; }


}
2 changes: 1 addition & 1 deletion src/main/java/igorlink/service/Utils.java
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ public static byte[] decodeUsingBigInteger(String hexString) {
}

public static Boolean CheckNameAndToken() {
Set<String> tokensSet = MainConfig.getConfig().getConfigurationSection("DonationAmounts").getKeys(false);
Set<String> tokensSet = MainConfig.getConfig().getConfigurationSection("donation-amounts").getKeys(false);
if ( ((tokensSet.contains("xxxxxxxxxxxxxxxxxxxx")) && (tokensSet.size() == 1)) || (tokensSet.isEmpty()) ) {
logToConsole("Вы не указали свой токен DonationAlerts в файле конфигурации плагина, поэтому сейчас плагин не работает.");
_isPluginActive = false;
Expand Down
19 changes: 16 additions & 3 deletions src/main/resources/config.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# Секретный токен Donation Alerts.
# Находится на Donation Alerts на странице "Настройки" -> "Основные настройки".

# Список Токенов, Игроков и событий
DonationAmounts:
# Список Токенов, игроков, на которых действуют донаты, а также событий, вызываемых донатами
donation-amounts:
# Первый токен - замените строку ниже на токен со страницы https://www.donationalerts.com/dashboard/general (кнопка "показать секретный токен")
xxxxxxxxxxxxxxxxxxxx:
# Имя первого стримера, связанного с первым токеном
Expand Down Expand Up @@ -85,8 +85,21 @@ BreadAmount: 4
# Радиус взрыва от BigBoom
BigBoomRadius: 20

# ДЛЯ КОРРЕКТНОГО ОТОБРАЖЕНИЯ КАСТОМНЫХ СКИНОВ ПЛАГИНА У ИГРОКОВ ДОЛЖЕН БЫТЬ УСТАНОВЛЕН МОД OPTIFINE - https://optifine.net/downloads
# ЧТОБЫ ОТКЛЮЧИТЬ УВЕДОМЛЕНИЯ О НЕОБХОДИМОСТИ УСТАНОВИТЬ ОПТИФАЙН, ИЗМЕНИТЕ ЗНАЧЕНИЕ НИЖЕ С "true" НА "false"
notify-about-optifine: true

# Настройка force-download-resourcepack включает/отключает загрузку ресурспака для отображения
# кастомных скинов плагина игрокам при входе на сервер

# Эту настройку можно отключить (заменить true на false), если у всех игроков на сервере вручную установлен ресурспак плагина
# Отключение позволит сократить время входа на сервер, но игроки, не установившие ресурспак вручную не смогут видеть кастомные скины
# Ссылка на ресурспак для установки вручную (скачанный файл закинуть в папку с игрой /.minecraft/resourcepacks):
# https://download.mc-packs.net/pack/4923efe27212858f64c3ba65ff4bd35a42dadfb0.zip
force-download-resourcepack: true

# Фильтр ников для твитча: true - вкл, false - выкл
TwitchFilter: true
twitch-filter: true
# Блеклист субстрок для фильтра
BlacklistedSubstrings:
- негр
Expand Down
2 changes: 1 addition & 1 deletion src/main/resources/plugin.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name: DonationExecutor
version: 0.2 Beta
version: 0.3.1 Beta
main: igorlink.donationexecutor.DonationExecutor
api-version: 1.18
authors: [Igor Link]
Expand Down

0 comments on commit b5313d1

Please sign in to comment.