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

Плагин [CHAT] PromisedChat - просто плагин на чат

Overwrite

Активный участник
Пользователь
Баллы
98
Имя в Minecraft
OverwriteMC
Описание: Буквально простейший плагин на чат, совместимый со всеми версиями майнкрафта, имеющий ряд фичей:
  • кастомный плейсхолдер для каждой группы, что позволит выставить каждому донату свой цвет сообщений;
  • модуль "защита от новичков", который не даст игрокам сразу писать в чат (и использовать команды личных сообщений);
  • модуль авто-сообщений (который был взят из Chatty, я не знаю зачем он там был)

Почему не Chatty: Казалось бы, Chatty это база, зачем использовать что-то еще? Ответ - Chatty не поддерживает 1.20.2/3/4. (оф.релиз, json формат). Это была одни из причин по которой данный плагин вообще существует.
Почему не ChatEx: Утечка памяти.
Почему не FlectoneChat: А вот и 2 причина - мой плагин создавался в первую очередь как плагин на чат, ничего большего от него ждать не стоит. Максимум - ряд портированных функций, которые относятся к чату непосредственно. Никаких харчков в плагине на чат! (и я говорил буквально)

Конфигурация:
Код:
# Форматы чатов (можно создавать свои). Поддерживается PlaceholderAPI
# Плейсы плагина:
# %player% - ник игрока
# %prefix% - префикс игрока (берется из vault api)
# %suffix% - суффикс игрока (берется из vault api)
# %dph% - плейсхолдер группы
# %message% - сообщение игрока
chatFormats:
  local:
    format: "&aⓁ&f %prefix% &8⋆&f %player%&7:%dph% %message%"
    radius: 100
    # Если префикс указан пустым - канал становится дефолтным
    prefix: ''
    # Кулдаун для чата в милисекундах
    cooldown: 500
  global:
    format: "&cⒼ&f %prefix% &8⋆&f %player>&7:%dph% %message%"
    # Будет виден всем игрокам если указано -1
    radius: -1
    # В случае, если будет указан дубликат префикса - к префиксу будет присуждён последний канал с таким префиксом
    prefix: '!'
    cooldown: 1500
  # Сообщение о кулдауне (может быть отдельно применено к каналу)
  cooldownMessage: "&e[♻]&f Вы слишком быстро пишите! Подождите еще %time%"
  # Ховер текст (может быть отдельно применён к каналу)
  # При включении заменяет логику работы чата, что может сказаться на работе других плагинов, включающих в себя его форматирование.
  # Сообщения будут отправляться игрокам от сервера.
  hoverText:
    enable: false
    format: |-
      &fИнформация об игроке %player%
      &fРанг: &6%vault_group%
      &fХП: &6%player_health%
      &fОпыт: &6%player_exp%
    # Настройка клик ивента (действие при клике на сообщение игрока)
    clickEvent:
      enable: false
      actionType: SUGGEST_COMMAND
      actionValue: "/msg %player%"
  # Плейсхолделы для донатов по группам (может быть применён отдельно к каналу)
  donatePlaceholders:
    default: "&7"
    admin: "&f&l"

# Настройка блокировки чата для новичков
newbieChat:
  # Включен ли newbieChat
  enable: true
  # Кулдаун на чат для новичков в секундах
  newbieCooldown: 600
  # Сообщение для чата для новичков
  newbieChatMessage: "&c[★] &6Подожди! Что-бы написать в чат вы должны отыграть 10 минут на сервере, осталось &c%time%"
  # Сообщение для команд для новичков
  newbieCommandMessage: "&c[★] &6Подожди! Что-бы написать данную команды вы должны отыграть 10 минут на сервере, осталось &c%time%"
  # Команды, которые будут попадать под newbieChat
  newbieCommands:
    - "/m"
    - "/pm"
    - "/msg"
    - "/t"
    - "/tell"
    - "/w"
    - "/whisper"

