Example #1
0
        private void Callbacks_PlayerChat(object sender, PlayerChatEventArgs e)
        {
            RunCatchLog(() =>
            {
                if (CheckForServerRankCommand(e))
                {
                    return;
                }

                if (CheckForNextServerRankCommand(e))
                {
                    return;
                }

                if (CheckForInfoCommand(e))
                {
                    return;
                }

                if (CheckForSelectUndrivenTracksCommand(e))
                {
                    return;
                }

                if (CheckForLastSeenCommand(e))
                {
                    return;
                }
            }, "Error in Callbacks_PlayerChat Method.", true);
        }
Example #2
0
        private bool CheckForDeleteCheaterCommand(PlayerChatEventArgs args)
        {
            if (args.IsServerMessage || args.Text.IsNullOrTimmedEmpty())
            {
                return(false);
            }

            ServerCommand command = ServerCommand.Parse(args.Text);

            if (!command.Is(Command.DeleteCheater) || command.PartsWithoutMainCommand.Count == 0)
            {
                return(false);
            }

            string login = command.PartsWithoutMainCommand[0];

            if (!LoginHasRight(args.Login, true, Command.DeleteCheater))
            {
                return(true);
            }

            if (PlayerAdapter.RemoveAllStatsForLogin(login))
            {
                SendFormattedMessageToLogin(args.Login, Settings.CheaterDeletedMessage, "Login", login);

                DetermineLocalRecords();
                OnLocalRecordsDetermined(new List <RankEntry>(LocalRecords));
            }
            else
            {
                SendFormattedMessageToLogin(args.Login, Settings.CheaterDeletionFailedMessage, "Login", login);
            }

            return(true);
        }
Example #3
0
        private bool CheckForTMXInfoCommand(PlayerChatEventArgs e)
        {
            ServerCommand command = ServerCommand.Parse(e.Text);

            if (command.Is(Command.TMXInfo))
            {
                if (command.PartsWithoutMainCommand.Count > 0)
                {
                    string  trackID = command.PartsWithoutMainCommand[0];
                    TMXInfo tmxInfo = TMXInfo.Retrieve(trackID);

                    if (tmxInfo != null && !tmxInfo.Erroneous)
                    {
                        SendFormattedMessageToLogin(e.Login, "{[#ServerStyle]}> {[#MessageStyle]}[TMX-Info] Name: {[#HighlightStyle]}{[Name]}{[#MessageStyle]}, Author: {[#HighlightStyle]}{[Author]}{[#MessageStyle]}, Environment: {[#HighlightStyle]}{[Env]}", "Name", tmxInfo.Name, "Author", tmxInfo.Author, "Env", tmxInfo.Environment);
                    }
                    else
                    {
                        SendFormattedMessageToLogin(e.Login, "{[#ServerStyle]}> {[#ErrorStyle]}Could not retrieve trackinfo for trackid " + trackID);
                    }
                }

                return(true);
            }

            return(false);
        }
Example #4
0
        private void Callbacks_PlayerChat(object sender, PlayerChatEventArgs e)
        {
            RunCatchLog(() =>
            {
                if (!ServerCommand.Parse(e.Text).Is(Command.ReadClanTagSettings))
                {
                    return;
                }

                if (!LoginHasRight(e.Login, true, Command.ReadClanTagSettings))
                {
                    return;
                }

                try
                {
                    ReadConfigValues();
                    SendFormattedMessageToLogin(e.Login, "{[#ServerStyle]}> {[#MessageStyle]} Successfully read clan tag settings file.");
                }
                catch (Exception)
                {
                    SendFormattedMessageToLogin(e.Login, "{[#ServerStyle]}> {[#ErrorStyle]}Error reading clan tag settings file. Please view log for a detailed error description.");
                }
            }, "Error in Callbacks_PlayerChat Method.", true);
        }
Example #5
0
 private void OnPlayerChat(PlayerChatEventArgs args)
 {
     if (!args.Player.mute)
     {
         Discord.Send($"{args.TShockFormattedText.ParseText()}");
     }
 }
