Плагин [ADMN/EDIT/FIX] ADamageModifier v1.2 [1.6.1-1.12.1]

Azim_D3Tm

Активный участник
Пользователь
Баллы
76
ADamageModifier - плагин для редактирования получаемого сущностью урона.
Версия: 1.3

Как уже сказано выше, данный плагин предназначен для изменения урона, получаемого сущностью.
Данный плагин легок в использовании и почти не нагружает сервер.
Я писал этот плагин, как "фикс" получаемого игроками урона - мод terrafirmacraft не дружит с KCauldron, в следствие чего, урон от "окружения" остался дефолтным, в то время как здоровье игроков подлетело до 1000.
Но, во время написания кода, понял, что функционал можно расширить.
На данный момент, плагин позволяет модифицировать получаемый сущностями урон по формуле:
Урон * коэффициент для текущего типа урона * коэффициент для текущей сущности


PHP:
debug: false #режим отладки
types:
  damage: #тут будут перечислены все DamageCause текущего сервера (включая модовые)
    FALL: #причина урона
      enable: false #включена ли проверка
      counter: 1.0 #на это число будет умножен урон
  entity: #тут будут перечислены все EntityType текущего сервера (включая модовые)
    PLAYER: #существо, которому нанесли урон
      enable: true #включена ли проверка
      counter: 1.0 #на это число будет умножен урон

Поддерживаемые версии:
Минимальная: Craftbukkit 1.6.1 R0.1 SNAPSHOT
Последняя: CraftBukkit 1.12.1

Страница на spigot
Страница на dev bukkit


Скачать (v1.3):
Я. диск , DevBukkit
md5: 3147D15AB4E00CFE46149E437ABFC9E1

Скачать (v1.2):
Я. диск , Второй Я. диск
md5: 641D32574F23BE8AAE95F4526879628D

Скачать (v1.1):
Я. диск , Второй Я. диск
md5: 1D0B48537305912756CA2F174E7433EC

Скачать (v1.0):
Я. диск , Второй Я. диск
md5: 38C1CD8342F8BB93E65242DFC328EA23

Сорцы

TODO:
  • Реализовать годные идеи из комментов, если таковые будут

Лог изменений:
Версия 1.3
  • Изменен дебаг
  • Оптимизирован конфиг
Версия 1.2
  • Более информативное сообщение при загрузке
  • Незначительные багфиксы
  • Рассчитаны поддерживаемые версии
Версия 1.1
  • Добавлена поддержка всех типов Entity, которые может поддерживать целевой сервер
  • Добавлена поддержка всех типов урона, которые может поддерживать целевой сервер
  • Изменен способ подгрузки конфига
  • Добавлена команда перезагрузки конфигов /admgm reload (admgm.reload)
Версия 1.0
  • Скомпилил и залил на rubukkit
 
Последнее редактирование:
Данный плагин всё ещё тестируется, буду очень признателен всем отчетам об ошибках👍
 
Вот когда сделаешь то что в TODO тогда и поговорим, такое 20 минут пишется
 
А ты не мог создать сразу дефолт конфиг а потом его уже подгружать?
public void loadConfiguration(){

//getConfig().addDefault("ApplyOnlyToPlayers","true");
getConfig().addDefault("debug", false);
getConfig().addDefault("types.FALL.enable", false);
getConfig().addDefault("types.FALL.counter", 1.0);

getConfig().addDefault("types.DROWNING.enable", false);
getConfig().addDefault("types.DROWNING.counter", 1.0);

getConfig().addDefault("types.SUFFOCATION.enable", false);
getConfig().addDefault("types.SUFFOCATION.counter", 1.0);

getConfig().addDefault("types.CONTACT.enable", false);
getConfig().addDefault("types.CONTACT.counter", 1.0);

getConfig().addDefault("types.ENTITY_ATTACK.enable", false);
getConfig().addDefault("types.ENTITY_ATTACK.counter", 1.0);

getConfig().addDefault("types.FALLING_BLOCK.enable", false);
getConfig().addDefault("types.FALLING_BLOCK.counter", 1.0);

getConfig().addDefault("types.EXPLOSION.enable", false);
getConfig().addDefault("types.EXPLOSION.counter", 1.0);

getConfig().addDefault("types.FIRE.enable", false);
getConfig().addDefault("types.FIRE.counter", 1.0);

getConfig().addDefault("types.FIRE_TICK.enable", false);
getConfig().addDefault("types.FIRE_TICK.counter", 1.0);

getConfig().addDefault("types.LAVA.enable", false);
getConfig().addDefault("types.LAVA.counter", 1.0);

getConfig().addDefault("types.LIGHTNING.enable", false);
getConfig().addDefault("types.LIGHTNING.counter", 1.0);

getConfig().addDefault("types.PROJECTILE.enable", false);
getConfig().addDefault("types.PROJECTILE.counter", 1.0);

getConfig().options().copyDefaults(true);
saveConfig();


}