# Настройка автосообщений
autoMessage:
  # Включел ли autoMessage
  enable: true
  # Выдавать ли их рандомно
  random: true
  # Промежуток между сообщениями в секундах
  messageInterval: 300
  # Сообщения
  # Можно указывать айди какое хотите
  # Доступен ховертекст и клик-ивент. Указывать через hoverText={Текст-при-наведении} и clickEvent={айди-действия;действие-при-клике}
  # Доступные действия для clickEvent: https://hub.spigotmc.org/jenkins/job/BungeeCord/ws/chat/target/apidocs/net/md_5/bungee/api/chat/ClickEvent.Action.html (run_command работает хер знает как, вините md_5)
  # Также доступны кнопки. Создаются при помощи button={Текст-кнопки;Действие1;Действие2}. Действия 1 и 2 - hoverText и clickEvent соответственно.
  messages:
    1:
      - "[PromisedChat] &aпервое авто-сообщение"
    2:
      - "[PromisedChat] &bвторое авто-сообщение линия 1"
      - "[PromisedChat] &bвторое авто-сообщение линия 2"
    3:
      - "[PromisedChat] &cтретье авто-сообщение с ховертекстом hoverText={Тот самый текст}"
      - "[PromisedChat] &cтретье авто-сообщение с клик ивентом clickEvent={SUGGEST_COMMAND;/say Я нажал на автосообщение в чате!}"

# Плейсхолдеры плагина
placeholders:
  time:
    hours: ' ч. '
    minutes: ' мин. '
    seconds: ' сек. '


Права:
Думаю пояснять нет необходимости.
Код:
  # Права на использование цветов:
  pchat.color.*:
    children:
      pchat.color.black: true
      pchat.color.dark_blue: true
      pchat.color.dark_green: true
      pchat.color.dark_aqua: true
      pchat.color.dark_red: true
      pchat.color.dark_purple: true
      pchat.color.gold: true
      pchat.color.gray: true
      pchat.color.dark_gray: true
      pchat.color.blue: true
      pchat.color.green: true
      pchat.color.aqua: true
      pchat.color.red: true
      pchat.color.light_purple: true
      pchat.color.yellow: true
      pchat.color.white: true
  # Права на использование стилей:
  pchat.style.*:
    children:
      pchat.style.obfuscated: true
      pchat.style.bold: true
      pchat.style.strikethrough: true
      pchat.style.underline: true
      pchat.style.italic: true
      pchat.style.reset: true
      pchat.style.hex: true
  # Права обхода
  pchat.bypass.*:
    children:
      pchat.bypass.cooldown: true
      pchat.bypass.newbie: true
  # Право автосообщений
  pchat.automessage:
    default: true


Скачать: YandexDisk
 
Последнее редактирование:
Как обычно, не рекомендуем использовать плагины на боевых (продуктивных) серверах, у которых нет исходного кода и которые не могут быть декомпилированы из-за применения хитростей к итоговому jar файлу.
 
Исходный код (декомпил):
Автор не хочет публиковать исходный код плагина и намеренно скрывает его.
Поэтому для всех желающих публикую я:
https://disk.yandex.ru/d/X3JpkvE2-jPueg

Данные исходники относятся к версии, скаченной 26.11.23 по ссылке
https://disk.yandex.ru/d/d0H2oe4fgtKIGA
(вебархив)

Ниже начинается основное обсуждение ресурса...

Почему не Chatty: Казалось бы, Chatty это база, зачем использовать что-то еще? Ответ - Chatty не поддерживает 1.20.2. Это была одни из причин по которой данный плагин вообще существует.
Почему не ChatEx: Утечка памяти.
Почему не FlectoneChat: А вот и 2 причина - мой плагин создавался в первую очередь как плагин на чат, ничего большего от него ждать не стоит. Максимум - ряд портированных функций, которые относятся к чату непосредственно. Никаких харчков в плагине на чат! (и я говорил буквально)
Это решается написанием багрепорта или созданием собственного форка, а не написанием собственного плагина. Ещё и неясно, зачем код скрывать.

upload_2023-11-25_20-6-22.png
Максимально стрёмная тема, я бы в жизни такое не поставил
 
Последнее редактирование:
Ещё и неясно, зачем код скрывать.
А он не скрыт, просто не все люди способны его посмотреть.
И вот кто не должен - тому и не надо.

Это решается написанием багрепорта или созданием собственного форка, а не написанием собственного плагина.
Ей богу, форкать Chatty, а уж тем более писать баг-репорты - это дело мертвое.
 
А он не скрыт, просто не все люди способны его посмотреть.
И вот кто не должен - тому и не надо.
Без дополнительных ухищрений плагины прекрасно декомпилируются. Если этого не происходит - значит это сделано намеренно. Значит есть, что скрывать.

А код по-хорошему нужен всем, кто заинтересован в пользовании плагином. Отсутствие такого спроса и пораждает вирусню в сборках. Уже давно для всех публичных плагинов есть стандарт публиковать исходники в гит.

