Posted January 25, 20187 yr 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 January 26, 20187 yr by Differentiation
January 25, 20187 yr 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
January 25, 20187 yr Author 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")?
January 25, 20187 yr 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. Check out my tutorials here: http://jabelarminecraft.blogspot.com/
January 25, 20187 yr Author 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
January 29, 20187 yr 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.