Jump to content
View in the app

A better way to browse. Learn more.

Forge Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

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

Featured Replies

Posted

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

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

  • 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")?

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/

  • 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 xD

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...

Important Information

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

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.