ChatPlus

ChatPlus 1.4.0

Нет прав для скачивания
ChatPlus - Расширенная система управление чатом, разширение функционала чата, управление привелегиями.

Возможности:
Система личных сообщений.
• Черный список для системы личных сообщений.

• Режимы: Администратор и Модератор.
• Расширенная система привелегий с гибкими настройками.
• Система префиксов, цветных имён и сообщений.
• Цензура ненормативной лексики.

• Блокировка чата ( Система автоматического мута, Выдача по команде, Глобальная блокировка. )

Чат команды:
/chat prefix
- Доступные префиксы.
/chat name - Доступные цвета имени.
/chat message - Доступные цвета сообщений.
/chat censor - Цензура ненормативной лексики.
/chat ignore - Чёрный список.
• /chat ignore add - Добавить игрока в ЧС.
• /chat ignore remove - Убрать игрока из ЧС.
• /chat ignore list - Список заблокированных игроков.
/chat sound - Звук при получении личного сообщения.
/chat reset - Сбрасывает настройки для игрока.
/chat admin - Режим администратора. (Необходима привилегия)
/chat moderator - Режим модератора. (Необходима привилегия)
/pm - Написать личное сообщения.
/r - Ответить на личное сообщения.
/mute - Заблокировать чат игроку. (Необходима привилегия)
/unmute - Разблокировать чат игроку. (Необходима привилегия)
/muteall - Заблокировать/Разблокировать общий чат. (Необходима привилегия)

Дополнительно:
Команды: mute, unmute, muteall - Можно использовать в консоли.
Не удаляйте привилегию: chatplus.default - Без него плагин работать не будет.
После окончания времени привилегии у игрока настройки его чата сбрасываются к default.

Для полной совместимости Clans Reborn необходимо поправить функцию: OnPluginLoaded в плагине Clans:
HTML:
Код:
             void OnPluginLoaded(Plugin plugin)
             {
                 if (plugin.Title != "Better Chat" || plugin.Title != "ChatPlus") return;
                 if (enableClanTagging) Interface.CallHook("API_RegisterThirdPartyTitle", this, new Func<IPlayer, string>(getFormattedClanTag));
             }

Команды для магазина:
chatplus.prefix {steamid} привилегия
- Устанавливает префикс игроку.
chatplus.name {steamid} привилегия - Устанавливает цвет имени игроку.
chatplus.message {steamid} привилегия - Устанавливает цвет сообщений игроку.
Внимание! Данные команды лишь устанавливают префиксы и цвета, перед установкой вы должны выдать соответствующую привилегию.

Пример стандартного файла конфигурации:

