Jump to content

[1.12.2] [SOLVED] Getting player by String in ClientChatRecievedEvent?


Recommended Posts

Posted (edited)

Hey!

So in ClientChatRecievedEvent, once a player name is present in a received message, is there any way to get the EntityPlayer instance from the player name String?

Is there any way to get the EntityPlayer instance in ClientChatRecievedEvent at all? Should I use a different Event?

Any suggestions are welcome.

Thank you!

Edited by Differentiation
Posted

Not sure what you are planning on doing with this event but its possible. This event is client side so you can just call "Minecraft.getMinecraft().player" to get the client side player (EntityPlayerSP) and if for some reason you need it on the server side you can always just use "ServerChatEvent " or even send a packet to the server with the players username to lookup via UserNameCache and get the EntityPlayer MP via "FMLCommonHandler.instance ().getMinecraftServerInstance ().getPlayerList ().getPlayerByUUID ()"

 

PS: Sorry about the formatting

- Wurmatron

Posted
14 minutes ago, Wurmatron said:

Minecraft.getMinecraft().player

This will crash me on a Dedicated Server.

14 minutes ago, Wurmatron said:

FMLCommonHandler.instance ().getMinecraftServerInstance ().getPlayerList ().getPlayerByUUID ()

Is there a way to get the UUID from the String of the player's name (e.g. "Differentiation" would give "6c12d8f3233c44d3baf0cf32e9f089dd")?

Posted
5 hours ago, Differentiation said:

This will crash me on a Dedicated Server.

 

In a case where code is in a class that doesn't have @SideOnly annotation, you're right that you it is best to only reference classes that are known to be loaded. However, in this case if you're on the client it is probably best to use the Minecraft method to get the player. So this is a case where you can use your proxy. In your client proxy create a method called getPlayer() that returns the Minecraft.getMinecraft().player and in the server proxy create a method with same name that returns null. To be doubly sure, in the event you can also check if the world is remote. Anyway, using the proxy will ensure that the whatever side you're on, the method called only references classes that exist on that side.

  • Like 1

Check out my tutorials here: http://jabelarminecraft.blogspot.com/

Posted
5 hours ago, jabelar said:

In a case where code is in a class that doesn't have @SideOnly annotation, you're right that you it is best to only reference classes that are known to be loaded. However, in this case if you're on the client it is probably best to use the Minecraft method to get the player. So this is a case where you can use your proxy. In your client proxy create a method called getPlayer() that returns the Minecraft.getMinecraft().player and in the server proxy create a method with same name that returns null. To be doubly sure, in the event you can also check if the world is remote. Anyway, using the proxy will ensure that the whatever side you're on, the method called only references classes that exist on that side.

I already had that method in the proxies, I just forgot it's there to my disposal xD

Posted
On 2018/1/25 at 11:01 AM, Differentiation said:

This will crash me on a Dedicated Server.

He said

 

On 2018/1/25 at 10:45 AM, Wurmatron said:

This event is client side so you can just call "Minecraft.getMinecraft().player"

understand?

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.