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

FREE MagicStakes : 0.1.2 0.1.2

Нет прав для скачивания
C#:
// Все права принадлежат дискорд сообществу https://discord.gg/VgNHPpNrz6
using UnityEngine;
using System.Collections.Generic;
using System;
using Oxide.Core.Libraries.Covalence;
namespace Oxide.Plugins {
    [Info("MagicStakes", "Norn", "0.1.2", ResourceId = 2497)]
    [Description("Change spawnpoint via command.")]
    class MagicStakes : CovalencePlugin {
        private new void LoadDefaultMessages() {
            var messages = new Dictionary<string, string> {
                {
                    "spawnset", "<color=green>MagicStakes:</color> You have <color=green>updated</color> your spawnpoint to stake: <color=yellow>{stake}</color> (<color=yellow>{territory}</color>)."
                }
                , {
                    "nopermission", "<color=green>MagicStakes:</color> You <color=red>don't</color> have permission to use this command."
                }
                , {
                    "nostakes", "<color=green>MagicStakes:</color> You're <color=red>not</color> authorized on any stakes."
                }
                , {
                    "nostakeexists", "<color=green>MagicStakes:</color> Stake ID <color=yellow>{id}</color> does <color=red>not</color> exist."
                }
                , {
                    "stakes", "<color=green>MagicStakes:</color> You're authorized on <color=yellow>{count}</color> stakes and will spawn at territory <color=yellow>{territory}</color>."
                }
                , {
                    "stakeinfo", "<color=green>MagicStakes:</color> [Stake <color=yellow>{id}</color> | <color=red>{territory}</color>] Authorized players: <color=green>{authcount}</color>"
                }
            }
            ;
            lang.RegisterMessages(messages, this);
        }
        private void PrintToChat(IPlayer player, string text) => player.Message(text);
        string Msg(string msg, string SteamId = null) => lang.GetMessage(msg, this, SteamId);
        private OwnershipStakeServer GetSpawnStake(IPlayer player) {
            PlayerSession session = player.Object as PlayerSession;
            if (player == null) {
                return null;
            }
            foreach (OwnershipStakeServer stake in Resources.FindObjectsOfTypeAll<OwnershipStakeServer>()) {
                if(stake.SpawnPlayers.Contains(session.Identity) && stake.isActiveAndEnabled) {
                    return stake;
                }
            }
            return null;
        }
        void Init() {
            permission.RegisterPermission("magicstakes.use", this);
            AddCovalenceCommand("setspawn", "SetSpawnCommand");
        }
        private void SetSpawnCommand(IPlayer player, string command, string[] args) {
            PlayerSession session = player.Object as PlayerSession;
            if(player == null) {
                return;
            }
            int count = 0;
            if (permission.UserHasPermission(session.SteamId.ToString(), "magicstakes.use")) {
                if (args.Length == 0) {
                    foreach (OwnershipStakeServer stake in Resources.FindObjectsOfTypeAll<OwnershipStakeServer>()) {
                        if (stake.AuthorizedPlayers.Contains(session.Identity) && stake.isActiveAndEnabled) {
                            count++;
                            if (stake.SpawnPlayers.Contains(session.Identity)) {
                                PrintToChat(player, Msg("stakeinfo", session.SteamId.ToString()).Replace("{id}", count.ToString()).Replace("{territory}", stake.TerritoryName).Replace("{authcount}", stake.AuthorizedPlayers.Count.ToString()) + "  | <color=yellow>(SPAWN)</color>.");
                            }
                            else {
                                PrintToChat(player, Msg("stakeinfo", session.SteamId.ToString()).Replace("{id}", count.ToString()).Replace("{territory}", stake.TerritoryName).Replace("{authcount}", stake.AuthorizedPlayers.Count.ToString()));
                            }
                        }
                    }
                    if (count != 0) {
                        string spawnter;
                        if(GetSpawnStake(player) == null) {
                            spawnter = "NO SPAWN SET";
                        }
                        else {
                            spawnter = GetSpawnStake(player).TerritoryName;
                        }
                        PrintToChat(player, Msg("stakes", session.SteamId.ToString()).Replace("{count}", count.ToString()).Replace("{territory}", spawnter));
                    }
                    else {
                        PrintToChat(player, Msg("nostakes", session.SteamId.ToString()));
                    }
                }
                if (args.Length == 1) {
                    bool found = false;
                    foreach (OwnershipStakeServer stake in Resources.FindObjectsOfTypeAll<OwnershipStakeServer>()) {
                        if (stake.AuthorizedPlayers.Contains(session.Identity) && stake.isActiveAndEnabled) {
                            count++;
                            if(Convert.ToInt32(args[0]) == count) {
                                if (stake == null) return;
                                OwnershipStakeServer OriginalStake = GetSpawnStake(player);
                                if(OriginalStake != null) {
                                    OriginalStake.SpawnPlayers.Remove(session.Identity);
                                }
                                if(!stake.SpawnPlayers.Contains(session.Identity)) {
                                    stake.SpawnPlayers.Add(session.Identity);
                                }
                                PrintToChat(player, Msg("spawnset", session.SteamId.ToString()).Replace("{stake}", args[0]).Replace("{territory}", stake.TerritoryName));
                                found = true;
                                return;
                            }
                        }
                    }
                    if(count == 0) {
                        PrintToChat(player, Msg("nostakes", session.SteamId.ToString()));
                        return;
                    }
                    if (!found) {
                        PrintToChat(player, Msg("nostakeexists", session.SteamId.ToString()).Replace("{id}", args[0]));
                        return;
                    }
                }
            }
            else {
                PrintToChat(player, Msg("nopermission", session.SteamId.ToString()));
            }
        }
    }
}

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