HTML:
Код:
{
  "A. Автоматически блокировать чат за нецензурную лексику": false,
  "B. Длительность блокировки чата за нецензурную лексику(в секундах)": 300,
  "C. Причина мута при автоматической блокировке чата за нецензурную лексику": "Нецензурная лексика",
  "D. Стандартная причина мута": "Не указана",
  "E. Воспроизводить звук при получении личного сообщения": true,
  "F. Полный путь к звуковому файлу": "assets/bundled/prefabs/fx/notice/stack.world.fx.prefab",
  "G. Выключить заглавные буквы в чате": true,
  "H. Настройки привелегий администраторов": {
    "Привилегия для включения режима администратора": "chatplus.adminmode",
    "Привилегия для включения режима модератора": "chatplus.moderatormode",
    "Привилегия для использования команды /mute": "chatplus.mute",
    "Привилегия для использования команды /unmute": "chatplus.unmute",
    "Формат чата режима администратор": "[#a5e664]Администратор[/#]: {0}",
    "Формат чата режима модератор": "[#a5e664]Модератор[/#]: {0}",
    "Привилегия для полного отключения чата": "chatplus.muteall",
    "Привилегия для использования консольных команд на присваивание префикса и цветов": "chatplus.assign",
    "Скрывать имена администраторов при блокировке чата": true,
    "Замена имени администратора при блокировке чата(если включено)": "Модератор чата"
  },
  "I. Цвет имен": [
    {
      "Привилегия": "chatplus.default",
      "Аргумент": "default",
      "Формат": "[#ffffff]{0}[/#]"
    },
    {
      "Привилегия": "chatplus.hotpink",
      "Аргумент": "hotpink",
      "Формат": "[#FF69B4]{0}[/#]"
    },
    {
      "Привилегия": "chatplus.tomato",
      "Аргумент": "tomato",
      "Формат": "[#FF6347]{0}[/#]"
    }
  ],
  "J. Префиксы": [
    {
      "Привилегия": "chatplus.default",
      "Аргумент": "default",
      "Формат": ""
    },
    {
      "Привилегия": "chatplus.vip",
      "Аргумент": "vip",
      "Формат": "[#9370DB][VIP][/#]"
    },
    {
      "Привилегия": "chatplus.premium",
      "Аргумент": "premium",
      "Формат": "[#00FF7F][Премиум][/#]"
    }
  ],
  "K. Цвет сообщений": [
    {
      "Привилегия": "chatplus.default",
      "Аргумент": "default",
      "Формат": "[#ffffff]{0}[/#]"
    },
    {
      "Привилегия": "chatplus.blue",
      "Аргумент": "blue",
      "Формат": "[#64a5e6]{0}[/#]"
    },
    {
      "Привилегия": "chatplus.gold",
      "Аргумент": "gold",
      "Формат": "[#DAA520]{0}[/#]"
    }
  ],
  "L. Список начальных букв нецензурных слов или слова целиком | список исключений": {
    "ебля": [],
    "сука": [],
    "пидор": []
  },
  "M. Имя консоли при отправке личных сообщений и отключении чата из консоли": "Server Console",
  "N. Формат отправки сообщений из консоли командой say": "[+16][#00ff00]{0}[/#]: {1}[/+]",
  "O. Отображать ли аватарки игроков при получении ЛС(только RUST)": true
}