if(getConfig().getBoolean("types.FALL.enable")){
list.put(DamageCause.FALL, getConfig().getDouble("types.FALL.counter"));

}

if(getConfig().getBoolean("types.DROWNING.enable")){
list.put(DamageCause.DROWNING, getConfig().getDouble("types.DROWNING.counter"));
}

if(getConfig().getBoolean("types.SUFFOCATION.enable")){
list.put(DamageCause.SUFFOCATION, getConfig().getDouble("types.SUFFOCATION.counter"));
}

if(getConfig().getBoolean("types.CONTACT.enable")){
list.put(DamageCause.CONTACT, getConfig().getDouble("types.CONTACT.counter"));
}

if(getConfig().getBoolean("types.ENTITY_ATTACK.enable")){
list.put(DamageCause.ENTITY_ATTACK, getConfig().getDouble("types.ENTITY_ATTACK.counter"));
}

if(getConfig().getBoolean("types.FALLING_BLOCK.enable")){
list.put(DamageCause.FALLING_BLOCK, getConfig().getDouble("types.FALLING_BLOCK.counter"));
}

if(getConfig().getBoolean("types.EXPLOSION.enable")){
list.put(DamageCause.BLOCK_EXPLOSION, getConfig().getDouble("types.EXPLOSION.counter"));
list.put(DamageCause.ENTITY_EXPLOSION, getConfig().getDouble("types.EXPLOSION.counter"));
}

if(getConfig().getBoolean("types.FIRE.enable")){
list.put(DamageCause.FIRE, getConfig().getDouble("types.FIRE.counter"));
}

if(getConfig().getBoolean("types.FIRE_TICK.enable")){
list.put(DamageCause.FIRE_TICK, getConfig().getDouble("types.FIRE_TICK.counter"));
}

if(getConfig().getBoolean("types.LAVA.enable")){
list.put(DamageCause.LAVA, getConfig().getDouble("types.LAVA.counter"));
}

if(getConfig().getBoolean("types.LIGHTNING.enable")){
list.put(DamageCause.LIGHTNING, getConfig().getDouble("types.LIGHTNING.counter"));
}

if(getConfig().getBoolean("types.PROJECTILE.enable")){
list.put(DamageCause.PROJECTILE, getConfig().getDouble("types.PROJECTILE.counter"));
}
 
А в чем смысл мапы, простите та что в майн классе
 
Что за привычка экономить строки? Они что, платные?? ЗАЧЕМ вы пишите IFы в одну строчку, трудно нажать Enter? Код станет понятнее

Ну и все, а там больше ничего и нету, но тему оформил лучше чес написал плагин
 
Я оформляю код так, что бы он был понятен в первую очередь мне.
 
Действительно. Давайте засрем тему спорами про оформление, боже мой. Вместо кучи спама, твои придирки можно было бы оформить в одно-два сообщения.
 
Действительно. Давайте засрем тему спорами про оформление, боже мой. Вместо кучи спама, твои придирки можно было бы оформить в одно-два сообщения.
Придирки? Где я придрался? По моему я все говорил конструктивно и по делу

Это не придирки а побуждения к твоему совершенству ,помогаю так сказать
 
Придирки? Где я придрался? По моему я все говорил конструктивно и по делу

Это не придирки а побуждения к твоему совершенству ,помогаю так сказать

Что, баллы зарабатываем? Вы вдвоем в каждой теме.
 
Действительно. Давайте засрем тему спорами про оформление, боже мой. Вместо кучи спама, твои придирки можно было бы оформить в одно-два сообщения.
Не обращай внимания, обычные придурки, которые только и могут к if-кам в одну строку придираться, словно ты им что-то должен.Видишь ли, это рубакит, тут каждое школоло самоутверждается как может.
 
Не обращай внимания, обычные придурки, которые только и могут к if-кам в одну строку придираться, словно ты им что-то должен.Видишь ли, это рубакит, тут каждое школоло самоутверждается как может.
А что вы тут делаете?)
 
Вообще, ТС прав, отчасти. Форматирование кода никак не влияет. Компилятору вообще по****ь на это. А вот саму реализацию хотелось бы получше.
 
А вот мне не по***, если я его буду переписывать мне не понравится такая херня...
Смотря че ты переписываешь. Если тебе такой код нравится, то, твои проблемы, т.к. данный плагин надо переписать с 0.
 
Смотря че ты переписываешь. Если тебе такой код нравится, то, твои проблемы, т.к. данный плагин надо переписать с 0.
Причем тут весь плагин? Чисто эстетический вопрос, это так же как пернуть за столом, от части народу по***, но ... Думаю дальше сам догадаешься
 
Назад
Верх