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:
Команды для магазина:
chatplus.prefix {steamid} привилегия - Устанавливает префикс игроку.
chatplus.name {steamid} привилегия - Устанавливает цвет имени игроку.
chatplus.message {steamid} привилегия - Устанавливает цвет сообщений игроку.
Внимание! Данные команды лишь устанавливают префиксы и цвета, перед установкой вы должны выдать соответствующую привилегию.
Пример стандартного файла конфигурации:
Языковой файл:
API:
API_RegisterThirdPartyTitle(Plugin plugin, Func<IPlayer, string> titleGetter):
IsPlayerMuted(object ID) - Проверяет заблокирован ли у игрока чат:
Возможности:
• Система личных сообщений.
• Черный список для системы личных сообщений.
• Режимы: Администратор и Модератор.
• Расширенная система привелегий с гибкими настройками.
• Система префиксов, цветных имён и сообщений.
• Цензура ненормативной лексики.
• Блокировка чата ( Система автоматического мута, Выдача по команде, Глобальная блокировка. )
Чат команды:
/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]
}