Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
 private Request(string url, FancyMessage message, Action <BaseResponse> response = null, Plugin plugin = null)
 {
     _url      = url;
     _payload  = message.ToJson();
     _response = response;
     _plugin   = plugin;
 }
Exemplo n.º 3
0
        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();
 }
Exemplo n.º 5
0
        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();
 }
Exemplo n.º 7
0
        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));
                }
            });
        }
Exemplo n.º 8
0
        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}");
                }
            });
        }
Exemplo n.º 9
0
        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);
        }
Exemplo n.º 12
0
        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));
        }
Exemplo n.º 13
0
 private Request(string url, FancyMessage message, Plugin plugin = null)
 {
     _url     = url;
     _payload = message.ToJson();
     _plugin  = plugin;
 }
Exemplo n.º 14
0
 public static void Send(string url, FancyMessage message, Plugin plugin = null)
 {
     new Request(url, message, plugin).Send();
 }
Exemplo n.º 15
0
        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);
        }
Exemplo n.º 16
0
        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);
 }
Exemplo n.º 18
0
 public static void Send(string url, FancyMessage message, Action <BaseResponse> _callback, Plugin plugin = null)
 {
     new Request(url, message, _callback, plugin).Send();
 }