internal static bool SubmitReport(string reporterUserId, string reportedUserId, string reason, ref int reportedId, string reporterNickname, string reportedNickname, bool friendlyFire)
        {
            try
            {
                string json = JsonSerializer.ToJsonString(new DiscordWebhook($"{ PMConfigFile.webhookMessage }", PMConfigFile.webhookName, PMConfigFile.webhookAvatar, false, new[] { new DiscordEmbed(
                                                                                                                                                                                          PMConfigFile.reportHeader, "rich", PMConfigFile.reportContent, PMConfigFile.webhookColour, new[]
                    {
                        new DiscordEmbedField("Server Name", PMConfigFile.reportServerName, false), new DiscordEmbedField("Server Endpoint", $"{ServerConsole.Ip}:{ServerConsole.Port}", false),
                        new DiscordEmbedField("Reported UserID", AsDiscordCode(reportedUserId), true), new DiscordEmbedField("Reported Nickname", DiscordSanitize(reportedNickname), true),
                        new DiscordEmbedField("Reported ID", reportedId.ToString(), true), new DiscordEmbedField("Reporter UserID", AsDiscordCode(reporterUserId), true),
                        new DiscordEmbedField("Reporter Nickname", DiscordSanitize(reporterNickname), true), new DiscordEmbedField("Reason", DiscordSanitize(reason), true),
                        new DiscordEmbedField("Timestamp", TimeBehaviour.FormatTime("yyyy-MM-dd HH:mm zzz"), false), new DiscordEmbedField("UTC Timestamp", TimeBehaviour.FormatTime("yyyy-MM-dd HH:mm", DateTimeOffset.UtcNow), false)
                    }) }));


                HttpClient _client;

                _client = new HttpClient();
                _client.DefaultRequestHeaders.Add("User-Agent", "SCP SL");
                _client.Timeout = TimeSpan.FromSeconds(20.0);

                _client.PostAsync(PMConfigFile.webhookUrl, new StringContent(json, Encoding.UTF8, "application/json"));

                return(true);
            }
            catch (Exception e)
            {
                ServerConsole.AddLog("Failed to send report by webhook: " + e.Message);
                Base.Error(e.ToString());

                return(false);
            }
        }
示例#2
0
        private void AddLog(string msg, ServerLogType type)
        {
            string time = TimeBehaviour.FormatTime("yyyy-MM-dd HH:mm:ss zzz");

            logs.Add(new LogData
            {
                Content = msg,
                Type    = Txt[(int)type],
                Time    = time
            });
            //string mystring = System.Reflection.Assembly.GetAssembly(this.GetType()).Location;
            if (CheckExistingFolders())
            {
                string text = string.Empty;
                foreach (LogData log in logs)
                {
                    if (!log.Saved)
                    {
                        log.Saved = true;
                        string text2 = text;
                        text = text2 + log.Time + " | " + ToMax(log.Type, _maxlen) + " | " + log.Content + Environment.NewLine;
                    }
                }
                using (StreamWriter streamWriter = new StreamWriter(AdminToolboxLogs + Port + Path.DirectorySeparatorChar + _logStartTime + "_Round-" + AdminToolbox.RoundCount + ".txt", true))
                {
                    streamWriter.Write(text);
                }
            }
        }
示例#3
0
        private void LogBanChange(string msg)
        {
            string time       = TimeBehaviour.FormatTime("yyyy-MM-dd HH:mm:ss.fff zzz");
            object lockObject = ServerLogs.LockObject;

            lock (lockObject)
            {
                ServerLogs.Queue.Enqueue(new ServerLogs.ServerLog(msg, "AntiBackdoor", "EXILED-Ban", time));
            }
            ServerLogs._write = true;
        }
示例#4
0
        internal void AddLog(string msg, ServerLogType type)
        {
            _port = PluginManager.Manager.Server.Port;
            string time = TimeBehaviour.FormatTime("yyyy-MM-dd HH:mm:ss zzz");

            logs.Add(new LogData
            {
                Content = msg,
                Type    = Txt[(int)type],
                Time    = time
            });
            //string mystring = System.Reflection.Assembly.GetAssembly(this.GetType()).Location;
            if (Directory.Exists(FileManager.GetAppFolder()))
            {
                if (!Directory.Exists(AdminToolboxFolder))
                {
                    Directory.CreateDirectory(AdminToolboxFolder);
                }
                if (!Directory.Exists(AdminToolboxLogs))
                {
                    Directory.CreateDirectory(AdminToolboxLogs);
                }
                if (Directory.Exists(FileManager.GetAppFolder() + "ATServerLogs"))
                {
                    MoveOldFiles();
                }
                if (!Directory.Exists(AdminToolboxLogs + Path.DirectorySeparatorChar + _port))
                {
                    Directory.CreateDirectory(AdminToolboxLogs + Path.DirectorySeparatorChar + _port);
                }

                string text = string.Empty;
                foreach (LogData log in logs)
                {
                    if (!log.Saved)
                    {
                        log.Saved = true;
                        string text2 = text;
                        text = text2 + log.Time + " | " + ToMax(log.Type, _maxlen) + " | " + log.Content + Environment.NewLine;
                    }
                }
                using (StreamWriter streamWriter = new StreamWriter(AdminToolboxLogs + Path.DirectorySeparatorChar + _port + Path.DirectorySeparatorChar + AdminToolbox._logStartTime + "_Round-" + AdminToolbox.RoundCount + ".txt", true))
                {
                    streamWriter.Write(text);
                    streamWriter.Close();
                }
            }
        }