FunCooldowns - Таймер на команды с FunTime

FunCooldowns - Таймер на команды с FunTime [Платно] 1.1

Нет прав для приобретения ("99.00" ₽)

MrJetby

Пользователь
Сообщения
66
Решения
2
Веб-сайт
treexmine.ru
MrJetby добавил(а) новый ресурс:

FunCooldowns - Таймер на команды с FunTime - Полезный плагин на Анархии



FunCooldowns - Плагин создаёт таймер с обратным отсчётом до выполнения команды. Игрок может в любой момент отменить команду.

Преимущества:

  • Полная копия FunTime
  • Простая конфигурация
  • Быстрая...

Узнать больше об этом ресурсе…
 
Последнее редактирование:
А в чём отличия от NeoCooldown, помимо того что НеоКулдаун фри?
Наличием говнокода. По крайней мере в другом его плагине он использует главный конфиг как хранилище данных, уверен тут также
 
Наличием говнокода. По крайней мере в другом его плагине он использует главный конфиг как хранилище данных, уверен тут также
Гавнокод и конфиг это разные вещи.
Объединено

А в чём отличия от NeoCooldown, помимо того что НеоКулдаун фри?
Так там конфиг полное дно, команды от cmi не поддерживаются. А так все фуннкции которые там, есть и тут, скоро будет ещё больше, сейчас занят другим проектом. Ну то есть у меня очень простой в использовании конфиг.

Хз что у тебя там по коду поэтому сравнить не смогу. У меня код оптимизированный.
 
Последнее редактирование:
Гавнокод и конфиг это разные вещи.
Объединено


Так там конфиг полное дно, команды от cmi не поддерживаются. А так все фуннкции которые там, есть и тут, скоро будет ещё больше, сейчас занят другим проектом. Ну то есть у меня очень простой в использовании конфиг.

Хз что у тебя там по коду поэтому сравнить не смогу. У меня код оптимизированный.
Утверждаешь - подтверждай

Ждём репо на гитхаб, если не стыдишься своего кода.

offtop Один хрен, никто это покупать не будет, ибо аналогов миллион, возможностей для реализации без кода миллион, а реализация на Java пишется, от силы, за 15 минут (с учетом дебага и билдинга, даже доки написать времени хватит)
 
MrJetby обновил(а) ресурс FunCooldowns - Таймер на команды с FunTime новой записью:

Новый конфиг

Обновлён конфиг, теперь более удобнее и функциональнее:

YAML:
# В Actions доступны
# [PLAYER] cmd
# [CONSOLE] cmd
# [SOUND] ITEM_TRIDENT_THUNDER -volume:1.0f -pitch:1.0f
# [EFFECT] BLINDNESS -duration:1 -strength:0
# [TITLE] Title;Subtitle -fadeIn:1 -stay:3 -fadeOut:1
# [MESSAGE] Сообщение
# [ACTIONBAR] Текст
# [BUTTON] Кнопка с отменой телепорта
#
# Для commands:
# Если добавить команду, то кулдаун будет только на команду, обходится аргументами
#
# [rtp!] символ...

Узнать больше об этом обновлении…
 
Утверждаешь - подтверждай

Ждём репо на гитхаб, если не стыдишься своего кода.

offtop Один хрен, никто это покупать не будет, ибо аналогов миллион, возможностей для реализации без кода миллион, а реализация на Java пишется, от силы, за 15 минут (с учетом дебага и билдинга, даже доки написать времени хватит)
Не буду грузить на гитхаб этот плагин так как я его продаю, но вот мой фри плагин который я ещё почти год назад делал:
 
Не буду грузить на гитхаб этот плагин так как я его продаю, но вот мой фри плагин который я ещё почти год назад делал:
Ладно, как скажешь.

1. Название классов и пакетов не по конвенции ( )

2. Главный класс
2.1 Использование статический полей, там где можно и нужно обойтись без них (это постоянно задействует память в куче)
2.2 Отсутствие инкапсуляции, поля instance, eco, settings лучше обернуть в геттеры.
2.3 Отсутствие проверок результатов операций загрузки и сохранения конфигурации
2.4 saveResource() в settingsLoad() всегда перезаписывает файл, что может привести к потере пользовательских настроек
2.5 Нет проверки существования директории перед сохранением файла
2.6 Отсутствие логгирования успешной инициализации плагина
2.7 Нет обработки случая, когда экономика не настроена

