Frontear Posted October 28, 2018 Posted October 28, 2018 Example: If I type `Ping`, I want the mod to respond with `Pong`. I've already figured I can use `ClientChatRecievedEvent` to be able to see when the user sends a message, but this doesn't exactly return favourable results. `event.message` doesn't have the option to simply return just the text, effectively, instead of returning "Ping", it'll return either "<PlayerName> Ping" or "<> Ping". I want only "Ping", and another problem arises. Servers often format text messages to display a users rank. That will change the expected format of `event.message.getFormatted (or unformatted whatever)` text and would require a different method of handling. Additionally, I don't want the users message to make it to the server. Basically, it needs to be a client side message with a client side response. tl;dr is there any way I can get a message typed by the player in chat, make sure it doesn't get published to server or public chat, and issue a client sided response? Quote I am a human and this action was performed manually. Please contact Frontear if you have any questions or concerns.
V0idWa1k3r Posted October 28, 2018 Posted October 28, 2018 So do you want to detect when the client player types a message, respond to it and stop it from reaching the server? Forge has an event for that - ClientChatEvent. You can cancel it and then it won't be sent. It however won't add it to the chat either so you would have to do that yourself with GuiNewChat#addToSentMessages. You can get the GuiNewChat instance from GuiIngame#getChatGUI and you can get a GuiIngame instance with Minecraft.ingameGUI. 1 Quote
Frontear Posted October 28, 2018 Author Posted October 28, 2018 2 minutes ago, V0idWa1k3r said: So do you want to detect when the client player types a message, respond to it and stop it from reaching the server? Forge has an event for that - ClientChatEvent. You can cancel it and then it won't be sent. It however won't add it to the chat either so you would have to do that yourself with GuiNewChat#addToSentMessages. You can get the GuiNewChat instance from GuiIngame#getChatGUI and you can get a GuiIngame instance with Minecraft.ingameGUI. "You can cancel it and then it won't be sent". I assume you mean the text message the player sends won't be added to chat, correct? If so, great. Quote I am a human and this action was performed manually. Please contact Frontear if you have any questions or concerns.
V0idWa1k3r Posted October 28, 2018 Posted October 28, 2018 8 minutes ago, Frontear said: I assume you mean the text message the player sends won't be added to chat, correct? It will neither be sent to the server nor appear in the client's local chat. These are different things. When the client hits enter to send a message it first gets added to it's local client's chat - it is not yet visible to any other player on the server but is visible to the client who is sending it. It then gets sent to the server which sends it to every other player for them to see if needed. I don't know whether you want the client who typed the message to see it, which is why I've included an explanation as to how to add it to the local client's chat. Again, you can add anything you want to that chat and only the client that you are doing it with will see those messages, not anyone else. 1 Quote
Frontear Posted October 28, 2018 Author Posted October 28, 2018 2 minutes ago, V0idWa1k3r said: It will neither be sent to the server nor appear in the client's local chat. These are different things. When the client hits enter to send a message it first gets added to it's local client's chat - it is not yet visible to any other player on the server but is visible to the client who is sending it. It then gets sent to the server which sends it to every other player for them to see if needed. I don't know whether you want the client who typed the message to see it, which is why I've included an explanation as to how to add it to the local client's chat. Again, you can add anything you want to that chat and only the client that you are doing it with will see those messages, not anyone else. Just checked for such an event. It does not exist. Probably should've mentioned im using 1.10 Forge, but I dont see any ClientChatEvent at all. What would be an alternative plan? Quote I am a human and this action was performed manually. Please contact Frontear if you have any questions or concerns.
V0idWa1k3r Posted October 28, 2018 Posted October 28, 2018 13 minutes ago, Frontear said: Probably should've mentioned im using 1.10 Forge, but I dont see any ClientChatEvent at all. What would be an alternative plan? Update to the modern version of minecraft of course. Quote
Frontear Posted October 28, 2018 Author Posted October 28, 2018 Just now, diesieben07 said: ClientChatEvent was added in Build 1.11.2-13.20.0.2269. Update to 1.12.2. Is there no alternatives? Quote I am a human and this action was performed manually. Please contact Frontear if you have any questions or concerns.
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.