Ejemplo n.º 1
0
        private void OnGameUpdate(object sender, HandledEventArgs e)
        {
            if (!Main.hasFocus)
            {
                return;
            }

            Main.chatRelease = false;

            // Don't misinterpret key presses in menus.
            if (Main.gameMenu || Main.editChest || Main.editSign)
            {
                return;
            }

            if (Main.oldKeyState != Main.keyState)
            {
                PlayerHooks.InvokeKeysPressed(Main.keyState.GetPressedKeys().ToList());
            }

            if (IsKeyTapped(Keys.Enter) && !IsAltDown)
            {
                if (!IsChatOpen)
                {
                    Main.drawingPlayerChat = true;
                    IsChatOpen             = true;
                    SoundEngine.PlaySound(10);
                }
                else
                {
                    var chatText = Main.chatText;
                    if (chatText.StartsWith(Config.CommandPrefix) && !chatText.StartsWith(Config.CommandPrefix + Config.CommandPrefix))
                    {
                        try
                        {
                            CommandManager.Commands.HandleCommand(chatText);
                        }
                        catch (FormatException ex)
                        {
                            Utils.ShowErrorMessage(ex.Message);
                        }
                        catch (Exception ex)
                        {
                            Utils.ShowErrorMessage("An exception occurred. Check the log for more details.");
                            Log.Error($"An exception occurred while running the command '{chatText}':");
                            Log.Error(ex);
                        }
                    }
                    else if (!string.IsNullOrEmpty(chatText))
                    {
                        if (chatText.StartsWith(Config.CommandPrefix))
                        {
                            chatText = chatText.Substring(1);
                        }

                        if (Main.netMode == 0)
                        {
                            Main.NewText($"<{Utils.LocalPlayer.name}> {chatText}");
                        }
                        else
                        {
                            ChatHelper.SendChatMessageFromClient(new ChatMessage(chatText));
                        }
                    }

                    Main.chatText          = "";
                    IsChatOpen             = false;
                    Main.drawingPlayerChat = false;
                    SoundEngine.PlaySound(11);
                }
            }
            else if (IsKeyTapped(Keys.Escape))
            {
                if (IsChatOpen)
                {
                    Main.drawingPlayerChat = false;
                    IsChatOpen             = false;
                    Main.chatText          = "";
                    SoundEngine.PlaySound(11);
                }
            }
        }