3. Слушатель BlockBreak
3.1 Прямое обращение к статическим полям (eco, settings) из другого класса - нарушение инкапсуляции
3.2 Нет проверки на null для важных объектов (blockscfg, commands, message и т.д.)
3.3 Избыточная вложенность условий, что ухудшает читаемость кода
3.4 Дублирование кода при замене переменных в сообщениях (%player%, %money%)
3.5 Неэффективное использование Random - создание нового экземпляра при каждом вызове метода
3.6 Нет валидации входных данных из конфигурации (Min, Max, Chance могут иметь некорректные значения)
3.7 Переменные названы с разным стилем именования (есть как camelCase, так и PascalCase)
3.8 Неэффективная работа со строками - многократное использование String.valueOf() и конкатенации
3.9 Метод OnBlockBreak слишком большой и выполняет слишком много функций (нарушение принципа единственной ответственности)
3.10 blockscfg объявляется как поле класса, но инициализируется каждый раз в обработчике события, что неэффективно
3.11 Нет проверки на пустой ItemStack при проверке предмета в руке игрока

4. Команда cmds
4.1 Отсутствует проверка на null для args (может вызвать ArrayIndexOutOfBoundsException если команда вызвана без аргументов)
4.2 Небезопасное приведение типов sender к Player без проверки (может вызвать ClassCastException если команду выполняет консоль)
4.3 Название класса 'cmds' не соответствует Java конвенции именования (должно быть с большой буквы) ( )
4.4 Прямое обращение к статическим полям (instance, settings) нарушает инкапсуляцию
4.5 Нет информативных сообщений об ошибках при некорректном использовании (больше хотелка, чем проблема)
4.6 Нет логгирования важных действий (например, перезагрузки конфигурации)


У меня код оптимизированный.
???
 
Последнее редактирование:
offtop
Ладно, как скажешь.

1. Название классов и пакетов не по конвенции ( )

2. Главный класс
2.1 Использование статический полей, там где можно и нужно обойтись без них (это постоянно задействует память в куче)
2.2 Отсутствие инкапсуляции, поля instance, eco, settings лучше обернуть в геттеры.

3. Слушатель BlockBreak
3.1 Прямое обращение к статическим полям (eco, settings) из другого класса - нарушение инкапсуляции
3.2 Нет проверки на null для важных объектов (blockscfg, commands, message и т.д.)
3.3 Избыточная вложенность условий, что ухудшает читаемость кода
3.4 Дублирование кода при замене переменных в сообщениях (%player%, %money%)
3.5 Неэффективное использование Random - создание нового экземпляра при каждом вызове метода
3.6 Нет валидации входных данных из конфигурации (Min, Max, Chance могут иметь некорректные значения)
3.7 Переменные названы с разным стилем именования (есть как camelCase, так и PascalCase)
3.8 Неэффективная работа со строками - многократное использование String.valueOf() и конкатенации
3.9 Метод OnBlockBreak слишком большой и выполняет слишком много функций (нарушение принципа единственной ответственности)
3.10 blockscfg объявляется как поле класса, но инициализируется каждый раз в обработчике события, что неэффективно
3.11 Нет проверки на пустой ItemStack при проверке предмета в руке игрока

4. Команда cmds
4.1 Отсутствует проверка на null для args (может вызвать ArrayIndexOutOfBoundsException если команда вызвана без аргументов)
4.2 Небезопасное приведение типов sender к Player без проверки (может вызвать ClassCastException если команду выполняет консоль)
4.3 Название класса 'cmds' не соответствует Java конвенции именования (должно быть с большой буквы) ( )
4.4 Прямое обращение к статическим полям (instance, settings) нарушает инкапсуляцию
4.5 Нет информативных сообщений об ошибках при некорректном использовании (больше хотелка, чем проблема)
4.6 Нет логгирования важных действий (например, перезагрузки конфигурации)