Example #6
0
        private bool CheckForGetMySpectatorsCommand(PlayerChatEventArgs e)
        {
            if (ServerCommand.Parse(e.Text).Is(Command.GetMySpectators))
            {
                if (!LoginHasRight(e.Login, true, Command.GetMySpectators))
                {
                    return(true);
                }

                List <string> spectators = Context.PlayerSettings.GetAsList(playerSettings => playerSettings.SpectatorStatus.IsSpectator && playerSettings.SpectatorStatus.CurrentPlayerTargetID == e.PlayerID)
                                           .Select(playerSettings => StripTMColorsAndFormatting(playerSettings.NickName) + "[{[#HighlightStyle]}" + playerSettings.Login + "{[#MessageStyle]}]")
                                           .ToList();

                if (spectators.Count > 0)
                {
                    SendFormattedMessageToLogin(e.Login, "{[#ServerStyle]}> {[#HighlightStyle]}" + spectators.Count + " Spectator(s): {[#MessageStyle]}" + string.Join(", ", spectators.ToArray()));
                }
                else
                {
                    SendFormattedMessageToLogin(e.Login, "{[#ServerStyle]}> Currently no one is spectating you!");
                }

                return(true);
            }


            return(false);
        }
Example #7
0
        private void Callbacks_PlayerChat(object sender, PlayerChatEventArgs e)
        {
            RunCatchLog(() =>
            {
                if (e.IsServerMessage || e.Text.IsNullOrTimmedEmpty())
                {
                    return;
                }

                if (CheckForGetAllSpectatorsCommand(e))
                {
                    return;
                }

                if (CheckForGetMySpectatorsCommand(e))
                {
                    return;
                }

                if (CheckForKickAllSpectatorsCommand(e))
                {
                    return;
                }

                if (CheckForKickMySpectatorsCommand(e))
                {
                    return;
                }
            }, "Error in Callbacks_PlayerChat Method.", true);
        }
Example #8
0
        private bool CheckForSelectUndrivenTracksCommand(PlayerChatEventArgs args)
        {
            ServerCommand serverCommand = ServerCommand.Parse(args.Text);

            if (!serverCommand.Is(Command.SelectUndrivenTracks))
            {
                return(false);
            }

            if (!LoginHasRight(args.Login, true, Command.SelectUndrivenTracks))
            {
                return(true);
            }

            string targetLogin = args.Login;

            if (serverCommand.HasFurtherParts)
            {
                targetLogin = serverCommand.PartsWithoutMainCommand[0];
            }

            PlayerSettings playerSettings = GetPlayerSettings(targetLogin);

            if (playerSettings == null)
            {
                SendNoPlayerWithLoginMessageToLogin(args.Login, targetLogin);
                return(true);
            }

            SelectUndrivenTracks(args.Login, targetLogin);

            return(true);
        }
Example #9
0
 public void ChatReceived(object sender, PlayerChatEventArgs e)
 {
     if (e.Message == ".webui stop")
     {
         OnStop(null, null);
     }
 }
Example #10
0
        private void Callbacks_PlayerChat(object sender, PlayerChatEventArgs e)
        {
            if (!Settings.ResetOnChat || e.IsServerMessage)
            {
                return;
            }

            RunCatchLog(() => ResetValues(e.Login), "Error in Callbacks_PlayerChat Method.", true);
        }
 void demoParser_PlayerChat(object sender, PlayerChatEventArgs e)
 {
     Dispatcher.Invoke(new Action(() =>
     {
         this.textblockContent.Text += String.Format("[{0}] {1} > {2}", (e.TeamOnly) ? "t_say" : "say", e.Player.Name, e.Message) + Environment.NewLine;
         this.scrollViewer.ScrollToBottom();
     }
                                  ));
 }
