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

FREE DummyPermissions : 1.0.0 1.0.0

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

namespace Oxide.Plugins
{
    [Info("DummyPermissions", "Realiztik", "1.0.0")]
    [Description("Manage dummy permissions for gating content without triggering actions")]
    public class DummyPermissions : RustPlugin
    {
        private static string PermissionPrefix = "dummypermissions";
        private Configuration config;

        #region Config
        private class Configuration
        {
            [JsonProperty(PropertyName = "DummyPermissions", ObjectCreationHandling = ObjectCreationHandling.Replace)]
            public List<string> DummyPermissions { get; set; } = new List<string>();

            public static Configuration DefaultConfig()
            {
                return new Configuration
                {
                    DummyPermissions = new List<string> { "example1", "example2" }
                };
            }
        }

        protected override void LoadDefaultConfig() => config = Configuration.DefaultConfig();

        protected override void LoadConfig()
        {
            base.LoadConfig();
            config = Config.ReadObject<Configuration>();
            if (config == null)
            {
                PrintError("Configuration file is missing. Loading default configuration.");
                LoadDefaultConfig();
            }
            SaveConfig();
        }

        protected override void SaveConfig() => Config.WriteObject(config);

        #endregion

        #region Hooks

        private void Init()
        {
            RegisterPermissions();
        }

        private void OnServerInitialized()
        {
            RegisterPermissions();
        }

        private void RegisterPermissions()
        {
            foreach (var perm in config.DummyPermissions)
            {
                string fullPermission = $"{PermissionPrefix}.{perm}";
                if (!permission.PermissionExists(fullPermission))
                {
                    permission.RegisterPermission(fullPermission, this);
                    Puts($"Registered dummy permission: {fullPermission}");
                }
            }
        }

        #endregion

        #region Commands

        [Command("grantdperm", "grantd")]
        private void GrantDummyPermission(IPlayer player, string command, string[] args)
        {
            if (!player.IsAdmin)
            {
                player.Reply("You don't have permission to use this command.");
                return;
            }

            if (args.Length < 2)
            {
                player.Reply("Usage: /grantd <playername> <permission>");
                return;
            }

            var target = covalence.Players.FindPlayer(args[0]);
            if (target == null)
            {
                player.Reply("Player not found.");
                return;
            }

            string permissionName = $"{PermissionPrefix}.{args[1]}";
            if (!permission.PermissionExists(permissionName))
            {
                player.Reply("Permission doesn't exist.");
                return;
            }

            permission.GrantUserPermission(target.Id, permissionName, this);
            player.Reply($"Permission {permissionName} granted to {target.Name}.");
        }

        [Command("revokedperm", "revoked")]
        private void RevokeDummyPermission(IPlayer player, string command, string[] args)
        {
            if (!player.IsAdmin)
            {
                player.Reply("You don't have permission to use this command.");
                return;
            }

            if (args.Length < 2)
            {
                player.Reply("Usage: /revoked <playername> <permission>");
                return;
            }

            var target = covalence.Players.FindPlayer(args[0]);
            if (target == null)
            {
                player.Reply("Player not found.");
                return;
            }

            string permissionName = $"{PermissionPrefix}.{args[1]}";
            if (!permission.PermissionExists(permissionName))
            {
                player.Reply("Permission doesn't exist.");
                return;
            }

            permission.RevokeUserPermission(target.Id, permissionName);
            player.Reply($"Permission {permissionName} revoked from {target.Name}.");
        }

        #endregion
    }
}

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