C#:
using System.Collections.Generic;
using System.Linq;
using Oxide.Core;
using Oxide.Core.Plugins;
using UnityEngine;
namespace Oxide.Plugins
{
[Info("AdminList", "prz1k", "1.0.0")]
[Description("Я крут")]
public class AdminList : RustPlugin
{
private Dictionary<ulong, float> cooldowns = new Dictionary<ulong, float>();
private const float CooldownSeconds = 10.0f;
[ChatCommand("admins")]
private void CmdAdmins(BasePlayer player, string cmd, string[] args)
{
if (cooldowns.ContainsKey(player.userID) && (Time.realtimeSinceStartup - cooldowns[player.userID]) < CooldownSeconds)
{
float remainingSeconds = CooldownSeconds - (Time.realtimeSinceStartup - cooldowns[player.userID]);
player.ChatMessage($"Пожалуйста, подождите еще {remainingSeconds:F1} секунд перед использованием команды /admins.");
return;
}
List<string> onlineAdmins = BasePlayer.activePlayerList.Where(p => p.IsConnected && p.IsAdmin && permission.UserHasGroup(p.UserIDString, "admin")).Select(p => p.displayName).ToList();
if (onlineAdmins.Count > 0)
{
string adminsString = string.Join(", ", onlineAdmins);
player.ChatMessage($"Админы онлайн: {adminsString}");
}
else
{
player.ChatMessage("Нету админов в онлайне.");
}
cooldowns[player.userID] = Time.realtimeSinceStartup;
}
}
}