Войти или зарегистрироваться

Плагин [FUN]TrollMe - Проклятые троли снова здесь! [1.8+]

DaunOfMine

Новичок
Пользователь
Баллы
11
TrollMe - Плагин, позволяющий ТРОООЛЛЛИИИИТЬ игроков.
Версия: v1.2

Работает исключительно на GUI.

Скриншоты:
upload_2017-9-24_15-49-20.png


Способы тролинга:​
    • IGNITE - Поджаривает ноги таргета.​
    • HUNGER - Ставит 0 единиц еды таргету.​
    • SLAP - Подкидывает игрока на 4 блока вверх, после падения -половина сердца​
    • ROTATE - поворачивает игрока на 180 градусов.​
    • POTATO - Улучшенный способ тролинга, который взят с плагина иностранца. У него весь инвентарь в картошке, а у нас только в пустых слотах!​
    • LightBolt - Ударяет игрока молнией, нанося 6 дамага, и поджаривает ноги на 3 секунды.​
    ​
    ​
Комманды:​
  • /troll [player] - открывает ГУИ для ТРОООЛИРОВАНИЯ игроков.​
  • /treload - Перезапуск Конфига​
Пермишены:​
    • troll.menu - Открытие ГУИ плагина - /troll [PLAYER]​
    • troll.bypass - Иммунитет к троллям.​
    • troll.menu.ignite - Использование первого способа тролирования - IGNITE​
    • troll.menu.hunger- Использование второго способа тролирования - HUNGER​
    • troll.menu.slap - Использование третьего способа тролирования - SLAP​
    • troll.menu.rotate - Использование четвёртого способа тролирования - ROTATE​
    • troll.menu.potato - Использование пятого способа тролирования - POTATO<3 -​
    • troll.menu.bolt - Использование шестого способа тролирования - LightBolt​
    • troll.reload - /treload​
    ​
    ​
Особенности:​
  • 6, практически авторских идей для тролинга(нет)​
  • Пермишен для обхода всех способов троллирования.​
  • Звуковые способы троллинга[SOON!]​

TODO:​
  • Добавление новых способов.​
  • Добавление звуковых способов троллинга.​
  • Переделать конфиг для более лёгкой работы.​
  • Учиться по замечаниям в комментариях.​

Лог изменений:
Версия 1.2​
  • Добавлен новый способ тролинга - LightBolt, как понятно по названию - молния.
    Снимает 3 сердца и поджигает на 2 секунды, в следующих обновлениях сделаю эти цифры кастомные.​
  • Пофиксил кучу багов.​
  • Переделал код в лучшую сторону.​
  • Обновлён конфиг, теперь все сообщения плагина можно настроить в конфиге.​
  • Переделал дефаул текст в конфигах, теперь можно практически нечего не менять.​
  • Новый аргумент в конфиге - $player$ .​
Версия 1.1​
  • Фикс багов и пермишен troll.bypass​
Версия 1.0
  • Релиз
DownLoad:
https://yadi.sk/d/jCA3k72W3NATAT

Приветствуется строгая критика.​
 
Последнее редактирование:
не ври, ты не 1.5 недели, ты уже 2-3 недели кодишь!
 
image.png

Абсолютно без понятия, как это может работать

Java:
if(item.getItemMeta().getDisplayName().equalsIgnoreCase([B]plugin.p.getConfig().getString("Slap..Name")[/B].replace("&", "§").replace("$target$", command.target.getName()).replace("$player$", player.getName())))

Не, ну серьезно, 2 точки. Как это работает?

Поправки
  1. Переходим с
    Java:
    item.getItemMeta().getDisplayName().equalsIgnoreCase
    на оператора switch.
    Java:
    switch(item.getItemMeta().getDisplayName().toLowerCase()) {
        case plugin.p.getConfig().getString("Rotate..Name").replace("&", "§").replace("$target$", command.target.getName().toLowerCase():
            // ...
            break;
        case plugin.p.getConfig().getString("Rotate..Name").replace("&", "§").replace("$target$", command.target.getName().toLowerCase():
            // ...
            break;
    }

    Не самый лучший способ выхода из этого положения, но тоже действенный (т.е. есть более выгодные решения).

  2. Java:
    player.closeInventory();
    Выносим за switch, чтобы не писать его 20 раз.

  3. Выкидываем
    Java:
    event.getInventory().getName()
    Берем InventoryHolder.

  4. image.png
    Переходим на билдеры итемов.

  5. Ну и еще ошибочки в командах, там уже немного лучше, но все равно мусор. Зачем создавать переменные cmd там?
 
image.png

Абсолютно без понятия, как это может работать

Java:
if(item.getItemMeta().getDisplayName().equalsIgnoreCase([B]plugin.p.getConfig().getString("Slap..Name")[/B].replace("&", "§").replace("$target$", command.target.getName()).replace("$player$", player.getName())))

Не, ну серьезно, 2 точки. Как это работает?

Поправки
  1. Переходим с
    Java:
    item.getItemMeta().getDisplayName().equalsIgnoreCase
    на оператора switch.
    Java:
    switch(item.getItemMeta().getDisplayName().toLowerCase()) {
        case plugin.p.getConfig().getString("Rotate..Name").replace("&", "§").replace("$target$", command.target.getName().toLowerCase():
            // ...
            break;
        case plugin.p.getConfig().getString("Rotate..Name").replace("&", "§").replace("$target$", command.target.getName().toLowerCase():
            // ...
            break;
    }

    Не самый лучший способ выхода из этого положения, но тоже действенный (т.е. есть более выгодные решения).

  2. Java:
    player.closeInventory();
    Выносим за switch, чтобы не писать его 20 раз.

  3. Выкидываем
    Java:
    event.getInventory().getName()
    Берем InventoryHolder.

  4. image.png
    Переходим на билдеры итемов.

  5. Ну и еще ошибочки в командах, там уже немного лучше, но все равно мусор. Зачем создавать переменные cmd там?
Ну таки говно-код.
Ещё даунич в коддинге, так шо не ругай так сильно.
Создавать переменную cmd1 - потому что по другому не умею))
Не понял про две точки, типо Rotate..Name, у меня такого не должно быть.
Прислушаюсь к твоим советам но ещё не понимаю, как всё это работает)
 
Ну таки говно-код.
Ещё даунич в коддинге, так шо не ругай так сильно.
Создавать переменную cmd1 - потому что по другому не умею))
Не понял про две точки, типо Rotate..Name, у меня такого не должно быть.
Прислушаюсь к твоим советам но ещё не понимаю, как всё это работает)
Моих советов лучше много не слушать, ибо сам пишу лишь год. Про 2 точки - у тебя ключ сообщения в конфиге лежит в секции Rotate, а сам ключ - Name. Тут ты переходишь ставишь 2-е точки, т.е. объясняя на русском, то это тоже самое, что и писать c:// за место с:/. c:// просто не сработает .-.
 
if(item.getItemMeta().getDisplayName().equalsIgnoreCase(plugin.p.getConfig().getString("Slap..Name").replace("&", "§").replace("$target$", command.target.getName()).replace("$player$", player.getName())))
Не, ну серьезно, 2 точки. Как это работает?
Лучше по слотам сделать
 
Назад
Верх