Example #12
0
 private void Callbacks_PlayerChat(object sender, PlayerChatEventArgs e)
 {
     RunCatchLog(() =>
     {
         if (CheckForTopSumsCommand(e))
         {
             return;
         }
     }, "Error in Callbacks_PlayerChat Method.", true);
 }
Example #13
0
        private bool CheckForKickMySpectatorsCommand(PlayerChatEventArgs e)
        {
            if (ServerCommand.Parse(e.Text).Is(Command.KickMySpectators))
            {
                Context.CorePlugin.KickSpectatorsOf(e.Login, e.PlayerID);
                return(true);
            }

            return(false);
        }
Example #14
0
        private bool CheckForTopSumsCommand(PlayerChatEventArgs args)
        {
            if (!ServerCommand.Parse(args.Text).Is(Command.TopSums))
            {
                return(false);
            }

            SendTopSumsPageToLogin(args.Login, 0);

            return(true);
        }
Example #15
0
        private bool CheckForNextServerRankCommand(PlayerChatEventArgs args)
        {
            if (!ServerCommand.Parse(args.Text).Is(Command.NextRank))
            {
                return(false);
            }

            SendNextServerRankMessageToLogin(args.Login);

            return(true);
        }
Example #16
0
        private bool CheckForInfoCommand(PlayerChatEventArgs args)
        {
            if (!ServerCommand.Parse(args.Text).Is(Command.Info))
            {
                return(false);
            }

            SendInfoMessageToLogin(args.Login);

            return(true);
        }
Example #17
0
        private void Callbacks_PlayerChat(object sender, PlayerChatEventArgs e)
        {
            RunCatchLog(() =>
            {
                ServerCommand command = ServerCommand.Parse(e.Text);

                if (command != null)
                {
                    HandleCommand(e.Login, command);
                }
            }, "Errror in Callbacks_PlayerChat", true);
        }
Example #18
0
        public static bool PlayerChat(SteamPlayer steamPlayer, ref byte modeByte, ref EChatMode mode, ref Color color, ref string text)
        {
            if (text.StartsWith("@") && steamPlayer.isAdmin)
            {
                // Send the admin command through.
                return(false);
            }
            if (text.StartsWith("/"))
            {
                SysConsole.Output(OutputType.CLIENTINFO, "Player [" + steamPlayer.player.name + "] executing player command: " + text);
                string cmd      = text.Substring(1);
                int    splitPos = cmd.IndexOf(' ');
                string args     = "";
                if (splitPos > 0)
                {
                    args = cmd.Substring(splitPos + 1);
                    cmd  = cmd.Substring(0, splitPos);
                }
                for (int i = 0; i < Instance.PlayerCommands.Count; i++)
                {
                    if (Instance.PlayerCommands[i].check(steamPlayer.playerID.steamID, cmd, args))
                    {
                        return(true);
                    }
                }
                // TODO: if (CVars.g_showinvalidplayercommand.ValueB)
                ChatManager.manager.channel.send("tellChat", steamPlayer.playerID.steamID, ESteamPacket.UPDATE_UNRELIABLE_BUFFER, steamPlayer.playerID.steamID, (byte)0, Color.red, "Unknown command!");
                // Processed a local command.
                return(true);
            }
            color = Color.white;
            if (steamPlayer.isAdmin)
            {
                color = Palette.ADMIN;
            }
            else if (steamPlayer.isPro)
            {
                color = Palette.PRO;
            }
            PlayerChatEventArgs evt = new PlayerChatEventArgs();

            evt.Player   = new PlayerTag(steamPlayer);
            evt.ChatMode = new TextTag(mode.ToString());
            evt.Text     = new TextTag(text);
            evt.Color    = new ColorTag(color);
            UnturnedFreneticEvents.OnPlayerChat.Fire(evt);
            mode     = (EChatMode)Enum.Parse(typeof(EChatMode), evt.ChatMode.ToString().ToUpper());
            modeByte = (byte)mode;
            text     = evt.Text.ToString();
            color    = evt.Color.Internal;
            return(evt.Cancelled);
        }
