private void API_SendTextMessage(string webhookURL, string content, bool tts, Action <int> foreignCallback = null) { FancyMessage message = new FancyMessage(content, tts, null); var payload = message.toJSON(); Request(webhookURL, payload, (Callback) => foreignCallback.Invoke(Callback)); }
private Request(string url, FancyMessage message, Action <BaseResponse> response = null, Plugin plugin = null) { _url = url; _payload = message.ToJson(); _response = response; _plugin = plugin; }
private void MessageCommand(IPlayer player, string command, string[] args) { if (args.Length < 1) { SendMessage(player, GetLang("MessageSyntax", player.Id)); return; } var messageConfig = GetFeatureConfig <Configuration.Message>(FeatureType.Message); if (OnCooldown(player, CooldownType.MessageCooldown)) { var messageCooldown = _data.Players[player.Id].MessageCooldown; if (messageCooldown != null) { SendMessage(player, GetLang("Cooldown", player.Id, (messageCooldown.Value.AddSeconds(messageConfig.Cooldown) - DateTime.UtcNow).Seconds)); } return; } var message = string.Join(" ", args.ToArray()); var builder = new EmbedBuilder() .WithTitle(GetLang("Embed_MessageTitle")) .AddInlineField(GetLang("Embed_MessagePlayer"), $"[{player.Name}](https://steamcommunity.com/profiles/{player.Id})") .AddField(GetLang("Embed_MessageMessage"), message) .SetColor(messageConfig.Color); var payload = new FancyMessage() .WithContent(messageConfig.Alert) .SetEmbed(builder); Request.Send(messageConfig.WebhookUrl, payload, response => { if (response.IsOk) { SendMessage(player, GetLang("MessageSent", player.Id)); if (_data.Players.ContainsKey(player.Id)) { _data.Players[player.Id].MessageCooldown = DateTime.UtcNow; } else { _data.Players.Add(player.Id, new PlayerData()); _data.Players[player.Id].MessageCooldown = DateTime.UtcNow; } if (messageConfig.LogToConsole) { Puts($"MESSAGE ({player.Name}/{player.Id}) : {message}"); } } else if (response.IsBad) { SendMessage(player, GetLang("MessageNotSent", player.Id)); } }, this); }
public Request(string url, FancyMessage message, Plugin plugin = null) { Url = url; Payload = message.ToJson(); _plugin = plugin; Id = GetNextId(); Send(); }
private void HandleMessage(string name, string message) { string discordMessage = GetLang("PlayerChatFormat", null, name, message); FancyMessage dmessage = new FancyMessage(discordMessage, ChatTTS, null); var payload = dmessage.toJSON(); Request(ChatURL, payload); }
public Request(string url, FancyMessage message, Action <BaseResponse> response = null, Plugin plugin = null) { Url = url; Payload = message.ToJson(); Response = response; _plugin = plugin; Id = GetNextId(); Send(); }
private void MessageCommand(IPlayer player, string command, string[] args) { if (!MessageEnabled) { return; } if (args.Length < 1) { SendMessage(player, GetLang("MessageSyntax", player.Id)); return; } if (OnCooldown(player, CooldownType.MessageCooldown)) { var time = (storedData.Players[player.Id].messageCooldown.AddSeconds(MessageCooldown) - DateTime.UtcNow).Seconds; SendMessage(player, GetLang("Cooldown", player.Id, time)); return; } var text = string.Join(" ", args.ToArray()); List <Fields> fields = new List <Fields>(); fields.Add(new Fields(GetLang("Embed_MessagePlayer"), $"[{ player.Name }](https://steamcommunity.com/profiles/{player.Id})", true)); fields.Add(new Fields(GetLang("Embed_MessageMessage"), text, false)); FancyMessage message = new FancyMessage(MessageAlert, false, new FancyMessage.Embeds[1] { new FancyMessage.Embeds(GetLang("Embed_MessageTitle"), MessageColor, fields) }); var payload = message.toJSON(); Request(MessageURL, payload, (Callback) => { if (Callback == 200 || Callback == 204) { SendMessage(player, GetLang("MessageSent", player.Id)); if (storedData.Players.ContainsKey(player.Id)) { storedData.Players[player.Id].messageCooldown = DateTime.UtcNow; } else { storedData.Players.Add(player.Id, new PlayerData()); storedData.Players[player.Id].messageCooldown = DateTime.UtcNow; } if (MessageLogToConsole) { Puts($"MESSAGE ({player.Name}/{player.Id}) : {text}"); } } else if (Callback != 429) { SendMessage(player, GetLang("MessageNotSent", player.Id)); } }); }
private void API_SendTextMessage(string webhookURL, string content, bool tts = false) { FancyMessage message = new FancyMessage(content, tts, null); var payload = message.toJSON(); Request(webhookURL, payload, (Callback) => { if (!(Callback == 200 || Callback == 204 || Callback == 429)) { PrintError($"FAILED TO SEND REQUEST CODE {Callback}"); } }); }
private void API_SendFancyMessage(string webhookURL, string embedName, string json, string content = null, int embedColor = 3329330) { FancyMessage message = new FancyMessage(content, false, new FancyMessage.Embeds[1] { new FancyMessage.Embeds(embedName, embedColor, JsonConvert.DeserializeObject <List <Fields> >(json)) }); var payload = message.toJSON(); Request(webhookURL, payload, (Callback) => { if (!(Callback == 200 || Callback == 204 || Callback == 429)) { PrintError($"FAILED TO SEND REQUEST CODE {Callback}"); } }); }
private void API_SendFancyMessage(string webhookURL, string embedName, int embedColor, string json, string content = null, Plugin plugin = null) { EmbedBuilder builder = new EmbedBuilder() .WithTitle(embedName) .SetColor(embedColor); foreach (EmbedBuilder.Field field in JsonConvert.DeserializeObject <EmbedBuilder.Field[]>(json)) { builder.AddField(field); } FancyMessage payload = new FancyMessage() .SetEmbed(builder) .WithContent(content); Request request = new Request(webhookURL, payload, plugin); }
private void HandleMessage(IPlayer player, string playerMessage) { bool?muted = BetterChatMute?.Call <bool>("API_IsMuted", player); if (muted.HasValue && muted.Value) { return; } if (!player.HasPermission(AdminPermission)) { playerMessage = playerMessage.Replace("@everyone", "@ everyone").Replace("@here", "@ here"); } Configuration.Chat chatConfig = GetFeatureConfig <Configuration.Chat>(FeatureType.PLAYER_CHAT); string discordMessage = $"[{DateTime.Now.ToShortTimeString()}] {GetLang("PlayerChatFormat", null, player.Name, playerMessage)}"; FancyMessage message = new FancyMessage().WithContent(discordMessage).AsTTS(chatConfig.TextToSpeech); Request request = new Request(chatConfig.WebhookUrl, message, this); }
private void API_SendFancyMessage(string webhookURL, string embedName, int embedColor, string json, Action <int> foreignCallback = null) { List <Fields> fields = new List <Fields>(); JArray Jarray = (JArray)JsonConvert.DeserializeObject(json); foreach (var field in Jarray) { fields.Add(new Fields(field["name"].ToString(), field["value"].ToString(), bool.Parse(field["inline"].ToString()))); } if (embedColor == 0) { embedColor = 3329330; } FancyMessage message = new FancyMessage(null, false, new FancyMessage.Embeds[1] { new FancyMessage.Embeds(embedName, 3329330, fields) }); var payload = message.toJSON(); Request(webhookURL, payload, (Callback) => foreignCallback.Invoke(Callback)); }
private Request(string url, FancyMessage message, Plugin plugin = null) { _url = url; _payload = message.ToJson(); _plugin = plugin; }
public static void Send(string url, FancyMessage message, Plugin plugin = null) { new Request(url, message, plugin).Send(); }
private void ReportCommand(IPlayer player, string command, string[] args) { if ((player.Name == "Server Console") | !player.IsConnected) { return; } if (_data.Players.ContainsKey(player.Id)) { if (_data.Players[player.Id].ReportDisabled) { SendMessage(player, GetLang("ReportDisallowed", player.Id)); return; } } else { _data.Players.Add(player.Id, new PlayerData()); } if (args.Length < 2) { SendMessage(player, GetLang("ReportSyntax", player.Id)); return; } var reportConfig = GetFeatureConfig <Configuration.Report>(FeatureType.Report); if (OnCooldown(player, CooldownType.ReportCooldown)) { var reportCooldown = _data.Players[player.Id].ReportCooldown; if (reportCooldown != null) { SendMessage(player, GetLang("Cooldown", player.Id, (reportCooldown.Value.AddSeconds(reportConfig.Cooldown) - DateTime.UtcNow).Seconds)); } return; } var target = GetPlayer(args[0], player, true); if (target == null) { return; } var reason = args.Skip(1).ToList(); if (player.Id == target.Id) { SendMessage(player, GetLang("ToSelf", player.Id)); return; } var targetName = target.Name.Split(' '); if (targetName.Length > 1) { for (var x = 0; x < targetName.Length - 1; x++) { if (reason[x].Equals(targetName[x + 1])) { reason.RemoveAt(x); } else { break; } } } if (reason.Count < 1) { SendMessage(player, GetLang("ReportTooShort", player.Id)); return; } var cleanReason = string.Join(" ", reason.ToArray()); if (_data.Players.ContainsKey(target.Id)) { _data.Players[target.Id].Reports++; } else { _data.Players.Add(target.Id, new PlayerData()); _data.Players[target.Id].Reports++; } var status = target.IsConnected ? lang.GetMessage("Online", null) : lang.GetMessage("Offline", null); var builder = new EmbedBuilder() .WithTitle(GetLang("Embed_MessageTitle")) .SetColor(reportConfig.Color) .AddInlineField(GetLang("Embed_ReportTarget"), $"[{target.Name}](https://steamcommunity.com/profiles/{target.Id})") .AddInlineField(GetLang("Embed_ReportPlayer"), $"[{player.Name}](https://steamcommunity.com/profiles/{player.Id})") .AddInlineField(GetLang("Embed_ReportStatus"), status) .AddField(GetLang("Embed_ReportReason"), cleanReason) .AddInlineField(GetLang("Embed_ReportCount"), _data.Players[target.Id].Reports.ToString()); var payload = new FancyMessage() .WithContent(reportConfig.Alert) .SetEmbed(builder); Request.Send(reportConfig.WebhookUrl, payload, response => { if (response.IsOk) { SendMessage(player, GetLang("ReportSent", player.Id)); if (_data.Players.ContainsKey(player.Id)) { _data.Players[player.Id].ReportCooldown = DateTime.UtcNow; } else { _data.Players.Add(player.Id, new PlayerData()); _data.Players[player.Id].ReportCooldown = DateTime.UtcNow; } if (reportConfig.LogToConsole) { Puts($"REPORT ({player.Name}/{player.Id}) -> ({target.Name}/{target.Id}): {reason}"); } } else if (response.IsBad) { SendMessage(player, GetLang("ReportNotSent", player.Id)); } }, this); }
private void ReportCommand(IPlayer player, string command, string[] args) { if ((player.Name == "Server Console") | !player.IsConnected) { return; } if (ReportEnabled == false) { SendMessage(player, GetLang("Disabled", player.Id)); return; } if (storedData.Players.ContainsKey(player.Id)) { if (storedData.Players[player.Id].ReportDisabled) { SendMessage(player, GetLang("ReportDisallowed", player.Id)); return; } } else { storedData.Players.Add(player.Id, new PlayerData()); } if (OnCooldown(player, CooldownType.ReportCooldown)) { var time = (storedData.Players[player.Id].reportCooldown.AddSeconds(ReportCooldown) - DateTime.UtcNow).Seconds; SendMessage(player, GetLang("Cooldown", player.Id, time)); return; } if (args.Length < 2) { SendMessage(player, GetLang("ReportSyntax", player.Id)); return; } List <string> reason = args.Skip(1).ToList(); var target = GetPlayer(args[0], player, true); if (target != null) { if (player.Equals(target)) { SendMessage(player, GetLang("ToSelf", player.Id)); return; } string[] targetName = target.Name.Split(' '); if (targetName.Length > 1) { for (int x = 0; x < targetName.Length - 1; x++) { if (reason[x].Equals(targetName[x + 1])) { reason.RemoveAt(x); } else { break; } } } if (reason.Count < 1) { SendMessage(player, GetLang("ReportTooShort", player.Id)); return; } string finalReason = string.Join(" ", reason.ToArray()); if (storedData.Players.ContainsKey(target.Id)) { storedData.Players[target.Id].reports++; } else { storedData.Players.Add(target.Id, new PlayerData()); storedData.Players[target.Id].reports++; } var status = target.IsConnected ? lang.GetMessage("Online", null) : lang.GetMessage("Offline", null); List <Fields> fields = new List <Fields>(); fields.Add(new Fields(GetLang("Embed_ReportTarget"), $"[{target.Name}](https://steamcommunity.com/profiles/{target.Id})", true)); fields.Add(new Fields(GetLang("Embed_ReportPlayer"), $"[{player.Name}](https://steamcommunity.com/profiles/{player.Id})", true)); fields.Add(new Fields(GetLang("Embed_ReportStatus"), status, true)); fields.Add(new Fields(GetLang("Embed_ReportReason"), finalReason, false)); fields.Add(new Fields(GetLang("Embed_ReportCount"), storedData.Players[target.Id].reports.ToString(), true)); FancyMessage message = new FancyMessage(ReportAlert, false, new FancyMessage.Embeds[1] { new FancyMessage.Embeds(GetLang("Embed_MessageTitle"), ReportColor, fields) }); Request(ReportURL, message.toJSON(), (Callback) => { if (Callback == 200 || Callback == 204) { SendMessage(player, GetLang("ReportSent", player.Id)); if (storedData.Players.ContainsKey(player.Id)) { storedData.Players[player.Id].reportCooldown = DateTime.UtcNow; } else { storedData.Players.Add(player.Id, new PlayerData()); storedData.Players[player.Id].reportCooldown = DateTime.UtcNow; } if (ReportLogToConsole) { Puts($"REPORT ({player.Name}/{player.Id}) -> ({target.Name}/{target.Id}): {finalReason}"); } } else if (Callback != 429) { SendMessage(player, GetLang("ReportNotSent", player.Id)); } }); } }
private void API_SendTextMessage(string webhookURL, string content, bool tts = false, Plugin plugin = null) { FancyMessage payload = new FancyMessage().AsTTS(tts).WithContent(content); Request request = new Request(webhookURL, payload, plugin); }
public static void Send(string url, FancyMessage message, Action <BaseResponse> _callback, Plugin plugin = null) { new Request(url, message, _callback, plugin).Send(); }