Иконка ресурса

FREE AutoMute : 2.1.11 2.1.11

Нет прав для скачивания
C#:
// Все права принадлежат дискорд сообществу https://discord.gg/VgNHPpNrz6
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Oxide.Core;
using Oxide.Core.Configuration;
using UnityEngine;
using Newtonsoft.Json;
using Oxide.Core.Plugins;
using Oxide.Core.Libraries.Covalence;
namespace Oxide.Plugins {
    [Info("AutoMute", "OxideBro", "2.1.11")]
    class AutoMute : CovalencePlugin {
        Dictionary<string, int> mutes = new Dictionary<string, int>();
        DynamicConfigFile saveFile = Interface.Oxide.DataFileSystem.GetFile("ChatMutes");
        void OnServerInitialized() {
            timer.Every(1f, () => {
                List<string> toRemove = mutes.Keys.ToList().Where(uid => --mutes[uid] < 0).ToList();
                toRemove.ForEach(p => mutes.Remove(p));
            }
            );
            mutes = saveFile.ReadObject<Dictionary<string, int>>();
        }
        private MuteList Chat;
        private class MuteList {
            public MuteList(string[] Say, string[] Exclusion, int MuteTime, int AuthLevel, bool AdminBlock) {
                this.Слова = Say;
                this.Исключения = Exclusion;
                this.MuteTime = MuteTime;
                this.AdminBlock = AdminBlock;
            }
            [JsonProperty("3.Запрещенные фразы")]
            public string[] Слова {
                get;
                set;
            }
            [JsonProperty("4.Слова-исключения")]
            public string[] Исключения {
                get;
                set;
            }
            [JsonProperty("2.Настройки: Время блокировки чата (сек)")]
            public int MuteTime;
            [JsonProperty("1.Настройки: Блокировать ли администраторов?")]
            public bool AdminBlock;
        }
        void Loaded() {
            Chat = Config.ReadObject<MuteList>();
        }
        void Unload() {
            saveFile.WriteObject(mutes);
        }
        protected override void LoadDefaultConfig() {
            PrintWarning("Благодарим за приобритение плагина на сайте RustPlugin.ru.Если вы приобрели этот плагин на другом ресурсе знайте - это лишает вас гарантированных обновлений!");
            PrintError("Маты и исключения добавлять в /config/AutoMute.json");
            Config.WriteObject(DefaultConfig(), true);
        }
        object OnBetterChat(Dictionary<string, object> data) {
            var player = (IPlayer)data["Player"];
            if (mutes.ContainsKey(player.Id)) {
                return false;
            }
            return null;
        }
        object OnUserChat(IPlayer player, string message) {
            bool exclud = true;
            string SteamID = player.Id;
            string Nickname = player.Name;
            BasePlayer bplayer = BasePlayer.FindByID(ulong.Parse(player.Id));
            if (player == null || message == null) return null;
            if (!Chat.AdminBlock) {
                if (player.IsAdmin) {
                    return null;
                }
            }
            if (mutes.ContainsKey(player.Id)) {
                player.Command("chat.add", new object[] {
                    "0", $"<color=RED>Чат заблокирован!</color> До окончания: <color=RED>{mutes[player.Id]} сек.</color>"
                }
                );
                return false;
            }
            foreach (var word in Chat.Слова) {
                if (message.ToLower().Contains(word)) {
                    foreach (var exc in Chat.Исключения) {
                        if (message.ToLower().Contains(exc)) {
                            exclud = false;
                            break;
                        }
                    }
                    if (exclud) {
                        Mute(bplayer);
                        ConsoleNetwork.BroadcastToAllClients("chat.add", new object[] {
                            0, $"Игроку <color=#FF6347>{Nickname}</color> отключен чат! \nДлительность: <color=#FF6347>{Chat.MuteTime} сек.</color>  \nПричина: <color=#FF6347>Нецензурная лексика!</color>"
                        }
                        );
                        PrintWarning("Auto mute " + Nickname + "(" + SteamID + $") {mutes[player.Id]}с.Причина: (" + message + ")");
                        LogToFile("log", $"({DateTime.Now.ToShortDateString()}) ({DateTime.Now.ToShortTimeString()}) Игроку {Nickname} ({SteamID}) был отключен чат на {Chat.MuteTime} сек.Сообщение: ({message})", this, false);
                        return false;
                    }
                }
            }
            return null;
        }
        void Mute(BasePlayer player) {
            mutes.Add(player.UserIDString, Chat.MuteTime);
        }
#region DefaultConfig
        private MuteList DefaultConfig() {
            string[] Say = {
                "бля", "еба", "аху", "впиз", "въеб", "выбля", "выеб", "выёб", "гнид", "гонд", "доеб", "долбо", "дроч", "ёб", "елд", "заеб", "заёб", "залуп", "захуя", "заяб", "злоеб", "ипа", "лох", "лошар", "манд", "мля", "мраз", "муд", "наеб", "наёб", "напизд", "нах", "нех", "нии", "обоср", "отпиз", "отъеб", "оху", "падл", "падон", "педр", "пез", "перд", "пид", "пиз", "подъеб", "поеб", "поёб", "похе", "похр", "поху", "придур", "приеб", "проеб", "разху", "разъеб", "распиз", "соси", "спиз", "сук", "суч", "трах", "ублю", "уеб", "уёб", "ху", "целка", "чмо", "шалав", "шлюх", "ска"
            }
            ;
            string[] Ex = {
                "мандар", "мудр", "наха", "нахо", "нахл", "нехо", "нехв", "неха", "пидж", "похуд", "сосиск", "худ", "хуж", "хут", "хур", "хулиг", "Команда", "команда", "команду", "тебе", "тебя", "скайп", "скайпу", "скайпе", "сказано", "стёб", "стеб"
            }
            ;
            return new MuteList(Say, Ex, 120, 2, true);
        }
#endregion
    }
}

Автор
15FPS
Скачиваний
0
Просмотры
1
Первый выпуск
Обновление
Оценка
0.00 звёзд 0 оценок
Сверху