Языковой файл:
Код:
{
  "CMD.CHAT.HELP": "Доступные команды:\n[#00FF00]/chat censor[/#] - цензура в чате\n[#00FF00]/chat prefix[/#] - доступные префиксы\n[#00FF00]/chat name[/#] - доступные цвета имени\n[#00FF00]/chat message[/#] - доступные цвета сообщений\n[#00FF00]/chat ignore[/#] [#42f4ee]add/remove/list[/#] - управление чёрным списком\n[#00FF00]/chat sound[/#] [#42f4ee]on/off[/#] - звук при получении ЛС\n[#00FF00]/chat reset[/#] - Сбрасывает ваши настройки чата на стандартные.",
  "CMD.CHAT.HELP.PERMISSION.ADMIN": "\n[#00FF00]/chat admin[/#] - режим администратора",
  "CMD.CHAT.HELP.PERMISSION.MODERATOR": "\n[#00FF00]/chat moder[/#] - режим модератора",
  "CMD.MUTE.ALL.HELP": "\n[#00FF00]/muteall[/#] - Блокировка/разблокировка общего чата",
  "NO.AVAILABLE.PREFIXS": "У вас нет доступных префиксов",
  "PREFIX.NOT.FOUND": "Префикс с названием \"{0}\" не найден",
  "PREFIX.CHANGED": "Префикс изменен на {0}",
  "AVAILABLE.COLORS.NAME": "Доступные цвета имени:\n{0}",
  "AVAILABLE.COLORS.PREFIX": "Доступные префиксы:\n{0}",
  "AVAILABLE.COLORS.MESSAGE": "Доступные цвета сообщений:\n{0}",
  "NO.AVAILABLE.COLORS": "У вас нет доступных цветов",
  "COLOR.NOT.FOUND": "Цвет с названием \"{0}\" не найден",
  "NAME.COLOR.CHANGED": "Цвет имени успешно изменен на {0}",
  "MESSAGE.COLOR.CHANGED": "Цвет сообщений успешно изменен на {0}",
  "CMD.CHAT.SOUND.HELP": "Используйте [#00FF00]/chat sound[/#] [#008000]on[/#] или [#FF4500]off[/#] чтобы включить или выключить звуковое оповещение при получении ЛС",
  "SOUND.ENABLED": "Вы включили звуковое оповещение при получении ЛС",
  "SOUND.DISABLED": "Вы выключили звуковое оповещение при получении ЛС",
  "CMD.MUTE.HELP": "Используйте [#00FF00]/mute[/#] <\"имя игрока\"> [длительность] [причина] чтобы заблокировать чат игроку",
  "USER.ALREADY.MUTED": "У игрока \"{0}\" уже отключён чат.\nПричина: {1}\nОсталось времени: {2}",
  "USER.MUTED.REASON": "{0} заблокировал чат игроку \"{1}\"\nПричина: {2}\nВремя блокировки: {3}",
  "USER.MUTED.LOG": "\"{0}\" заблокировал чат игроку \"{1}\" на {2}\nПричина: \"{3}\"",
  "CMD.UNMUTE.HELP": "Используйте [#00FF00]/unmute[/#] \"имя игрока\" чтобы разблокировать чат игроку",
  "USER.UNMUTED": "{0} снял мут с игрока \"{1}\"",
  "USER.UNMUTED.LOG": "\"{0}\" разблокировал чат \"{1}\"",
  "YOU.MUTED": "Ваш чат заблокирован!\nЗаблокировавший: {0}\nПричина: {1}\nОсталось времени: {2}",
  "MUTE.ALL.ENABLED": "Общий чат [#62ff29]РАЗБЛОКИРОВАН[/#]",
  "MUTE.ALL.DISABLED": "Общий чат [#ff552a]ЗАБЛОКИРОВАН[/#]",
  "CMD.CHAT.IGNORE.HELP": "Список команд:\n[#00FF00]/chat ignore add[/#] \"имя игрока\" - добавить в черный список\n[#00FF00]/chat ignore remove[/#] \"имя игрока\" - удалить из черного списка\n[#00FF00]/chat ignore list[/#] - показать черный список",
  "USER.IS.IGNORE.LIST": "Игрок \"{0}\" уже находится в черном списке",
  "USER.ADD.IGNORE.LIST": "Вы добавили игрока \"{0}\" в черный список",
  "YOU.ADD.IGNORE.LIST": "Игрок \"{0}\" добавил вас в черный список",
  "NOT.ON.IGNORE.LIST": "Игрок \"{0}\" не находится в чёрном списке",
  "IGNORE.LIST.IS.EMPTY": "Черный список пуст",
  "USER.REMOVE.IGNORE.LIST": "Вы удалили игрока \"{0}\" из черного списка",
  "YOU.REMOVE.IGNORE.LIST": "Игрок \"{0}\" удалил вас из черного списка",
  "IGNORE.LIST": "Чёрный список:\n",
  "CMD.PM.HELP": "Используйте [#00FF00]/pm[/#] \"имя игрока\" \"сообщение\" чтобы отправить ЛС игроку",
  "PM.SENDER.FORMAT": "[#e664a5]ЛС для {0}[/#]: {1}",
  "PM.RECEIVER.FORMAT": "[#e664a5]ЛС от {0}[/#]: {1}",
  "PM.NO.MESSAGES": "Вы не получали личных сообщений",
  "PM.PLAYER.LEAVE": "Игрок с которым вы переписывались вышел с сервера",
  "PM.YOU.ARE.BLACK.LIST": "Вы не можете отправить ЛС игроку \"{0}\", он добавил вас в черный список",
  "CMD.R.HELP": "Используйте [#00FF00]/r[/#] \"сообщение\" чтобы ответить но последнее ЛС",
  "CENSOR.ENABLED": "Вы [#62ff29]ВКЛЮЧИЛИ[/#] цензуру в чате",
  "CENSOR.DISABLED": "Вы [#ff552a]ВЫКЛЮЧИЛИ[/#] цензуру в чате",
  "NO.ACCESS": "У вас нет доступа к этой команде",
  "PLAYER.NOT.FOUND": "Игрок \"{0}\" не найден",
  "MULTIPLE.PLAYERS.FOUND": "Найдено несколько игроков с похожим именем:\n{0}",
  "PM.SELF": "Вы не можете отправлять сообщения самому себе",
  "MODERATOR.ENABLE": "Режим модератора [#62ff29]ВКЛЮЧЕН[/#]",
  "MODERATOR.DISABLE": "Режим модератора [#ff552a]ВЫКЛЮЧЕН[/#]",
  "ADMIN.ENABLE": "Режим администратора [#62ff29]ВКЛЮЧЕН[/#]",
  "ADMIN.DISABLE": "Режим администратора [#ff552a]ВЫКЛЮЧЕН[/#]",
  "PLAYER.NOT.MUTED": "У игрока не отключен чат",
  "RESET.SUCCESSFULL": "Вы сбросили свои настройки чата на стандартные",
  "CHAT.SPAM": "Ваше сообщение слишком длинное!",
  "CHAT.TOOMUCH": "Слишком длинное сообщение. Больше 500 символов.",
  "CMD.HELP.PREFIX": "Неверный синтаксис! chatplus.prefix steamid/ник привилегия",
  "CMD.HELP.NAME": "Неверный синтаксис! chatplus.name steamid/ник привилегия",
  "CMD.HELP.MESSAGE": "Неверный синтаксис! chatplus.message steamid/ник привилегия",
  "NO.PERMISSION.PLAYER": "У игрока нет необходимой привилегии!",
  "NO.PERMISSION.YOU": "У вас нет необходимой привилегии!",
  "MUTE.EXPIRED": "Игроку \"{0}\" вновь доступен чат.",
  "MUTE.LIST.HEAD": "Список игроков с отключённым чатом:",
  "MUTE.LIST.BODY": "--------------------\nИнициатор: {0}\nИгрок: {1}\nПричина: {2}\nСрок: {3}\n--------------------",
  "MUTE.LIST.NOONE": "Чат на данный момент доступен всем игрокам.",
  "PM.LOG": "ЛС от \"{0}\" для \"{1}\": {2}"
}


