BestDrillAndMagnet - Плагин на бур, магнит и автоплавку как на FunTime

BestDrillAndMagnet - Плагин на бур, магнит и автоплавку как на FunTime 1.0.2.1

Нет прав для скачивания

aquaoverflow

Пользователь
Сообщения
16
aquaoverflow добавил(а) новый ресурс:

You must be logged in to see this link. - Плагин добавляет бур 3x3, магнит, и автоплавку.

Данный плагин реализует зачарования для предметов, которые помогают игрокам быстрее развиваться.

Бур - зачарование, которое позволяет копать вместо 1 блока сразу 9. Ломает параллелипипед 3x3 блоков за раз.
Магнит - зачарование, которое складывает все сломанные блоки сразу в инвентарь.
Автоплавка - зачарование, которое переплавляет сломанный блок мгновенно.

Зачарования добавляются с определенным шансом на определенные предметы из конфига при...

You must be logged in to see this link.
 
Эм, и в чем проблема?
Потому что не надо так делать. А если юзеру нужна не "Авто плавка", а "Автоплавка"? Или не "Бур", а какой-нибудь "Копатель" (онлайн)... Буквально ж 3 строчки в конфиг вытащить
 
Потому что не надо так делать. А если юзеру нужна не "Авто плавка", а "Автоплавка"? Или не "Бур", а какой-нибудь "Копатель" (онлайн)... Буквально ж 3 строчки в конфиг вытащить
Можно и вынести, а можно и переписать самому как тебе надо, а можно и заплатить мне. Как хочешь.
 
книги и команды для выдачи книг и зачаровании предмета надо бы
 
aquaoverflow обновил(а) ресурс You must be logged in to see this link. новой записью:

You must be logged in to see this link.

Добавлен размер куба, который выкапывает БУР. Исправлены баги с выдаданием предметов и некорректной работе в регионах с BLOCK-BREAK ALLOW.

Вам необходимо зарегистрироваться для просмотра изображений-вложений

Разные воронки от бура 5x5x5 и 7x7x7

You must be logged in to see this link.
 
Переделай бур чтобы блоки ломались от имени игрока по тому как сейчас в регионах и тд есть баги типо если он владелец то не будет ломаться блоки и тд
 
Приветствую, дорогой aquaoverflow! У меня есть множество вопросов по твоему "best" плагину.

По packag'ам:​

  1. По правилам нейминга packag'ов в Java они должны именоваться в единственном числе и отражать кратко всю суть содержимого.
    • Почему у тебя в utils есть какие-то invisible и visible? Что это?
    • Почему у тебя в utils лежат классы CustomEnchant.class, CustomEnchants.class, EnchantmentWrapper.class? Не стоит ли их вынести в отдельные packag'и?

Main.class:​

  1. Для чего ты regionscheck объявляешь с public-модификатором доступа, если у тебя есть instance?
  2. Для чего ты делаешь все переменные static, если можно через static-геттер instance получить доступ ко всем этим переменным?

Events.class:​

  1. Название класса должно отражать задачу, которую он выполняет. В этом случае он обрабатывает события, произведённые игроком, значит, класс должен называться PlayerListener.class.
  2. Почему нельзя метод onBlockBreak разбить на утилиты, которые будут выполнять задачи (например, ломание блоков в радиусе)?
  3. Зачем при ломании блоков в радиусе ты создаёшь экземпляр блока? У тебя нет необходимости в наличии экземпляра, взаимодействуй с блоками через экземпляр мира World.
  4. Вместо использования <Block, Collection> в хеш-таблице используй <Material, Integer> тип:количество (зачем тебе вообще ассоциировать ItemStack с конкретным блоком, когда твоя цель просто выдать определенное количество предметов определенного типа)
  5. Применять модификаторы(автопечка и тд.) можно ещё перед внесением в мапу, или вынести это в отдельный метод (если предполагается, что в дальнейшем могут появиться ещё зачарования)
  6. Вынеси обработку drill, magnet и autofurnace в класс зачарований.

Utils.class:​

  1. Название класса должно кратко передавать, какую задачу он выполняет.
  2. Почему не вынести метод зачарования предмета в сервис зачарований?

CustomEnchant.class:​

  1. Зачем ты хранишь секцию из конфига? Не проще сразу записывать нужные значения в поля класса или обернуть это в ConfigItem?

CustomEnchants.class:​

  1. Не проще было использовать enum вместо сотни переменных зачарований?
  2. Почему в allowItems хранится String, а не Material?
  3. Зачем в методе registerEnchantment стоит public-модификатор доступа, если он используется только в register?
  4. Зачем вообще регистрация зачарований вызывается где-то неизвестно где? Все зачарования у тебя хранятся в сигнатуре класса, следовательно, уже на этапе создания его экземпляра мы можем вызывать их регистрацию в bukkit.
  5. Зачем вообще экземпляр этого класса создавать в Main? Передай его параметром в твой слушатель событий, раз он используется только там, или используй Singleton паттерн, раз уж ты решил хардкодить все зачарования в сигнатуре.

config.yml:​

  1. Что не так с size? Почему плагин вообще копает не кубоид(как должны делать буры), а куб?
  2. Сделай несколько полей в конфиге для размера выкапываемого кубоида.
  3. В целом конфиг ненастраиваемый, половина всего захардкожено.

Итог:​

Я считаю, что это позор ( ), и такое не стоит выкладывать в публичный доступ, так как этот плагин показывает, насколько некомпетентны разработчики в этой студии.
 
offtop синглтоны - зло
Я ему предложил использовать синглтон, раз он решил хардкодить код. Ну, а так - да, в идеале передавать экземпляр мейн класса либо необходимые сервисы в другие классы.
 
Последнее редактирование:
Постоянно происходит баг дублирования чар после объединения предметов в наковальни
Вам необходимо зарегистрироваться для просмотра изображений-вложений
 
Назад
Сверху Снизу