Example #19
0
        /// <summary>
        /// Called when a chat message is intercepted
        /// </summary>
        /// <param name="args">event arguments passed by hook</param>
        //private void OnChat(ServerChatEventArgs args)
        private void OnChat(PlayerChatEventArgs args)
        {
            // Do not relay game chat to Discord if this option is enabled
            if (Config.SilenceChat)
            {
                return;
            }

            // PlayerHooks.OnPlayerChat() already handles filtering commands and muted players.
            // Do not relay commands or messages from muted players
            //if(args.Text.StartsWith(TShock.Config.CommandSpecifier, StringComparison.InvariantCulture) || args.Text.StartsWith(TShock.Config.CommandSilentSpecifier, StringComparison.InvariantCulture) || TShock.Players[args.Who].mute)
            //  return;

            // Attempt to convert any channel mentions
            //string modifiedMessage = args.Text;
            string modifiedMessage = args.RawText;

            if (Regex.IsMatch(modifiedMessage, @"#.+"))
            {
                modifiedMessage = Util.ConvertChannelMentions(modifiedMessage, discord.Client);
            }

            // Attempt to convert any role/user mentions
            if (Regex.IsMatch(modifiedMessage, @"@.+"))
            {
                modifiedMessage = Util.ConvertRoleUserMentions(modifiedMessage, discord.Client);
            }

            // Check for game items and convert them to friendly names if found
            if (Regex.IsMatch(modifiedMessage, @"\[i(/p[0-9]+)?(/s[0-9]+)?:([0-9]+)\]"))
            {
                modifiedMessage = Util.ConvertItems(modifiedMessage);
            }

            // Convert emoticons to emojis if enabled
            if (Config.ConvertEmoticons)
            {
                modifiedMessage = Util.ConvertEmoticons(modifiedMessage);
            }

            if (Config.LogChat)
            {
                //Util.Log($"{TShock.Players[args.Who].Name} said: {modifiedMessage}", Util.Severity.Info);
                Util.Log($"{args.Player.Name} said: {modifiedMessage}", Util.Severity.Info);
            }
            //discord.Send($"**<{TShock.Players[args.Who].Name}>** {modifiedMessage}");
            string text = Config.PlayerText.Replace("$player_name", args.Player.Name);

            text = text.Replace("$group_name", args.Player.Group.Name);
            text = text.Replace("$message", modifiedMessage);
            discord.Send(text);
        }
Example #20
0
        private void OnChat(PlayerChatEventArgs args)
        {
            if (!Config.SendChat)
            {
                return;
            }
            if (args.Handled)
            {
                return;
            }

            RestHelper.SendChatMessage(args.Player, args.TShockFormattedText);
        }
Example #21
0
        private void Callbacks_PlayerChat(object sender, PlayerChatEventArgs e)
        {
            RunCatchLog(() =>
            {
                if (CheckForDeleteCheaterCommand(e))
                {
                    return;
                }

                if (CheckForListLocalLoginsCommand(e))
                {
                    return;
                }
            }, "Error in Callbacks_PlayerChat Method.", true);
        }
