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

FREE SteamReport : 2.0.1 2.0.1

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

using System.Linq;
using System.Collections.Generic;

namespace Oxide.Plugins
{
    [Info("SteamReport", "", "2.0.1", ResourceId = 0)]
    [Description("Sends in-game reports to admins via Steam.")]
    class SteamReport : CovalencePlugin
    {
        #region Config

        List<string> admins;
        string requestUrl;
        string reportCommand;

        protected override void LoadDefaultConfig()
        {
            Config["Admins"] = new List<string>
            {
                "76561198103592543"
            };
            Config["RequestUrl"] = "http://RestpiServer.net/report";
            Config["ReportCommand"] = "report";
        }

        #endregion

        #region Lang

        void InitLang()
        {
            lang.RegisterMessages(new Dictionary<string, string>
            {
                ["Syntax"] = "Syntax: /report [name|id] [message]",
                ["PlayersNone"] = "No players were found.",
                ["PlayersMultiple"] = "Multiple players were found.",
                ["Fail"] = "Report failed to send.",
                ["Sent"] = "Report sent.",
            }, this);
        }

        string _(string key, string userId) => lang.GetMessage(key, this, userId);

        #endregion

        #region Hooks

        void Init()
        {
            InitLang();

            admins = Config.Get<List<string>>("Admins");
            requestUrl = Config.Get<string>("RequestUrl");
            reportCommand = Config.Get<string>("ReportCommand");

            foreach (var id in admins)
                if (!id.IsSteamId())
                    Puts($"{id} is not a valid SteamID64.");

            AddCovalenceCommand(reportCommand, "SendReport", "steamreport.use");
        }

        #endregion

        #region Command

        void SendReport(IPlayer player, string command, string[] args)
        {
            if (args == null || args.Length <= 1)
            {
                player.Reply(_("Syntax", player.Id));
                return;
            }

            var found = players.FindPlayers(args[0]).Where(p => p.IsConnected);

            if (!found.Any())
            {
                player.Reply(_("PlayersNone", player.Id));
                return;
            }

            if (found.Count() > 1)
            {
                player.Reply(_("PlayersMultiple", player.Id));
                return;
            }

            var target = found.First();
            var message = string.Empty;

            for (var i = 1; i < args.Length; i++)
                message += args[i] + (i == args.Length ? string.Empty : " ");

            var request = string.Format("{0}?adminList={1}&reporterName={2}&reporterId={3}&reporterPos={4}&reporteeName={5}&reporteeId={6}&reporteePos={7}&reportMessage={8}",
                requestUrl, string.Join("|", admins.ToArray()), player.Name, player.Id, player.Position().ToString(), target.Name, target.Id, target.Position().ToString(), message);

            


            webrequest.EnqueueGet(request, (code, response) =>
            {
                if (code != 200 || response == null)
                {
                    player.Reply(_("Fail", player.Id));
                    return;
                }

                player.Reply(_("Sent", player.Id));
            }, this);
			// -- Added for my own Backend , staff Server ticket storage
			//SendNewReport(0,"Report",ServerType,message,player.Object as BasePlayer,target.Object as BasePlayer);
        }

        #endregion
        private int ServerType = 1; // Server Enum - 0=Modded 1=Vanilla 2=Training
        private void SendNewReport(int typ , string subj,int srv , string msg, BasePlayer sender =null , BasePlayer target = null)
        {
			int type = typ ; 		//TicketType --   Report = 0, Bug = 1, Support = 2, Violation = 3, Generic = 4
			string Subject = subj; 	// ex.Norecoil...flyhack...etc	
			int server= srv; 		//ServerEnum 0-mod , 1 - vanilla , 2-training	string pName ="";
			string msgg = msg; 		//the actual message	string tName = "";
		
		
			string pName ="None";
			string tName = "None";
			string pId = "0";
			string tId = "0";
			if(sender!=null)
			{
				pName = sender.displayName;
				pId=sender.UserIDString;
				
			}
			if(target!=null)
			{
				tName = target.displayName;
				tId=target.UserIDString;
			
			}

            
            var request = string.Format("{0}?Type={1}&Server={2}&Subject={3}&Plugin={4}&message={5}&sendername={6}&senderid={7}&targetmame={8}&targetid={9}",
            "http://145.239.130.132:8853",type,server,Subject,this,msgg,pName,pId,tName,tId);
         


            webrequest.EnqueueGet(request, (code, response) =>
            {
                if (code != 200 || response == null)
                {
                    Puts($"Fail Code = {code.ToString()} -- {response}");
                    return;
                }
            }, this);
        }

    }
}

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