Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Плагин [MISC] siu - улучшение предметов [1.16.5]

Sturm_PT

Активный участник
Пользователь
Баллы
76
Писал плагин для одного сервера, но раз писал бесплатно, то почему бы не выложить для всех?

[проверено на paper 1.16.5] [проверено не очень тщательно, могут быть баги]

/upgradeitem - открывает меню с улучшениями для предмета
Улучшения надо прописать в конфиге.
Перм на команду - siu.up

Скачать
Исходники и апи

Просьба ткнуть на баги, затупы, говнокод и тому подобные преимущества плагина.

(извиняюсь за вырвиглазную тему, раньше ничего не публиковал тут)


2021-09-01_12.42.32.png
 
Последнее редактирование:
п.с. как засунуть в тему картинку?
п.п.с. как использовать жирный шрифт?
 

Вложения:

  • Screenshot_4.png
    Screenshot_4.png
    Размер файла
    4,6 КБ
    Просмотров
    9
Просьба ткнуть на баги, затупы, говнокод и тому подобные преимущества плагина.
По стилю:
Сам код внутри структурирован неплохо (занимался раньше другим языком?), но наименования пакетов, как и некоторых классов - такое. Пакеты должны называться а-ля домены наоборот + назначение пакета. Например, rubukkit.org -> org.rubukkit.forum, и для классов юзеров в таком случае пакет org.rubukkit.forum.users. Алсо, "Rew", "Ench" и прочие - не принято использовать сокращения для названий классов.
Кроме того, как ты используешь List<...> list = new ArrayList<>(), следуя использовать и для Map<...> map = new HashMap<>() (привет принципы SOLID). Опечатка. Ну, и кодировка кривая, а тут ещё и пробелы вместо табов используются.

По коду:
Здесь следовало бы воспользоваться Map<String, CustomUpgrade>, тут (Enum)Map<Material, CustomUpgrade>. Здесь можешь просто создать список List<Entry<...>> и создавать для него элементы через Map.entry(...) (только java 9+), но в идеале следовало бы сделать добавить дженерик и передавать в метод BiConsumer<V, Double>, в котором будет выполняться требуемая операция. Тут можно воспользоваться EnumMap, но изменение скорей из раздярда микрооптимизаций.

Ещё упомяну, что, по-моему, защиты от дурака тут очень мало - если в конфиге будет что-то не так, плагин быстро загнётся.
 
не принято использовать сокращения для названий классов.
Лень писать Reward, Enchantment и т.д.

List<...> list = new ArrayList<>(), следуя использовать и для Map<...> map = new HashMap<>() (привет принципы SOLID)
Вроде так и писал, мб где-то случайно сделал не то. Что найду - поправлю.

Здесь следовало бы воспользоваться Map<String, CustomUpgrade>
тут (Enum)Map<Material, CustomUpgrade>
Очень не хочется дублировать ключи, но, наверное, так действительно лучше.

Здесь можешь просто создать список List<Entry<...>> и создавать для него элементы через Map.entry(...) (только java 9+), но в идеале следовало бы сделать добавить дженерик и передавать в метод BiConsumer<V, Double>, в котором будет выполняться требуемая операция.
Посмотрю, что можно переделать

защиты от дурака тут очень мало
Надеемся, что дурак пройдёт мимо.

Ну, и кодировка кривая
Та всё же норм было, что началось-то

а тут ещё и пробелы вместо табов используются
Не знаю, откуда они там. Потом уберу.

Спасибо за помощь!
 

Поделиться этой страницей

Назад
Верх