Example #22
0
        private void OnPlayerChat(PlayerChatEventArgs args)
        {
            var player = args.Player;

            if (player.HasPermission("leveling.noprefix"))
            {
                return;
            }

            var session = GetOrCreateSession(player);

            args.TShockFormattedText = string.Format(TShock.Config.ChatFormat, player.Group.Name,
                                                     player.Group.Prefix + session.Level.Prefix, player.Name,
                                                     player.Group.Suffix,
                                                     args.RawText);
        }
        private void OnPlayerChat(PlayerChatEventArgs e)
        {
            //don't check commands
            if (e.RawText.StartsWith(Commands.Specifier))
            {
                return;
            }

            if (!e.Player.HasPermission(SkillPermission))
            {
                return;
            }

            var session = Session.GetOrCreateSession(e.Player);

            if (session.TriggerWordsToSkillDefinitions.Count > 0)
            {
                foreach (var kvp in session.TriggerWordsToSkillDefinitions)
                {
                    var triggerWord = kvp.Key;
                    var definition  = kvp.Value;

                    if (e.RawText.Contains(triggerWord))
                    {
                        //can we use this skill?
                        if (definition.PermissionsToUse != null && !PlayerFunctions.PlayerHasPermission(e.Player, definition.PermissionsToUse))
                        {
                            continue;
                        }

                        if (!session.IsSkillReady(definition.Name))
                        {
                            continue;
                        }

                        if (session.PlayerSkillInfos.TryGetValue(definition.Name, out var playerSkillInfo))
                        {
                            CustomSkillRunner.AddActiveSkill(e.Player, definition, playerSkillInfo.CurrentLevel);
                            return;
                        }
                    }
                }
            }

            //Debug.Print($"Chat: raw: {e.RawText}");
            //Debug.Print($"Chat: formatted: {e.TShockFormattedText}");
        }
 private void TextPacketHandle(TextPacket pk)
 {
     if (pk.Type == TextPacket.TYPE_CHAT)
     {
         string message = pk.Message.Trim();
         if (message != "" && message.Length < 256)
         {
             PlayerChatEventArgs playerChatEvent = new PlayerChatEventArgs(this, message);
             PlayerEvents.OnPlayerChat(playerChatEvent);
             if (playerChatEvent.IsCancel)
             {
                 return;
             }
             message = $"<{this.Name}§f> {playerChatEvent.Message}§f";
             Server.Instance.BroadcastChat(message);
         }
     }
 }
Example #25
0
        void OnChat(PlayerChatEventArgs args)
        {
            if (Config.Chat)
            {
                if (string.IsNullOrWhiteSpace(args.RawText))
                {
                    return;
                }

                string msg = string.Format(Discord.Config.TerrariaToDiscordFormat,
                                           args.Player.Group.Prefix,
                                           args.Player.Name,
                                           (string.IsNullOrWhiteSpace(args.Player.Group.Suffix))?"":args.Player.Group.Suffix,
                                           args.RawText);

                Bridge.SendMessage(msg);
            }
        }
Example #26
0
        //[EventAttribute(Type = typeof(EventHandler<PlayerChatEventArgs>))]
        //[EventAttribute(Type = typeof(PlayerChatEventArgs))]
        public override void HandleMcpeText(McpeText message)
        {
            //base.HandleMcpeText(message);
            Stopwatch watch = new Stopwatch();

            watch.Start();
            if (message.type == (byte)McpeText.ChatTypes.Chat)
            {
                PlayerChatEventArgs chatEvent = new PlayerChatEventArgs(this, message.message, null);
                if (chatEvent.OnCallEvent())
                {
                    //Level.BroadcastMessage(chatEvent.GetMessage());
                    base.HandleMcpeText(message);
                }
            }
            watch.Stop();
            Console.WriteLine(message.GetType() + " в Тиках :" + watch.ElapsedTicks + "\r\n");
            Console.WriteLine(message.GetType() + " в MS :" + watch.ElapsedMilliseconds + "\r\n");
        }
Example #27
0
        private void Callbacks_PlayerChat(object sender, PlayerChatEventArgs e)
        {
            RunCatchLog(() =>
            {
                if (e.IsServerMessage || e.Text.IsNullOrTimmedEmpty())
                {
                    return;
                }

                if (e.IsRegisteredCommand && CheckForReadSettingsCommand(e))
                {
                    return;
                }

                if (e.IsRegisteredCommand)
                {
                    return;
                }

                foreach (string phrase in Phrases)
                {
                    string regexPattern = @"\b" + Regex.Escape(phrase) + @"\b";

                    if (!Regex.IsMatch(e.Text, regexPattern, RegexOptions.Singleline | RegexOptions.IgnoreCase))
                    {
                        continue;
                    }

                    ChatBotAnswer answer = Answers[phrase];

                    if (answer.Wisper)
                    {
                        SendFormattedMessageToLogin(e.Login, string.Format("{0}{1}", Botname, answer.Answer));
                    }
                    else
                    {
                        SendFormattedMessage(string.Format("{0}{1}", Botname, answer.Answer));
                    }

                    break;
                }
            }, "Error in Callbacks_PlayerChat Method.", true);
        }