???

1. Скорее всего ты не знаешь что такое гавнокод решил попросить ЧатЛГБТ написать высер про мой код.
2. Ты диванный критик, и почему-то ты зацепился за меня скорее всего из-за того что я тебе отвечаю.
3. Это был мой первый плагин.
4. Там где я сказал "У меня код оптимизированный." это правда, но я не собираюсь тебе диванному критику показывать код своего платного плагина.
5. Всё что ты далее будешь высирать я отвечать тебе не буду, но если меня попросит какой-то Overwrite показать код и скажет что у меня плохой код тогда я прислушаюсь, и буду исправлять код. Но на данный момент у меня чистый код, и им пользуюсь на своём сервере.

В добавок: Мне плевать на мнение окружающих, я просто делаю то что мне нравится - пишу плагины!
 
Последнее редактирование:
1. Скорее всего ты поленился самому проверять и решил попросить ЧатЛГБТ написать высер про мой код.
Проецирование своих комплексов на других является признаком заниженной самооценки
2. Ты диванный критик, и почему-то ты зацепился за меня скорее всего из-за того что я тебе отвечаю.
У меня более 300 успешно выполненных проектов и 7 постоянных клиентов с суммарным онлайном более 10 тысяч игроков. Моё слово чего-то, да стоит.
3. Это был мой первый плагин.
Если ты привёл его в пример, в контексте обсуждения качества кода, то будь добр отвечай за него. Мои первые плагины тоже ужасные, но я не стал бы приводить в пример именно их
4. Там где я сказал "У меня код оптимизированный." это правда, но я не собираюсь тебе диванному критику показывать код своего платного плагина.
А у меня ламборгини у бабушки в деревне стоит, я тебе не собираюсь ничего доказывать 😛
5. Всё что ты далее будешь высирать я отвечать тебе не буду, но если меня попросит какой-то Overwrite показать код и скажет что у меня плохой код тогда я прислушаюсь, и буду исправлять код. Но на данный момент у меня чистый код, и им пользуюсь на своём сервере.
Я тебе привёл объективные, не высосанные из пальца, а ОБЪЕКТИВНЫЕ проблемы твоего кода. Их не нужно стесняться, но и кичиться не нужно ими. Насколько я помню, Роберт "Uncle Bob" Мартин, однажды сказал: "Если у вас сейчас что-то не получается, значит вы на верном пути.", а ты в глаза отказываешься принимать объективные проблемы своего кода и просто убегаешь со слезами на глазах. Принимая критику, ты становишься мудрее. И неважно, кто тебе её скажет, рандом с форума или Линус Торвальдс, если она объективная и подкрепленная фактами, то менее значимой она не становится.
 
Последнее редактирование:
Почему этот плагин стоит 100₽? Когда его аналог бесплатный
 
Гавнокод и конфиг это разные вещи.
Ну как бы... Ты хранишь их там потому что не умеешь делать нормально. И это вообще полностью убивает и комментарии в конфиге и добавляет возню с сохранением
 
2.2 Отсутствие инкапсуляции, поля instance, eco, settings лучше обернуть в геттеры.
offtop А почему бы не использовать внедрение зависимостей вместо статического поля? Часто вижу в кодах public static Plugin instance, может у такого подхода действительно есть какие-то преимущества?
 
Последнее редактирование:
А почему бы не использовать внедрение зависимостей вместо статического поля? Часто вижу в кодах public static Plugin instance, может у такого подхода действительно есть какие-то преимущества?
Мейн класс плагина, это своего рода реализация паттерна Singleton, поэтому инстанс в нём - нормальная практика.

Внедрение зависимостей тоже хороший подход, но не по части баккита. Дело в том, что если мы, к примеру, передадим в конструктор слушателя/команды конфиг из Bukkit#getConfig, класс инициализируется с ранее созданным конфигом, но если мы захотим перезагрузить его через Bukkit#reloadConfig, то наш слушатель/команда всё еще будут хранить старый объект конфига внутри себя.

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

Поправьте меня, если где-то не прав.
 
Назад
Сверху Снизу