Beispiel #1
0
 public override void GameMessageSentHandler(object sender, TerrariaChatEventArgs msg)
 {
 }
Beispiel #2
0
        public override void GameMessageReceivedHandler(object sender, TerrariaChatEventArgs msg)
        {
            if (errorCounter > 2)
            {
                return;
            }
            try
            {
                string outMsg   = "";
                string bossName = "";

                if (msg.Player.PlayerId == -1 && msg.Message.EndsWith(" has joined."))
                {
                    outMsg = Configuration.PlayerLoggedInFormat;
                }
                else if (msg.Player.PlayerId == -1 && msg.Message.EndsWith(" has left."))
                {
                    outMsg = Configuration.PlayerLoggedOutFormat;
                }
                else if (msg.Player.Name != "Server" && msg.Player.PlayerId != -1)
                {
                    outMsg = Configuration.PlayerChatFormat;
                }
                else if (msg.Player.Name == "Server" && msg.Message.EndsWith(" has awoken!"))
                {
                    outMsg = Configuration.VanillaBossSpawned;
                }
                else if (msg.Player.Name == "Server" && msg.Message == "The server is starting!")
                {
                    outMsg = Configuration.ServerStartingFormat;
                }
                else if (msg.Player.Name == "Server" && msg.Message == "The server is stopping!")
                {
                    outMsg = Configuration.ServerStoppingFormat;
                }
                else if (msg.Player.Name == "Server")
                {
                    outMsg = Configuration.WorldEventFormat;
                }
                else if (msg.Player.Name == "Server" && msg.Message.Contains("A new version of TCR is available!"))
                {
                    outMsg = ":desktop:  **%message%**";
                }
                else
                {
                    outMsg = "%message%";
                }

                if (msg.Player != null)
                {
                    outMsg = outMsg.Replace("%playername%", msg.Player.Name)
                             .Replace("%groupprefix%", msg.Player.GroupPrefix)
                             .Replace("%groupsuffix%", msg.Player.GroupSuffix);
                }

                outMsg = chatParser.RemoveTerrariaColorAndItemCodes(outMsg);

                if (msg.Message.EndsWith(" has awoken!"))
                {
                    bossName = msg.Message.Replace(" has awoken!", "");
                    outMsg   = outMsg.Replace("%bossname%", bossName);
                }

                // Find the Player Name
                if (msg.Player == null && (msg.Message.EndsWith(" has joined.") || msg.Message.EndsWith(" has left.")))
                {
                    string playerName = msg.Message.Replace(" has joined.", "").Replace(" has left.", "");

                    // Suppress empty player name "has left" messages caused by port sniffers
                    if (playerName.IsNullOrEmpty())
                    {
                        // An early return is the easiest way out
                        return;
                    }

                    outMsg = outMsg.Replace("%playername%", playerName);
                }

                outMsg = outMsg.Replace("%worldname%", TerrariaChatRelay.Game.World.GetName());
                outMsg = outMsg.Replace("%message%", msg.Message);

                if (outMsg == "" || outMsg == null)
                {
                    return;
                }

                messageQueue.QueueMessage(Channel_IDs, outMsg);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                errorCounter++;

                if (errorCounter > 2)
                {
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("Discord Client has been terminated. Please reload the mod to issue a reconnect.");
                    Console.ResetColor();
                }
            }
        }
Beispiel #3
0
 public abstract void GameMessageSentHandler(object sender, TerrariaChatEventArgs msg);
 public override void GameMessageReceivedHandler(object sender, TerrariaChatEventArgs e)
 {
     NetMessage.BroadcastChatMessage(NetworkText.FromLiteral(e.Message + " - TestChatClient"), Color.Cyan, -1);
 }
Beispiel #5
0
        public override void GameMessageReceivedHandler(object sender, TerrariaChatEventArgs msg)
        {
            if (errorCounter > 2)
            {
                return;
            }
            try
            {
                string outMsg   = "";
                string bossName = "";

                if (msg.Player == null && msg.Message.EndsWith(" has joined."))
                {
                    outMsg = Configuration.PlayerLoggedInFormat;
                }
                else if (msg.Player == null && msg.Message.EndsWith(" has left."))
                {
                    outMsg = Configuration.PlayerLoggedOutFormat;
                }
                else if (msg.Player != null)
                {
                    outMsg = Configuration.PlayerChatFormat;
                }
                else if (msg.Player == null && msg.Message.EndsWith(" has awoken!"))
                {
                    outMsg = Configuration.VanillaBossSpawned;
                }
                else if (msg.Player == null && msg.Message == "The server is starting!")
                {
                    outMsg = Configuration.ServerStartingFormat;
                }
                else if (msg.Player == null && msg.Message == "The server is stopping!")
                {
                    outMsg = Configuration.ServerStoppingFormat;
                }
                else if (msg.Player == null)
                {
                    outMsg = Configuration.WorldEventFormat;
                }
                else if (msg.Player == null && msg.Message.Contains("A new version of TCR is available!"))
                {
                    outMsg = ":desktop:  **%message%**";
                }
                else
                {
                    outMsg = "%message%";
                }

                if (msg.Player != null)
                {
                    outMsg = outMsg.Replace("%playername%", msg.Player.name);
                }

                if (msg.Message.EndsWith(" has awoken!"))
                {
                    bossName = msg.Message.Replace(" has awoken!", "");
                    outMsg   = outMsg.Replace("%bossname%", bossName);
                }

                if (msg.Player == null && (msg.Message.EndsWith(" has joined.") || msg.Message.EndsWith(" has left.")))
                {
                    string playerName = msg.Message.Replace(" has joined.", "").Replace(" has left.", "");

                    outMsg = outMsg.Replace("%playername%", playerName);
                }

                outMsg = outMsg.Replace("%worldname%", Terraria.Main.worldName);
                outMsg = outMsg.Replace("%message%", msg.Message);

                if (outMsg == "" || outMsg == null)
                {
                    return;
                }

                messageQueue.QueueMessage(Channel_IDs, outMsg);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                errorCounter++;

                if (errorCounter > 2)
                {
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("Discord Client has been terminated. Please reload the mod to issue a reconnect.");
                    Console.ResetColor();
                }
            }
        }