Example #28
0
        private void Callbacks_PlayerChat(object sender, PlayerChatEventArgs e)
        {
            RunCatchLog(() =>
            {
                if (e.IsServerMessage || e.Text.IsNullOrTimmedEmpty())
                {
                    return;
                }

                if (CheckForTMXInfoCommand(e))
                {
                    return;
                }

                if (CheckForTMXAddTrackCommand(e))
                {
                    return;
                }
            }, "Error in Callbacks_PlayerChat Method.", true);
        }
Example #29
0
        private bool CheckForReadSettingsCommand(PlayerChatEventArgs e)
        {
            if (ServerCommand.Parse(e.Text).Is(Command.ReadChatBotSettings))
            {
                if (!LoginHasRight(e.Login, true, Command.ReadChatBotSettings))
                {
                    return(true);
                }

                if (ReadSettings())
                {
                    SendFormattedMessageToLogin(e.Login, "{[#ServerStyle]}> {[#MessageStyle]}ChatBot-Settings successfully read!");
                }
                else
                {
                    SendFormattedMessageToLogin(e.Login, "{[#ServerStyle]}> {[#ErrorStyle]}Error while reading ChatBot-Settings. See log for detailed error description.");
                }

                return(true);
            }

            return(false);
        }
Example #30
0
        /// <summary>
        /// Called when a chat message is intercepted
        /// </summary>
        /// <param name="args">event arguments passed by hook</param>
        //private void OnChat(ServerChatEventArgs args)
        private void OnChat(PlayerChatEventArgs args)
        {
            // Do not relay game chat to Discord if this option is enabled
            if (Config.SilenceChat)
            {
                return;
            }

            // PlayerHooks.OnPlayerChat() already handles filtering commands and muted players.
            // Do not relay commands or messages from muted players
            //if(args.Text.StartsWith(TShock.Config.CommandSpecifier, StringComparison.InvariantCulture) || args.Text.StartsWith(TShock.Config.CommandSilentSpecifier, StringComparison.InvariantCulture) || TShock.Players[args.Who].mute)
            //  return;

            // Attempt to convert any channel mentions
            //string modifiedMessage = args.Text;
            string modifiedMessage = args.RawText;

            if (Regex.IsMatch(modifiedMessage, @"#.+"))
            {
                modifiedMessage = Util.ConvertChannelMentions(modifiedMessage, discord.Client);
            }

            // Attempt to convert any role/user mentions
            if (Regex.IsMatch(modifiedMessage, @"@.+"))
            {
                modifiedMessage = Util.ConvertRoleUserMentions(modifiedMessage, discord.Client);
            }

            if (Config.LogChat)
            {
                //Util.Log($"{TShock.Players[args.Who].Name} said: {modifiedMessage}", Util.Severity.Info);
                Util.Log($"{args.Player.Name} said: {modifiedMessage}", Util.Severity.Info);
            }
            //discord.Send($"**<{TShock.Players[args.Who].Name}>** {modifiedMessage}");
            discord.Send($"**<{args.Player.Name}>** {modifiedMessage}");
        }
 static void rconClient_PlayerChat(object sender, PlayerChatEventArgs e)
 {
     Log.Info("PlayerChat - Source; " + e.Source + " - Player: " + e.Player.Name + " - Message: " + e.Message);
 }
Example #32
0
 private void Game_OnPlayerChat(object sender, PlayerChatEventArgs e)
 {
     Console.WriteLine("::::chat|" + e.Player.Name + "|" + e.Message);
 }