Posted January 2, 201411 yr As, the title says, i want to know how to display a chat message on enter in a world. Thanks for helping. SOLUTION: Main.class package SackCastellon.core; import cpw.mods.fml.common.FMLCommonHandler; import SackCastellon.core.event.SkcEvent; import SackCastellon.core.proxy.CommonProxy; import SackCastellon.core.reference.Reference; import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.Mod.EventHandler; import cpw.mods.fml.common.Mod.Instance; import cpw.mods.fml.common.SidedProxy; import cpw.mods.fml.common.event.FMLInitializationEvent; import cpw.mods.fml.common.event.FMLPostInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; @Mod(modid=Reference.ID, name=Reference.NAME, version=Reference.VERSION, dependencies=Reference.DEPENDENCIES) public class SKCCore { @Instance(Reference.ID) public static SKCCore instance; @SidedProxy(clientSide=Reference.CLPROXY, serverSide=Reference.CMPROXY) public static CommonProxy proxy; @EventHandler public void preInit(FMLPreInitializationEvent event) { FMLCommonHandler.instance().bus().register(new SkcEvent()); System.out.println("Event Handler Initialized"); } @EventHandler public void load(FMLInitializationEvent event) {} @EventHandler public void postInit(FMLPostInitializationEvent event) {} } Event.class package SackCastellon.core.event; import net.minecraft.util.ChatComponentText; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.gameevent.PlayerEvent.PlayerLoggedInEvent; public class SkcEvent { @SubscribeEvent public void onPlayerLogin(PlayerEvent.PlayerLoggedInEvent event) { event.player.func_146105_b(new ChatComponentText(event.player.getDisplayName() + " is testing chat messages")); } }
January 2, 201411 yr Player.sendChatMessage(...) ? Assuming that method has been deobfuscated yet. 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.
January 3, 201411 yr I'm just updating now. I haven't got a working version yet, simply because of the amount of changes I have to make before I can even run MC. 1.7.2 broke a lot haha. But anyway, You need to Hook into PlayerLoggedInEvent which is in PlayerEvent. Also with chat messages now this is the code for basic, non styled/non translated text. https://gist.github.com/BigDaveNz/8230352 Chatting to a player, command sender and Broadcasting a message to all players is here. (be aware this is untested but "should" work). The EIChatComponent is merely "[EI] " which gets added to all of my chat messages, and is usually styled although I haven't figured out colours/bold etc. for 1.7.2 yet. The difference between stupidity and genius is that genius has its limits. - Albert Einstein
January 3, 201411 yr Author I'm just updating now. I haven't got a working version yet, simply because of the amount of changes I have to make before I can even run MC. 1.7.2 broke a lot haha. But anyway, You need to Hook into PlayerLoggedInEvent which is in PlayerEvent. Also with chat messages now this is the code for basic, non styled/non translated text. https://gist.github.com/BigDaveNz/8230352 Chatting to a player, command sender and Broadcasting a message to all players is here. (be aware this is untested but "should" work). The EIChatComponent is merely "[EI] " which gets added to all of my chat messages, and is usually styled although I haven't figured out colours/bold etc. for 1.7.2 yet. I'm not verry good on Java, so how can i hook it?
January 4, 201411 yr First you need to create a class to put all your @SubscribeEvent (1.7) annotations in. Then you subscribe to the appropriate event. Then you initialise your event handler https://github.com/BigDaveNz/EnchantInsanity/blob/master/common/nz/co/bigdavenz/ei/core/handler/EIEventHandler.java That's my event handler. the Key line that you need to know is line 13 My class that processes the events is here: https://github.com/BigDaveNz/EnchantInsanity/blob/master/common/nz/co/bigdavenz/ei/event/EIEvent.java (note this is 1.6.4) As you can see that is the class that is referenced in line 13 of EIEventHandler.java for 1.7 FML now has annotated events. @SubscribeEvent public static void onPlayerLogin(PlayerEvent.PlayerLoggedInEvent event) { //Do stuff } The difference between stupidity and genius is that genius has its limits. - Albert Einstein
January 4, 201411 yr I like using ChatMessageComponent because you can do things like 'messageComponent.setColor(RED)' - approximate code, and italics and things.
January 4, 201411 yr ChatMessageComponent is 1.6.4, It no longer Exists, theres now 3 components. Translation, Style, and Text. They all are used together to output a result. Since most functions are Obfuscated, styling is the hard bit at the moment. The difference between stupidity and genius is that genius has its limits. - Albert Einstein
January 6, 201411 yr Author First you need to create a class to put all your @SubscribeEvent (1.7) annotations in. Then you subscribe to the appropriate event. Then you initialise your event handler https://github.com/BigDaveNz/EnchantInsanity/blob/master/common/nz/co/bigdavenz/ei/core/handler/EIEventHandler.java That's my event handler. the Key line that you need to know is line 13 My class that processes the events is here: https://github.com/BigDaveNz/EnchantInsanity/blob/master/common/nz/co/bigdavenz/ei/event/EIEvent.java (note this is 1.6.4) As you can see that is the class that is referenced in line 13 of EIEventHandler.java for 1.7 FML now has annotated events. @SubscribeEvent public static void onPlayerLogin(PlayerEvent.PlayerLoggedInEvent event) { //Do stuff } Sorry, I've been busy. I made this code, based on your, but doesn't work: SkcEventHandler.java SkcEvent.java PlayerLoginEvent.java ChatMessageHandler.java And the EventHandler initialized on the Main class: SKCCore.java
January 7, 201411 yr Why so complicated? Just make it like this in your event: @SubscribeEvent public void onPlayerLogin(PlayerEvent.PlayerLoggedInEvent event) { event.player.addChatMessage("Welcome"); LogHelper.info(Reference.ID, event.player.getDisplayName() + " logged In!"); } and by the way the static could be the problem.
January 7, 201411 yr Author Why so complicated? Just make it like this in your event: @SubscribeEvent public void onPlayerLogin(PlayerEvent.PlayerLoggedInEvent event) { event.player.addChatMessage("Welcome"); LogHelper.info(Reference.ID, event.player.getDisplayName() + " logged In!"); } and by the way the static could be the problem. There isn't a .addChatMessage(String); or some similar method in forge 996 (as i've looked for)
January 8, 201411 yr But the EntityPlayer class have it. If not MC have removed it. Thats why i calling it.
January 8, 201411 yr Author But the EntityPlayer class have it. If not MC have removed it. Thats why i calling it. It mean that MC have removed it, because there isn't any method called .addChatMessage(String) even nor any method with only a String
January 8, 201411 yr All chat strings have been moved to IChatComponents. there is still an addChatMessage()... Although it requires a component as the input, rather then a string. I'm currently on holiday at the moment, but I will be back on friday evening. So if you still haven't figured it out by then, I'll test in a 1.7 environment. And see if I can fix it for you. The difference between stupidity and genius is that genius has its limits. - Albert Einstein
January 8, 201411 yr Author All chat strings have been moved to IChatComponents. there is still an addChatMessage()... Although it requires a component as the input, rather then a string. I'm currently on holiday at the moment, but I will be back on friday evening. So if you still haven't figured it out by then, I'll test in a 1.7 environment. And see if I can fix it for you. Ok, thanks
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.