Global Когда вам дают наказание, на ваш /mail приходит сообщение с причиной блокировки

Связано со всеми режимами на проекте.

TheSolVy_

Активный участник
Регистрация
29 Мар 2026
Сообщения
12
Когда вы получаете мут, то вам приходит /mail от модератора (или автоматически) причина наказания и доказательства что вы его заслужили. Пример:


Письмо от [Модератор]
Вы получили наказание по причине Спам

Gamer TheSolVy_ > Админы
Gamer TheSolVy_ > Админы ^_^
Gamer TheSolVy_ > Ответьте АДМИНЫ ^_^




Это поможет игрокам понять, за что они получили наказание чтобы в следующий раз они его не нарушали и понимали, что и почему их заблокировали а не просто вы получили наказание за спам
 

suppcat2

Активный участник
Регистрация
12 Окт 2024
Сообщения
44
+, хотя и немного усложнит работу модерам, так как им придется как-то выбирать сообщения итд. И я не получал мут с лета хд, но это полезно тем, кто хочет стать лучше(или просто не получать мут и обзываться без оскорблений, придумывая новые слова)
 

TheSolVy_

Активный участник
Регистрация
29 Мар 2026
Сообщения
12
+, хотя и немного усложнит работу модерам, так как им придется как-то выбирать сообщения итд. И я не получал мут с лета хд, но это полезно тем, кто хочет стать лучше(или просто не получать мут и обзываться без оскорблений, придумывая новые слова)
Да но при этом, те кто на оборот не хотят получать муты из за того что например сервер не поменял мат на ^_^ из за точки то сильно поможет, например не можешь понять почему тебя замутили и тебе приходиться писать на форум чтобы получить скриншоты а так сразу, можно по факту делать это как не обязательно, например если намеренно сказано через точки мат или слишком частое нарушение одного и того же, но все равно это облегчит и игрокам жизнь и модерам на форуме и не надо ничего искать в логах какого-то игрока
 

Lovely_love_kaif

Новичок
Регистрация
19 Апр 2026
Сообщения
8
Невозможно реализовать, увы
Сегодня, после очередного косячка, меня осенило, что ты чувак врешь. Это реально сделать, и как сказал будда - это сделать довольно просто.

Короче, модератор шепчет /mute в эфир, команда плывёт сквозь валидные волны. Система ласково спрашивает PlayerService: «Эй, кто этот Gamer123?» - и тот отвечает числом, player_id из таблицы players. Потом мы тихо, не спеша, без суеты записываем в базу:

INSERT в punishments:

player_id - душа нарушителя (ID)
banned_by - тот, кто пальцем указал (ID модератора)
cause - причина, типа 2.4
expires_on - сейчас плюс пару часов, как рассвет после ночи
type - mute

Потом делаем дубль в punishments_history, чтобы память о поступке не растворилась - на случай проверок, пунктов 9.3 и прочих реалий.

Когда игрок нажимает Enter, плагин чата ловит волну. Запускается ритуал проверки в сервисе наказаний. Система смотрит, есть ли активный мут - в кэше или в таблице punishments, где expires_on > NOW(). Если мут живой - сообщение замирает, и игроку шепчут:

Твой чат затихнет до {date}

А вот где можно включить настоящую магию автоматизации. У нас уже был механизм флагов, - когда сообщение о наказании не разлетается по всем уголкам, а только туда, где светится персонал. Сейчас модератор ловит лог, выбирает сообщение. Мы можем каждому лог-сообщению дать тэг, как #A14, как метку на бутылке с посланием. Тогда модератор сможет писать:

/mute -e <id/link>

Сервер читает флаг -e, идёт по этому #ID, PlayerLoggerService вытягивает нужный текст. И в cause или в отдельное поле ложится не просто сухая причина, а связка типа:

