Posted April 21, 20178 yr Hi ! I'm creating a mod that needs to check if certains players are online on a bungee network (of minecraft of course). To do that, I thought about the tab completion when we start the name of a player it is suggested with online players. I did some researchs and found that it's managed with a packet. I'm sending it with: Minecraft.getMinecraft().getNetHandler().addToSendQueue(new C14PacketTabComplete("/test ")); But I don't know how to retrieve the packet with the list of player names that the server send me back. In others words, how can I check when the client receive a specific vanilla packet ? I found that I would have to change the NetworkHandler but I don't really understand how... If anyone know how to do that, it would be really nice. Have a nice day. Edited April 21, 20178 yr by MrTigreroux Line break
April 21, 20178 yr Author 18 minutes ago, diesieben07 said: As you can see in NetHandlerPlayClient::handleTabComplete, the tab completion response is passed to the currently active GUI. Why can't you use the data you see in the online-player box visible when you press the tab key? Because I want all players connected on the bungee network and not only who that are on "my" server.
April 22, 20178 yr Author Searching into the code of Minecraft, I found that GuiChat class has a foundPlayerNames list but it is private. Therefore, I searched for reflection method to access it but I still get a java.lang.NoSuchFieldException Here one try of getting this list: getDeclaredField(Minecraft.getMinecraft().currentScreen, "foundPlayerNames") With method: public static Object getDeclaredField(Object object, String field) { try { Field f = object.getClass().getDeclaredField(field); f.setAccessible(true); return f.get(object); } catch (Exception ex) { ex.printStackTrace(); return null; } } Thanks in advance if anyone know why I get this error.
April 22, 20178 yr Author It is because I don't close the chat and I made an event to tell me when a new GuiScreen is opened.
April 22, 20178 yr Author I'm using a command to get this list. First I write "/ping " then I press TAB to show me the tab completion list. After that, I try to get the private list of GuiChat but it throw me an exception. If I closed the chat before getting this list, the GuiChat would be reset and I don't know how I could get him by the way.
April 22, 20178 yr Author Yes but I don't know how to intercept the response, so I'm trying to get it when it is processed and saved in GuiChat.
April 22, 20178 yr Author Yes I understood but keep not knowing how to. Do you know any open source project that did it please ?
April 22, 20178 yr Wouldn't throwing around events for received events be something for Forge to be able to do?
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.