Posted July 5, 20169 yr im so so so sorry to bother this section so much but it seems that i cant find anything online.... in 1.9.4 whatever i try with sending chat to the player seems to just not send the chat and just dump NullPointerException errors i looked all over the internet and a bit in the code but i didnt find anything.... Doing stuff n' things
July 5, 20169 yr For example: if a player has joined the game and you want it to say something, do this: @SubscribeEvent public void onPlayerJoin(PlayerLoggedInEvent event) { EntityPlayer player = event.player; player.addChatMessage(new TextComponentString("Welcome!")); } and if you want to get the playername in the message: @SubscribeEvent public void onPlayerJoin(PlayerLoggedInEvent event) { EntityPlayer player = event.player; player.addChatMessage(new TextComponentString("Welcome, " + player.getDisplayNameString())); } http://i.imgur.com/J4rrGt6.png[/img]
July 5, 20169 yr Author For example: if a player has joined the game and you want it to say something, do this: @SubscribeEvent public void onPlayerJoin(PlayerLoggedInEvent event) { EntityPlayer player = event.player; player.addChatMessage(new TextComponentString("Welcome!")); } and if you want to get the playername in the message: @SubscribeEvent public void onPlayerJoin(PlayerLoggedInEvent event) { EntityPlayer player = event.player; player.addChatMessage(new TextComponentString("Welcome, " + player.getDisplayNameString())); } the problem here is that im doing it while ingame and i want it to display only for the player using Minecraft.getMinecraft().thePlayer and when i try addChatMessage(new TextComponentString("Welcome, " + player.getDisplayNameString())); it dumps a bunch of errors Doing stuff n' things
July 5, 20169 yr When do you want it to 'say' something in chat? http://i.imgur.com/J4rrGt6.png[/img]
July 5, 20169 yr Author When do you want it to 'say' something in chat? once after my Delay passed and the delay is processed by client tick and system millis Doing stuff n' things
July 5, 20169 yr So if you join a game, once per (for example) 10 seconds? http://i.imgur.com/J4rrGt6.png[/img]
July 5, 20169 yr Author So if you join a game, once per (for example) 10 seconds? i get a spesific chat message and make it reset the delayobject and then in the client tick i make it check if the delay has passed and if it did then chat to Minecraft.getMinecraft().thePlayer and stop the delay Doing stuff n' things
July 5, 20169 yr Author ok lets say this is my class: public class RingsChatHandler { public static Delay Timeout = new Delay(60); public static void Message(String originalMessage){ if (RingsHUD.Enabled) { if ((originalMessage.contains("8|")) && (originalMessage.contains("9Elytra Racing "))) { if (originalMessage.contains("cFailed to reach next ring!")) { // failed RingsHUD.CheckpointTextColor = "COLOR_RED"; Timeout.Reset(); RingsHUD.ActualCheckPointString = S.F+"lFailed"; } if (originalMessage.contains("eYou have passed ring #")) { //ring passed RingsHUD.CheckpointTextColor = "COLOR_ORANGE"; ///-Get Ring Cur/Max int startat = 0; int endat = 0; RingsHUD.ActualCheckPointString = S.F+"l"; for (int i = 1; i < originalMessage.length(); i++) { if(originalMessage.charAt(i) == '(') startat = i + 1; if(originalMessage.charAt(i) == ')') endat = i - 1; } for(int j = startat; j <= endat; j++){ RingsHUD.ActualCheckPointString = RingsHUD.ActualCheckPointString + originalMessage.charAt(j); } } if (originalMessage.contains("aYou have completed the map (")) { /// finished the map RingsHUD.CheckpointTextColor = "COLOR_LGREEN"; RingsHUD.ActualCheckPointString = S.F+"lFinished!"; Timeout.Reset(); } } } } } and i have it checking for chat messages and the gametick class: public class Timeout{ @SubscribeEvent public void onClientTick(TickEvent.ClientTickEvent event) { if(RingsChatHandler.Timeout.Passed()){ S.cP("this is just a test"); RingsChatHandler.Timeout.StopForever // this is just temporery i will fix it after i get chat working } } } annd this is my S.class i made it for short commands.. public class S{ //this class contains short codes to mass use public static Character F = ' '; // this is the section sign, it is set after the you join the server public static void lg(String text){System.out.println(text);} // log to console public static void cP(String text){Reference.PLAYER.addChatMessage(new TextComponentString(text));} // chat to player } and i have this in my Reference class: public static final EntityPlayer PLAYER = Minecraft.getMinecraft().thePlayer; now when i try to use S.cP("just some text") it does not crash but its not working and its producing: java.lang.NullPointerException: Unexpected error at com.SHsuperCM.ElytraMCMod.Common.S.cP(S.java: at com.SHsuperCM.ElytraMCMod.Common.Objects.Timeout.onClientTick(Timeout.java:13) at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_10_Timeout_onClientTick_ClientTickEvent.invoke(.dynamic) at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:49) at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:140) at net.minecraftforge.fml.common.FMLCommonHandler.onPreClientTick(FMLCommonHandler.java:331) at net.minecraft.client.Minecraft.runTick(Minecraft.java:1744) at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1117) at net.minecraft.client.Minecraft.run(Minecraft.java:404) at net.minecraft.client.main.Main.main(Main.java:118) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) at net.minecraft.launchwrapper.Launch.main(Launch.java:28) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97) at GradleStart.main(GradleStart.java:26) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134) and please ignore my horrible code... Doing stuff n' things
July 5, 20169 yr This line: public static final EntityPlayer PLAYER = Minecraft.getMinecraft().thePlayer; Before the player has started a game or joined a server, PLAYER is guaranteed to be null. Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable. If you think this is the case, JUST REPORT ME. Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice. Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked. DO NOT PM ME WITH PROBLEMS. No help will be given.
July 5, 20169 yr Author This line: public static final EntityPlayer PLAYER = Minecraft.getMinecraft().thePlayer; Before the player has started a game or joined a server, PLAYER is guaranteed to be null. so i need it to not be final and set it when the event happend? Doing stuff n' things
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.