Флуд (2.4) [Доказательство: Gamer77: куплю золото!!1 (id: #A12)]

А игроку мягко прилетает письмо через MailService.sendMail(...), чтоб даже если он офлайн, душа его узнала о решении.

Псевдокод -

Java:
public void processMute(CommandSender moder, Player target, String time, String reason, String evidenceFlag) {
    String evidenceText = "";

    if (evidenceFlag != null) {
        if (evidenceFlag.startsWith("#")) {
            // Если указан ID лога, достаем его из базы логов
            evidenceText = playerLoggerService.getMessageById(target.getUniqueId(), evidenceFlag);
        } else {
            // Если указана просто ссылка или текст
            evidenceText = evidenceFlag;
        }
    }

    Punishment m = new Punishment(target, moder, reason, time, evidenceText);
    punishmentDao.save(m);

    String mailBody = String.format(
        "Вы были замучены модератором %s.\nПричина: %s\nДоказательства: %s",
        moder.getName(), reason, (evidenceText.isEmpty() ? "Не указаны" : evidenceText)
    );

    mailService.sendMail(target.getId(), "Наказание", mailBody);
}

А теперь выныриваем из фантазий в грубую правду, братцы: если такую систему запилить - минусов будет больше, чем плюсов. Раньше мы уже прикрыли наказания в общем чате, потом ещё ввели правило: не называть имени модератора, что дал мут. На АСК отвечать проще - «пиши на форум», а на форуме твой мут будут обсуждать две недели; даже если модератор ошибся, от куратора ему ничего не прилетит. Раньше можно было напрямую написать модеру или его куратору - теперь этого нет. В итоге мы выстроили систему бюрократического издевательства вместо расслабленной прозрачности.
Получается, чтобы донести до модераса вопрос по муту - надо пройти семь кругов ада. Такая автоматизация почти избавила бы от этих кругов: вместо десяти вопросов в АСК «за что мут?» ты бы сразу оформлял жалобу на модератора за неверный мут. Но нам это невыгодно - покрывать своих у нас святой принцип, понимаешь?
 

SirGromov

Эксперт
Регистрация
14 Июн 2023
Сообщения
347
Сегодня, после очередного косячка, меня осенило, что ты чувак врешь. Это реально сделать, и как сказал будда - это сделать довольно просто.

Короче, модератор шепчет /mute в эфир, команда плывёт сквозь валидные волны. Система ласково спрашивает PlayerService: «Эй, кто этот Gamer123?» - и тот отвечает числом, player_id из таблицы players. Потом мы тихо, не спеша, без суеты записываем в базу:

INSERT в punishments:

player_id - душа нарушителя (ID)
banned_by - тот, кто пальцем указал (ID модератора)
cause - причина, типа 2.4
expires_on - сейчас плюс пару часов, как рассвет после ночи
type - mute

Потом делаем дубль в punishments_history, чтобы память о поступке не растворилась - на случай проверок, пунктов 9.3 и прочих реалий.

Когда игрок нажимает Enter, плагин чата ловит волну. Запускается ритуал проверки в сервисе наказаний. Система смотрит, есть ли активный мут - в кэше или в таблице punishments, где expires_on > NOW(). Если мут живой - сообщение замирает, и игроку шепчут:

Твой чат затихнет до {date}

А вот где можно включить настоящую магию автоматизации. У нас уже был механизм флагов, - когда сообщение о наказании не разлетается по всем уголкам, а только туда, где светится персонал. Сейчас модератор ловит лог, выбирает сообщение. Мы можем каждому лог-сообщению дать тэг, как #A14, как метку на бутылке с посланием. Тогда модератор сможет писать:

/mute -e <id/link>

Сервер читает флаг -e, идёт по этому #ID, PlayerLoggerService вытягивает нужный текст. И в cause или в отдельное поле ложится не просто сухая причина, а связка типа:

Флуд (2.4) [Доказательство: Gamer77: куплю золото!!1 (id: #A12)]

А игроку мягко прилетает письмо через MailService.sendMail(...), чтоб даже если он офлайн, душа его узнала о решении.

Псевдокод -

Java:
public void processMute(CommandSender moder, Player target, String time, String reason, String evidenceFlag) {
    String evidenceText = "";

    if (evidenceFlag != null) {
        if (evidenceFlag.startsWith("#")) {
            // Если указан ID лога, достаем его из базы логов
            evidenceText = playerLoggerService.getMessageById(target.getUniqueId(), evidenceFlag);
        } else {
            // Если указана просто ссылка или текст
            evidenceText = evidenceFlag;
        }
    }

    Punishment m = new Punishment(target, moder, reason, time, evidenceText);
    punishmentDao.save(m);

    String mailBody = String.format(
        "Вы были замучены модератором %s.\nПричина: %s\nДоказательства: %s",
        moder.getName(), reason, (evidenceText.isEmpty() ? "Не указаны" : evidenceText)
    );

    mailService.sendMail(target.getId(), "Наказание", mailBody);
}

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

Lovely_love_kaif

Новичок
Регистрация
19 Апр 2026
Сообщения
8
Спасибо, что одарил нас своим нейробредом.
И пофиг, что у модеров нет доступа к базе данных логов
Оу, о какой БД идёт речь? у модератора есть /logs, текущая реализация примерно такая.
Java:
public static final RecordMapper<Record, String> logMapper = record -> {
    // ... получение данных сервера и времени ...
    return String.format("§7[%s]%s§e%s\n",
        bukkitServer == null ? "NONE" : bukkitServer.getName(), // Имя сервера (напр. Hub-1)
        formattedDate.format(new Date(time.getTime())),        // Время [dd.mm hh:mm:ss]
        info                                                   // Само сообщение игрока
        ID                                                     // <---- я предлагаю добавить
    );
};
чувак, похоже мы немного на разных волнах, я предложил идею с присваиванием айди сообщения в логах конкретного игрока, которое будет видно модератору, и можно взять за причину, а после упоминание этого айди в флаге внутри команды.
попробуй перечитать моё прошлое сообщение на чиле
 

SirGromov

Эксперт
Регистрация
14 Июн 2023
Сообщения
347
Оу, о какой БД идёт речь? у модератора есть /logs, текущая реализация примерно такая.
Java:
public static final RecordMapper<Record, String> logMapper = record -> {
    // ... получение данных сервера и времени ...
    return String.format("§7[%s]%s§e%s\n",
        bukkitServer == null ? "NONE" : bukkitServer.getName(), // Имя сервера (напр. Hub-1)
        formattedDate.format(new Date(time.getTime())),        // Время [dd.mm hh:mm:ss]
        info                                                   // Само сообщение игрока
        ID                                                     // <---- я предлагаю добавить
    );
};
чувак, похоже мы немного на разных волнах, я предложил идею с присваиванием айди сообщения в логах конкретного игрока, которое будет видно модератору, и можно взять за причину, а после упоминание этого айди в флаге внутри команды.
попробуй перечитать моё прошлое сообщение на чиле
Мутами занимаются м1-м2, доступ к логам есть у м3.
В логах пишется все: от ЛС до команд, ты предлагаешь дать вчерашним игрокам доступ к такой инфе? Ну... Понятно, наверное...
 

TheSolVy_

Активный участник
Регистрация
29 Мар 2026
Сообщения
12
Невозможно реализовать, увы
Угу, славно было-бы
Сообщение объединено:

Сегодня, после очередного косячка, меня осенило, что ты чувак врешь. Это реально сделать, и как сказал будда - это сделать довольно просто.

Короче, модератор шепчет /mute в эфир, команда плывёт сквозь валидные волны. Система ласково спрашивает PlayerService: «Эй, кто этот Gamer123?» - и тот отвечает числом, player_id из таблицы players. Потом мы тихо, не спеша, без суеты записываем в базу:

INSERT в punishments:

player_id - душа нарушителя (ID)
banned_by - тот, кто пальцем указал (ID модератора)
cause - причина, типа 2.4
expires_on - сейчас плюс пару часов, как рассвет после ночи
type - mute

Потом делаем дубль в punishments_history, чтобы память о поступке не растворилась - на случай проверок, пунктов 9.3 и прочих реалий.

Когда игрок нажимает Enter, плагин чата ловит волну. Запускается ритуал проверки в сервисе наказаний. Система смотрит, есть ли активный мут - в кэше или в таблице punishments, где expires_on > NOW(). Если мут живой - сообщение замирает, и игроку шепчут:

Твой чат затихнет до {date}

А вот где можно включить настоящую магию автоматизации. У нас уже был механизм флагов, - когда сообщение о наказании не разлетается по всем уголкам, а только туда, где светится персонал. Сейчас модератор ловит лог, выбирает сообщение. Мы можем каждому лог-сообщению дать тэг, как #A14, как метку на бутылке с посланием. Тогда модератор сможет писать:

/mute -e <id/link>

Сервер читает флаг -e, идёт по этому #ID, PlayerLoggerService вытягивает нужный текст. И в cause или в отдельное поле ложится не просто сухая причина, а связка типа:

Флуд (2.4) [Доказательство: Gamer77: куплю золото!!1 (id: #A12)]

А игроку мягко прилетает письмо через MailService.sendMail(...), чтоб даже если он офлайн, душа его узнала о решении.

Псевдокод -

Java:
public void processMute(CommandSender moder, Player target, String time, String reason, String evidenceFlag) {
    String evidenceText = "";

    if (evidenceFlag != null) {
        if (evidenceFlag.startsWith("#")) {
            // Если указан ID лога, достаем его из базы логов
            evidenceText = playerLoggerService.getMessageById(target.getUniqueId(), evidenceFlag);
        } else {
            // Если указана просто ссылка или текст
            evidenceText = evidenceFlag;
        }
    }

    Punishment m = new Punishment(target, moder, reason, time, evidenceText);
    punishmentDao.save(m);

    String mailBody = String.format(
        "Вы были замучены модератором %s.\nПричина: %s\nДоказательства: %s",
        moder.getName(), reason, (evidenceText.isEmpty() ? "Не указаны" : evidenceText)
    );

    mailService.sendMail(target.getId(), "Наказание", mailBody);
}

А теперь выныриваем из фантазий в грубую правду, братцы: если такую систему запилить - минусов будет больше, чем плюсов. Раньше мы уже прикрыли наказания в общем чате, потом ещё ввели правило: не называть имени модератора, что дал мут. На АСК отвечать проще - «пиши на форум», а на форуме твой мут будут обсуждать две недели; даже если модератор ошибся, от куратора ему ничего не прилетит. Раньше можно было напрямую написать модеру или его куратору - теперь этого нет. В итоге мы выстроили систему бюрократического издевательства вместо расслабленной прозрачности.
Получается, чтобы донести до модераса вопрос по муту - надо пройти семь кругов ада. Такая автоматизация почти избавила бы от этих кругов: вместо десяти вопросов в АСК «за что мут?» ты бы сразу оформлял жалобу на модератора за неверный мут. Но нам это невыгодно - покрывать своих у нас святой принцип, понимаешь?
О Боже во что моя идея растёт
 

Lovely_love_kaif

Новичок
Регистрация
19 Апр 2026
Сообщения
8
Мутами занимаются м1-м2, доступ к логам есть у м3.
В логах пишется все: от ЛС до команд, ты предлагаешь дать вчерашним игрокам доступ к такой инфе? Ну... Понятно, наверное...
Йо, это жуткая проблема, которая была всегда, модер может по своему капризу заглянуть в логи, и ему за это ничего не будет, и особой разницы нет, м2 он или м3, поэтому претензии не понял, куратор должен приглядывать за своим подчинённым, отсутствие присмотра за действиями своего подчинённого это не проблема нововведения, к тому же это касается в большей части удобства.
UPD:
Йо, в любом случае, я просто хотел сказать, что это достаточно легко сделать, но объяснил, почему этого не будут делать, моё дело предложить.
 

SirGromov

Эксперт
Регистрация
14 Июн 2023
Сообщения
347
Йо, это жуткая проблема, которая была всегда, модер может по своему капризу заглянуть в логи, и ему за это ничего не будет, и особой разницы нет, м2 он или м3, поэтому претензии не понял, куратор должен приглядывать за своим подчинённым, отсутствие присмотра за действиями своего подчинённого это не проблема нововведения, к тому же это касается в большей части удобства.
UPD:
Йо, в любом случае, я просто хотел сказать, что это достаточно легко сделать, но объяснил, почему этого не будут делать, моё дело предложить.
Это нерационально усложнит выдачу наказаний. Когда происходит массовый флуд, засоряющий чат очень много и очень сильно, модератору приоритетнее выдать наказание, чем искать за что выдать наказание в логах, указывать айди и так далее.

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

Lovely_love_kaif

Новичок
Регистрация
19 Апр 2026
Сообщения
8
Это нерационально усложнит выдачу наказаний. Когда происходит массовый флуд, засоряющий чат очень много и очень сильно, модератору приоритетнее выдать наказание, чем искать за что выдать наказание в логах, указывать айди и так далее.

Если дать модераторам возможность не указывать это при муте, то они этого делать не будут.
Йо, любой флаг в наказании подразумевает его использование в конкретной ситуации, тут речь идёт конкретно о мутах из /report. Как выдавать наказание решает регламент, а не модератор. Я думаю, тип, который кидает свастон в /dc, не будет писать на форум.
 

SirGromov

Эксперт
Регистрация
14 Июн 2023
Сообщения
347
Йо, любой флаг в наказании подразумевает его использование в конкретной ситуации, тут речь идёт конкретно о мутах из /report. Как выдавать наказание решает регламент, а не модератор. Я думаю, тип, который кидает свастон в /dc, не будет писать на форум.
Будет
 

Lovely_love_kaif

Новичок
Регистрация
19 Апр 2026
Сообщения
8
Эй, братан, я просто предложил серверную часть решения, ну ты понял? Добавить кнопку рядом с сообщением в чате — это просто, как дважды два, потому что у нас уже есть такая система. Я не говорил, что идентификатор сообщения должен быть только в логах. Это можно рассматривать как новую глобальную переменную, ну ты в курсе? Возможно, программирование для тебя — это что-то новое, и я не учел этого. Прости за это, братан!
 

SirGromov

Эксперт
Регистрация
14 Июн 2023
Сообщения
347
Эй, братан, я просто предложил серверную часть решения, ну ты понял? Добавить кнопку рядом с сообщением в чате — это просто, как дважды два, потому что у нас уже есть такая система. Я не говорил, что идентификатор сообщения должен быть только в логах. Это можно рассматривать как новую глобальную переменную, ну ты в курсе? Возможно, программирование для тебя — это что-то новое, и я не учел этого. Прости за это, братан!
Йо, братан, смари какой движняк.
На этой пати все сделано своими руками, закручено с любовью так сказать, понимаешь.
Закручено было так давно, когда ещё мамонты по земле двигались, йоу, лол.

И вот когда ты типа захочешь раскрутить, то выйдет не так уж кайфово, потому что никто это не раскручивал лет десять, йоу. И если попытаться ткнуть что-то такое же древнее, как чат, то все рассыпется и будет минус вайбик, йоу, йоу.
Сообщение объединено:

Больше я в этой отстойной движухе не буду светиться, йоу, лол, да.
Я вроде все сказал, йоу, йоу, йоу.
 

Lovely_love_kaif

Новичок
Регистрация
19 Апр 2026
Сообщения
8
Йо, братан, смари какой движняк.
На этой пати все сделано своими руками, закручено с любовью так сказать, понимаешь.
Закручено было так давно, когда ещё мамонты по земле двигались, йоу, лол.

И вот когда ты типа захочешь раскрутить, то выйдет не так уж кайфово, потому что никто это не раскручивал лет десять, йоу. И если попытаться ткнуть что-то такое же древнее, как чат, то все рассыпется и будет минус вайбик, йоу, йоу.
Сообщение объединено:

Больше я в этой отстойной движухе не буду светиться, йоу, лол, да.
Я вроде все сказал, йоу, йоу, йоу.

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

TheSolVy_

Активный участник
Регистрация
29 Мар 2026
Сообщения
12
Это нерационально усложнит выдачу наказаний. Когда происходит массовый флуд, засоряющий чат очень много и очень сильно, модератору приоритетнее выдать наказание, чем искать за что выдать наказание в логах, указывать айди и так далее.

Если дать модераторам возможность не указывать это при муте, то они этого делать не будут.
А если попробовать сделать автоматически сделать? та же нейросеть уже научились подключать к майнкрафту без модов она может сама посмотреть логи и найти сообщение нарушающее правило
Сообщение объединено:

воу, братух зачилься, эта пати не легаси, и к ней писали документацию, мы не в 2015, когда у нас есть только собственные руки йоу, сейчас чиловые парни юзают агентные системы для решения подобных задач, типо при наличии прямых рук всё более чем реально, лол, у нас в составе прямо сейчас сидит вайбкодер, который донатный кэш ложил себе в карман и пихал код с чата джбт, забивая на его качество, а тогда оно было не фонтан типо.
йоу йоу)
 
Сверху