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

FREE BedNameLogs : 0.1.3 0.1.3

Нет прав для скачивания
C#:
// Все права принадлежат дискорд сообществу https://discord.gg/VgNHPpNrz6
using System;
using System.Collections.Generic;
using Oxide.Core.Libraries.Covalence;
using Newtonsoft.Json;
using Oxide.Core.Libraries;
namespace Oxide.Plugins {
    [Info("Bed Name Logs", "Zeeuss", "0.1.3")]
    [Description("A logger for beds and sleeping bags renames.")]
    public class BedNameLogs : RustPlugin {
#region Localization
        protected override void LoadDefaultMessages() {
            lang.RegisterMessages(new Dictionary<string, string> {
                //FORMAT: XYZ playername playerid renamed sleeping bag from previous to current
                ["SleepingBagRename"]
                = "{0} {1} ({2}) renamed sleeping bag from {3} to {4}", ["BedRename"] = "{0} {1} ({2}) renamed bed from {3} to {4}"
            }
            , this);
        }
#endregion
#region Json
        private const string DiscordJson = @"{
            ""embeds"":[{
                    ""color"": ""${discord.embed.color}"",
                    ""fields"": [
                    {
                        ""name"": ""${player.field.name}"",
                        ""value"": ""${player}""
                    },
                    {
                        ""name"": ""${message.field.name}"",
                        ""value"": ""${message}""
                    }
                ]
            }]
        }";
#endregion
#region Hooks
        void CanRenameBed(BasePlayer player, SleepingBag bed, string bedName) {
            if (player == null) {
                return;
            }
            if (bed == null) {
                return;
            }
            string xyzpos = $"X: {Math.Round((decimal)bed.ServerPosition.x)} Y: {Math.Round((decimal)bed.ServerPosition.y)} Z: {Math.Round((decimal)bed.ServerPosition.z)}";
            string playerName = $"{player?.displayName}";
            string playerID = $"{player?.UserIDString}";
            string bedPrevious = $"{bed?.niceName}";
            string bedCurrent = $"{bedName}";
            if (configData == null) {
                LoadConfigVariables();
            }
            if (bed?.ShortPrefabName == "sleepingbag_leather_deployed") {
                LogToFile("Renames", String.Format(lang.GetMessage("SleepingBagRename", this, null), xyzpos, playerName, playerID, bedPrevious, bedCurrent), this, true);
                if (configData.dcLogs != true) return;
                logToDc(player, xyzpos, playerName, playerID, bedPrevious, bedCurrent, "SleepingBagRename");
            }
            else if (bed?.ShortPrefabName == "bed_deployed") {
                LogToFile("Renames", String.Format(lang.GetMessage("BedRename", this, null), xyzpos, playerName, playerID, bedPrevious, bedCurrent), this, true);
                if (configData.dcLogs != true) return;
                logToDc(player, xyzpos, playerName, playerID, bedPrevious, bedCurrent, "BedRename");
            }
        }
#endregion
#region Config
        private ConfigData configData;
        class ConfigData {
            [JsonProperty(PropertyName = "log to discord?")]
            public bool dcLogs = true;
            [JsonProperty(PropertyName = "Discord webhook url")]
            public string discordWebHookURL = "Your discord webhook URL";
        }
        private bool LoadConfigVariables() {
            try {
                configData = Config.ReadObject<ConfigData>();
            }
            catch {
                return false;
            }
            SaveConfig(configData);
            return true;
        }
        protected override void LoadDefaultConfig() {
            configData = new ConfigData();
            SaveConfig(configData);
        }
        void SaveConfig(ConfigData config) {
            Config.WriteObject(config, true);
        }
#endregion
#region Helper
        private void logToDc(BasePlayer player, string xyzpos, string playerName, string playerID, string bedPrevious, string bedCurrent, string langM) {
            string content = DiscordJson.Replace("${discord.embed.color}", "16538684").Replace("${player.field.name}", "Player").Replace("${player}", $"{player?.displayName} ({player?.UserIDString})").Replace("${message.field.name}", "Rename Log").Replace("${message}", String.Format(lang.GetMessage(langM, this, null), xyzpos, playerName, playerID, bedPrevious, bedCurrent));
            if (configData == null) {
                LoadConfigVariables();
            }
            if (!configData.discordWebHookURL.Contains("/api/webhooks") || string.IsNullOrEmpty(configData.discordWebHookURL.ToString()) || content == null) {
                return;
            }
            webrequest.Enqueue(configData.discordWebHookURL, content, (code, response) => {
                if (code != 204) {
                    Puts($"Discord.com responded with code {code}");
                }
            }
            , this, RequestMethod.POST, new Dictionary<string, string> {
                ["Content-Type"]
                = "application/json"
            }
            );
        }
#endregion
    }
}

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