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

FREE PMSystem : 1.0.3 1.0.3

Нет прав для скачивания
C#:
using System.Collections.Generic;
using UnityEngine;
using System.Linq;

namespace Oxide.Plugins
{
    [Info("PM System", "https://topplugin.ru / https://discord.com/invite/5DPTsRmd3G", "1.0.3")]
    public class PMSystem : RustPlugin
    {
        #region Вар
        public Dictionary<ulong, ulong> pmHistory = new Dictionary<ulong, ulong>();
        #endregion

        #region Команды
        [ChatCommand("pm")]
        void ChatPM(BasePlayer player, string command, string[] args)
        {
            if (args == null || args.Length <= 1)
            {
                SendReply(player, "Используйте: /pm [ник игрока] [сообщение]");
                return;
            }

            var target = FindBasePlayer(args[0]);
            if (target == null)
            {
                SendReply(player, $"Игрок {args[0]} не найден");
                Effect.server.Run("assets/prefabs/locks/keypad/effects/lock.code.denied.prefab", player, 0, Vector3.zero, Vector3.forward);
                return;
            }

            if (target == player)
            {
                SendReply(player, "Вы не можете написать себе сообщение");
                Effect.server.Run("assets/prefabs/locks/keypad/effects/lock.code.denied.prefab", player, 0, Vector3.zero, Vector3.forward);
                return;
            }

            string message = "";
            for (int z = 1; z < args.Length; z++)
                    message += args[z] + " ";
            
            var text = message.Count() > 128 ? message.Remove(128) : message;

            pmHistory[player.userID] = target.userID;
            pmHistory[target.userID] = player.userID;

            SendReply(player, $"Сообщение для <color=#ee3e61>{target.displayName}</color>: {text}");
            SendReply(target, $"Сообщение от <color=#ee3e61>{player.displayName}</color>: {text}");
            Effect.server.Run("assets/bundled/prefabs/fx/notice/stack.world.fx.prefab", target, 0, Vector3.zero, Vector3.forward);
        }

        [ChatCommand("r")]
        void ChatR(BasePlayer player, string command, string[] args)
        {
            if (args == null || args.Length == 0)
            {
                SendReply(player, "Используйте: /r [сообщение]");
                return;
            }

            ulong recieverUserId;
            if (!pmHistory.TryGetValue(player.userID, out recieverUserId))
            {
                SendReply(player, "Вы не получали личных сообщений");
                Effect.server.Run("assets/prefabs/locks/keypad/effects/lock.code.denied.prefab", player, 0, Vector3.zero, Vector3.forward);
                return;
            }

            var target = BasePlayer.activePlayerList.FirstOrDefault(p => p.userID == recieverUserId);
            if (target == null)
            {
                SendReply(player, "Игрок покинул сервер, сообщение не отправлено!");
                return;
            }

            string message = "";
            for (int z = 0; z < args.Length; z++)
                message += args[z] + " ";

            var text = message.Count() > 128 ? message.Remove(128) : message;

            SendReply(player, $"Сообщение для <color=#ee3e61>{target.displayName}</color>: {text}");
            SendReply(target, $"Сообщение от <color=#ee3e61>{player.displayName}</color>: {text}");
            Effect.server.Run("assets/bundled/prefabs/fx/notice/stack.world.fx.prefab", target, 0, Vector3.zero, Vector3.forward);
        }
        #endregion

        #region Метод
        BasePlayer FindBasePlayer(string nameOrUserId)
        {
            nameOrUserId = nameOrUserId.ToLower();
            foreach (var player in BasePlayer.activePlayerList)
            {
                if (player.displayName.ToLower().Contains(nameOrUserId) || player.UserIDString == nameOrUserId) return player;
            }
            return default(BasePlayer);
        }
        #endregion
    }
}

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

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

Сверху