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

FREE ZealKarma : 1.0.0 1.0.0

Нет прав для скачивания
C#:
// Все права принадлежат дискорд сообществу https://discord.gg/VgNHPpNrz6
using System;
using System.Collections.Generic;
using Oxide.Core;
using Oxide.Core.Plugins;

namespace Oxide.Plugins
{
    [Info("ZealKarma", "Kira", "1.0.0")]
    [Description("Karma")]
    public class ZealKarma : RustPlugin
    {
        #region [References] / [Ссылки]

        [PluginReference] private Plugin ZealMStatistics;
        private StoredData DataBase = new StoredData();

        #endregion

        #region [Hooks] / [Крюки]

        private void OnServerInitialized()
        {
            LoadData();
            foreach (var player in BasePlayer.activePlayerList) CheckInDataBase(player.userID);
        }

        private void Unload()
        {
            SaveData();
        }

        #endregion

        #region [DataBase] / [База данных]

        public class StoredData
        {
            public readonly Dictionary<ulong, PlayerKarma> PlayersKarma = new Dictionary<ulong, PlayerKarma>();

            public class PlayerKarma
            {
                public float Karma;
            }
        }

        #endregion

        #region [Helpers] / [Вспомогательный код]

        private void CheckInDataBase(ulong userID)
        {
            if (!DataBase.PlayersKarma.ContainsKey(userID))
                DataBase.PlayersKarma.Add(userID, new StoredData.PlayerKarma());
        }

        private void SaveData() => Interface.Oxide.DataFileSystem.WriteObject(Name, DataBase);

        private void LoadData()
        {
            try
            {
                DataBase = Interface.GetMod().DataFileSystem.ReadObject<StoredData>(Name);
            }
            catch (Exception)
            {
                DataBase = new StoredData();
            }
        }

        #endregion

        #region [API]

        [HookMethod("GetKarma")]
        public float GetKarma(ulong userID)
        {
            if (!DataBase.PlayersKarma.ContainsKey(userID)) CheckInDataBase(userID);
            return DataBase.PlayersKarma[userID].Karma;
        }

        [HookMethod("GiveKarma")]
        public void GiveKarma(ulong userID, float count)
        {
            if (!DataBase.PlayersKarma.ContainsKey(userID)) CheckInDataBase(userID);
            DataBase.PlayersKarma[userID].Karma += count;
            SaveData();
        }

        [HookMethod("TakeKarma")]
        public void TakeKarma(ulong userID, float count)
        {
            if (!DataBase.PlayersKarma.ContainsKey(userID)) CheckInDataBase(userID);
            DataBase.PlayersKarma[userID].Karma -= count;
            SaveData();
        }

        #endregion 
    }
}

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