Ей богу, форкать Chatty, а уж тем более писать баг-репорты - это дело мертвое.
Мертвое дело - писать очередной плагин на чат, коих уже 100500, предлагать всем перейти на этот плагин, а потом вынуждать всех пользователей вновь искать замену, когда разработка будет заброшена за ненадобностью или вследствие жизненных обстоятельств автора.

Иногда оправданно писать что-то своё, но лишь если аналоги действительно на голову ниже. В данном же случае это совершенно наоборот. Аналоги хорошо приняты сообществом, имеют интеграции с другими плагинами, относительно активно поддерживаются разработчиками и имеют открытый исходный код. Не вижу ни единой причины не использовать их код за основу
 
Ну и кринж
Лучше занимайся статьями про лагающие плагины, это лучше получается.
 
Иногда оправданно писать что-то своё, но лишь если аналоги действительно на голову ниже. В данном же случае это совершенно наоборот. Аналоги хорошо приняты сообществом, имеют интеграции с другими плагинами, относительно активно поддерживаются разработчиками и имеют открытый исходный код. Не вижу ни единой причины не использовать их код за основу
Ну раз так - приступим к более развёрнутому описанию почему не аналоги или их форки:

1) Chatty:
Как уже было сказано - отсутствие полноценной поддержки со стороны разработчика.
Да, он делает обновления, однако не часто, что не позволяет данный плагин использовать в случаях, когда ты пытаешься держать сервер постоянно на новейшей версии. Если вдруг моджанги опять решат поменять что-то в чат системе новой версии - мне придется ждать тучу лет, чтобы в итоге получить релиз, а дев билды по долгу не выходят.
Issue писать бесполезно - на них автор не отвечает. Быть может сделает фиксы, однако всё упирается во время этих фиксов.
Ну а форкать данный плагин я пытался. И я откровенно не понимаю смысла такого нагромождения кода, использования НМС и прочего. Нет, серьезно, для того, чтобы менять чат и его форматы мне уж точно не нужно разбираться как работать с НМС.

(Ну и личная моя боль - я никогда не пойму причины, по которой формат хекса в Chatty сделан через {#цвет}, это невероятная головная боль, когда сотни людей не могут понять, как им использовать градиент)

2) ChatEx
Опять же - про утечку памяти я уже сказал. Убирать её из плагина какими-то путями? Но какой смысл. Мне будет куда проще написать отдельный плагин, без необходимости копать чужой код. Ничего от этого не изменится.

3) Остальные плагины на чат
Остальные плагины либо не имеют вообще ничего кроме форматирования чата, даже без создания локальных и глобальных форматов (EssentialsChat меня в этом плане больше всего поразил, ведь как-бы форматы чата там есть, но как-бы на деле формат один, только сообщение через ! видят все, а обычный чат - только люди в указанном радиусе. Отличие между локальным и глобальным чатом там только одно - префикс.), либо имеют в себе слишком много всего. Уже приведенный пример с FlectoneChat - зачем мне в плагине на чат модуль на таб, команда на перевод слов, сворованный с других серверов функционал, который не имеет отношения к чату? Нет, конечно люди могут отключить там весь функционал, но тогда у меня возникает закономерный вопрос, а зачем покупать целый завод с разными станками, вместо покупки одного лишь станка?

Вот и получается, что лучшее из решений - создать отдельный плагин, который будет иметь в себе всё необходимое и только необходимое.
И еще раз говорю почему плагин существует - другие плагины на чат либо не удовлетворяют моим и не только требованиям, либо имеют в себе слишком много бесполезного функционала. (ну и еще по тому, что я когда-то обещал сделать плагин на чат, который будет ФАКТИЧЕСКИ на чат, глубокий смысл названий. promised - обещанный)
 
Последнее редактирование:
Если этого не происходит - значит это сделано намеренно. Значит есть, что скрывать.
Скорее не "что" а "от кого". Кому нужно - тот сможет декомпилировать плагин и у него не возникнет ни единой проблемы с этим. Всё зависит лишь от уровня знаний. Код не зашифрован и при декомпиляции будет показан такой какой и есть.
 
Скорее не "что" а "от кого". Кому нужно - тот сможет декомпилировать плагин и у него не возникнет ни единой проблемы с этим. Всё зависит лишь от уровня знаний. Код не зашифрован и при декомпиляции будет показан такой какой и есть.
Это цирк. Ну что же, тогда ссылку на исходники добавил я
 
Последнее редактирование:
Как раз таки chatty работает на 1.20.2 так же прекрасно, как и на 1.20.1, purpur 2092
 
