Jump to content

Intercepting player sent message


Person1689

Recommended Posts

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!

Link to comment
Share on other sites

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();
    }
}

 

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.