Posted March 2, 20196 yr So, I am coding a mod for servers. I want to be able to intercept a players message before it's sent. For example, if I were to send "Hey, Everybody" the code would intercept, figure out what the message reads and decide whether it should be sent or not... Or alter what is sent. Thanks for the help!
March 2, 20196 yr if your making a server you should try the sponge api. there is a text api that would let you do this. this is the LINK. there is a ton of other plugin to use for server management too. there is an example using sponge api . public class TextManager implements MessageChannel { @Override public Optional<Text> transformMessage(Object sender, MessageReceiver recipient, Text original, ChatType type) { Text text = original; if(text.toPlainSingle().contains("POOP")) { text = Text.of(text.toPlainSingle().replace("POOP", "P@#$")); } text = Text.of(); return Optional.of(text); } @Override public Collection<MessageReceiver> getMembers() { return Collections.emptyList(); } }
March 3, 20196 yr There's no need to use Sponge for this, you can use ClientChatEvent (on the client) or ServerChatEvent (on the server) to intercept and change/cancel chat messages. Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.
March 3, 20196 yr Author Yeah, I'm using onServerChat but I can't tell who sent the message. I want to handle the message if another player sent it, but not send it if the client sent it. onClientChat only works in singleplayer, so I'm not sure, how to tell who sent what message.
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.