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

FREE DayzList : 1.4.0 1.4.0

Нет прав для скачивания
C#:
using System;
using System.Collections.Generic;
using System.Text;
using System.Linq;
using Oxide.Core;
using Oxide.Core.Libraries.Covalence;
using Oxide.Core.Plugins;
using Timer = Oxide.Core.Libraries.Timer;

namespace Oxide.Plugins
{
    [Info("DayzList", "kurimimi", "1.4.0")]
    public class DayzList : CovalencePlugin
    {
        private const int MaxCommandSpamCount = 6;
        private float CommandSpamWindow = 5f;
        private float RegularChatMessageInterval = 1800f;
        private Dictionary<string, int> commandSpamCount = new Dictionary<string, int>();
        private Dictionary<string, DateTime> lastCommandUsage = new Dictionary<string, DateTime>();
        private Timer regularChatMessageTimer;

        private void OnServerInitialized()
        {
            regularChatMessageTimer = timer.Every(RegularChatMessageInterval, SendAdminListToChat);
        }

        private void Unload()
        {
            regularChatMessageTimer?.Destroy();
        }

        private void SendAdminListToChat()
        {
            var onlineAdmins = players.Connected.Where(onlinePlayer => onlinePlayer.HasPermission("vanish.allow")).ToList();

            if (onlineAdmins.Count > 0)
            {
                StringBuilder message = new StringBuilder("Администраторы в онлайне:\n");

                foreach (var onlineAdmin in onlineAdmins)
                {
                    message.AppendLine(onlineAdmin.Name);
                }

                foreach (var player in players.Connected)
                {
                    player.Reply(message.ToString());
                }
            }
            else
            {
                foreach (var player in players.Connected)
                {
                    player.Reply("Администрация оффлайн :(");
                }
            }
        }

        [Command("admins")]
        private void HowCommand(IPlayer player, string command, string[] args)
        {
            int spamCount = 0;
            if (commandSpamCount.TryGetValue(player.Id, out spamCount))
            {
                var timeSinceLastCommand = DateTime.Now - lastCommandUsage[player.Id];
                if (timeSinceLastCommand < TimeSpan.FromSeconds(CommandSpamWindow))
                {
                    spamCount++;
                    commandSpamCount[player.Id] = spamCount;

                    if (spamCount >= MaxCommandSpamCount)
                    {
                        player.Reply("Вы были кикнуты за спам командой.");
                        player.Kick("СпамКоммандой");
                        return;
                    }
                }
                else
                {
                    commandSpamCount[player.Id] = 1;
                }
            }
            else
            {
                commandSpamCount[player.Id] = 1;
            }

            lastCommandUsage[player.Id] = DateTime.Now;

            var onlineAdmins = players.Connected.Where(onlinePlayer => onlinePlayer.HasPermission("vanish.allow")).ToList();

            if (onlineAdmins.Count > 0)
            {
                StringBuilder message = new StringBuilder("Администраторы в онлайне:\n");

                foreach (var onlineAdmin in onlineAdmins)
                {
                    message.AppendLine(onlineAdmin.Name);
                }

                player.Reply(message.ToString());
            }
            else
            {
                player.Reply("Администрация оффлайн :(");
            }
        }

        private void OnPlayerDisconnected(IPlayer player, string reason)
        {
            commandSpamCount.Remove(player.Id);
            lastCommandUsage.Remove(player.Id);
        }
    }
}

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