API:
API_RegisterThirdPartyTitle(Plugin plugin, Func<IPlayer, string> titleGetter):

Код:
Код:
[PluginReference] Plugin ChatPlus;
private string Prefix = [Alpha];
private string PrefixColor = "#FFAA00"
private List<IPlayer> PlayersWithPrefix = new List<IPlayer>();

void OnPluginLoaded(Plugin plugin)
{
    if (plugin.Title == "ChatPlus")
        SetPrefix();
}
void OnServerInitialized()
{
    if (ChatPlus)
        SetPrefix();
}

private void SetPrefix() => ChatPlus?.Call("API_RegisterThirdPartyTitle", new object[] { this, new Func<IPlayer, string>(GetPrefix) });
private string GetPrefix(IPlayer player) => PlayersWithPrefix.ContainsKey(player) ? $"[+12][{PrefixColor}]{

IsPlayerMuted(object ID) - Проверяет заблокирован ли у игрока чат:
HTML:
Код:
        [PluginReference]
        private Plugin ChatPlus;
        private bool IsPlayerMuted(BasePlayer player)
        {
            var result = ChatPlus?.CallHook("IsPlayerMuted", player.userID);
            if (result is bool)
                return (bool) result;
            return false;[/COLOR][/SIZE]
        }
  • chat4.jpg
    chat4.jpg
    24.7 KB · Просмотры: 987
  • Screenshot_2.png
    Screenshot_2.png
    96 KB · Просмотры: 1,088
  • Screenshot_1.png
    Screenshot_1.png
    194.6 KB · Просмотры: 1,309
  • Like
Реакции: Басотник
Автор
Information
Скачивания
37
Просмотры
4,274
Первый выпуск
Обновление
Оценка
0.00 звёзд 0 оценок

Другие ресурсы пользователя Information

Последние обновления

  1. Исправления

    Работает тим чат. Лог чата в консоль