Да и при всём этом в чатти можно задать радиус работы чата, команду привязать, через которую он будет работать, переключение между чатами, и всё такое, это основной нужный функцилнал, ну или по крайней мере которым я пользуюсь, анонсами пользуюсь из cmi(а насчёт чата, то там нету столько функционала, сколько в чатти), ещё как то режимом spy пользовался из чатти
 
Как раз таки chatty работает на 1.20.2 так же прекрасно
Не имею понятия, каким образом он у тебя работал.
Чисто возможно, теоретически, вероятно, дело в json моде.

радиус работы чата
localRadius: 100 - вполне настраивается

команду привязать, через которую он будет работать
переключение между чатами
Нет, серьезно. Я не знаю причины, по которым это кому-либо пригождалось... За всё время не видел людей, которые бы использовали и 50% функционала Chatty.
 
Ну что же, тогда ссылку на исходники добавил я
И что тебе это дало? Разгласил код тому, кому это не нужно? Зачем? Чтобы все убедились что плагин чист? Тоесть я по твоему мнению похож на человека, который будет распространять вирусы на данном форуме? В таком случае кинул бы репорт - отправил бы на модерацию. Хотя ты так или иначе смог без труда посмотреть код плагина и убедиться, что в нем ничего нет. Так к чему эта претензия на недоступность исходника для всех?

Выглядит как плевок в лицо с твоей стороны, в свете того, что я сказал, зачем код был скрыт от глаза неопытного.
 
Последнее редактирование:
И что тебе это дало? Разгласил код тому, кому это не нужно? Зачем? Чтобы все убедились что плагин чист? Тоесть я по твоему мнению похож на человека, который будет распространять вирусы на данном форуме? В таком случае кинул бы репорт - отправил бы на модерацию. Хотя ты так или иначе смог без труда посмотреть код плагина и убедиться, что в нем ничего нет. Так к чему эта претензия на недоступность исходника для всех?

Выглядит как плевок в лицо с твоей стороны, в свете того, что я сказал, зачем код был скрыт от глаза неопытного.
У любого публичного плагина должны быть исходники в нормальном виде. Всё. Больше тут обсуждать нечего. Либо ты миришься с тем, что все изучают плагин, либо вовсе ничего не выкладываешь. Более того, если бы плагин не был защищен от декомпиляции, я бы даже не обратил на него внимание.
Закрытый исходный код пораждает кучу вирусни, которой в майнкрафте и так навалом
 
Какой же плохой я человек, что мои плагины декомпилировать нельзя, прям вирусню вокруг распространяю, не то что нормальные авторы
Это уже проблема тех, кто пользуется Polymart. Я им не пользуюсь, так что пускай разбираются сами. Тем более, что там наверняка есть хоть какая-то модерация ресурсов в отличие от руведра.

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

я сказал, зачем код был скрыт от глаза неопытного.
А причину, кстати, ты так и не назвал
 
Это уже проблема тех, кто пользуется Polymart
Ну, изначально оно было на спиготе, потом мд_5 выпилил большинство плагинов сие автора со спигота (я хз почему, может ему тоже обфускация не нравится), после чего пришлось мигрировать. :rolleyes:
 
Да шоб обезьяны код не тырили. И да, такие есть, и вот из за 1 такой так и сделано
Пускай тырят, глядишь чему и научатся.
Возможность просмотра исходного кода куда важнее того, что кто-то присвоит себе твой плагин - он и так бесплатный. Особенно учитывая, что в интернете куча других плагинов с аналогичным функционалом и открытым исходным кодом. И твой вариант, уж поверь, никакой уникальностью не обладает, чтобы действительно заморачиваться об этом. Кому надо стырить код - всегда найдёт, где это сделать.
В принципе примерно всё программирование - это "тырить код". Ты, например, "стырил" код баккит апи и каффеин, чтобы написать свой плагин.

Ну, изначально оно было на спиготе, потом мд_5 выпилил большинство плагинов сие автора со спигота (я хз почему, может ему тоже обфускация не нравится), после чего пришлось мигрировать. :rolleyes:
На SpigotMC жёсткие требования к обфускации и подобным ухищрениям, да
 
Пока что мне интересно слушать их негодование, потом может и выложу без классфолдер трансформации.

(На самом деле изначально я хотел залочить только основу плагина, но оказалось что этот трансформер не может исключать отдельные папки и классы)
 

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

Назад
Верх