Posted December 11, 20177 yr Hello, this is a really simple problem. when I use ClientChatReceivedEvent my chat completely stops working, I can type but nothing shows up. all I'm trying to do is play a sound when the server says something eg: Zillex_ was killed by etc. thanks for your answers Edited December 11, 20177 yr by Zillex_
December 11, 20177 yr Author 35 minutes ago, Differentiation said: Please post your code. Spoiler package *****; import cerni.proxy.CommonProxy; import ibxm.Player; import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import net.minecraftforge.client.event.ClientChatReceivedEvent; import net.minecraftforge.client.event.RenderGameOverlayEvent.Chat; import net.minecraftforge.client.event.sound.SoundEvent; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.event.ServerChatEvent; import net.minecraftforge.event.entity.living.LivingDeathEvent; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.Mod.EventHandler; import net.minecraftforge.fml.common.Mod.Instance; import net.minecraftforge.fml.common.SidedProxy; import net.minecraftforge.fml.common.event.FMLInitializationEvent; import net.minecraftforge.fml.common.event.FMLPostInitializationEvent; import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; @Mod(modid = Main.MOD_ID, name = Main.NAME, version = Main.VERSION) public class Main { public static final String MOD_ID = "zillexcm"; public static final String NAME = "*****"; public static final String VERSION = "0.1"; public String msg; @Instance public static Main instance; @SidedProxy(clientSide = Reference.CLIENT_PROXY_CLASS, serverSide = Reference.SERVER_PROXY_CLASS) public static CommonProxy proxy; @Mod.EventHandler public void init(FMLInitializationEvent event) { MinecraftForge.EVENT_BUS.register(this); } @SubscribeEvent public void onChatReceived(ClientChatReceivedEvent event) { if(msg.contains("Zillex_ was killed by")) { Minecraft.getMinecraft().thePlayer.playSound("zillexcm:sounds.jigglypuff1", 5.0F, 1.0F); } if(event.message.contains("Zillex_ fell into the void")) { Minecraft.getMinecraft().thePlayer.playSound("zillexcm:sounds.jigglypuff2", 5.0F, 1.0F); } if(event.message.contains("Zillex_ was thrown into the void")) { Minecraft.getMinecraft().thePlayer.playSound("zillexcm:sounds.jigglypuff3", 5.0F, 1.0F); } if(event.message.contains("fell from a high place")) { Minecraft.getMinecraft().thePlayer.playSound("zillexcm:sounds.jigglypuff4", 5.0F, 1.0F); } } } Edited December 11, 20177 yr by Zillex_
December 12, 20177 yr Using ClientChatReceivedEvent is probably the reason it isn't working, and I don't know why it was the first event you thought of to detect player deaths, but there's the LivingDeathEvent you can use to detect entity deaths (for players: event.getEntityLiving() instanceof EntityPlayer). Don't PM me with questions. They will be ignored! Make a thread on the appropriate board for support. 1.12 -> 1.13 primer by williewillus. 1.7.10 and older versions of Minecraft are no longer supported due to it's age! Update to the latest version for support. http://www.howoldisminecraft1710.today/
December 12, 20177 yr Author 1 hour ago, larsgerrits said: Using ClientChatReceivedEvent is probably the reason it isn't working, and I don't know why it was the first event you thought of to detect player deaths, but there's the LivingDeathEvent you can use to detect entity deaths (for players: event.getEntityLiving() instanceof EntityPlayer). I'd rather not use that because I'm making the mod for a specific person who wants it to only play when they die and not for others
December 12, 20177 yr 4 hours ago, Zillex_ said: I'd rather not use that because I'm making the mod for a specific person who wants it to only play when they die and not for others Then just check for his/her username when you're processing the event. Check out my tutorials here: http://jabelarminecraft.blogspot.com/
December 12, 20177 yr 4 hours ago, Zillex_ said: I'd rather not use that because I'm making the mod for a specific person who wants it to only play when they die and not for others You can also check which player died by checking their UUID. Just now, jabelar said: Then just check for his/her username when you're processing the event. Usernames can change, it's best to compare UUIDs instead as they're constant and unique. Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.
December 12, 20177 yr Author 5 hours ago, Choonster said: You can also check which player died by checking their UUID. Usernames can change, it's best to compare UUIDs instead as they're constant and unique. But how will i know his uuid? or even mine for that matter Edited December 12, 20177 yr by Zillex_
December 12, 20177 yr Author 1 hour ago, diesieben07 said: https://mcuuid.net/ this plays when not checking the uuid but when it checks it the sound doesn't play, any suggestions? code: Spoiler @SubscribeEvent public void onDeath(LivingDeathEvent event) { if(event.entity instanceof EntityPlayer) { if(!event.entity.isEntityAlive()) { if(event.entity.getUniqueID().equals("74a1dcea-1946-45a9-a373-5f1b211f4d07")) { Minecraft.getMinecraft().thePlayer.playSound("zillexcm:sounds.jigglypuff", 5.0F, 1.0F); }
December 12, 20177 yr Author 1 hour ago, diesieben07 said: getUniqueID returns a UUID, it will never be equal to a String. Your IDE should warn you about this. Either it doesn't (get a proper IDE or configure it properly) or you ignored that warning (why?). Also why are you bumping after 2 hours? sorry for the bump, and yes I accidentally ignored the warning woops. but what do I do, you didn't give me a fix?
December 12, 20177 yr Author 32 minutes ago, diesieben07 said: If you know basic Java you should know how to fix this. this still doesn't help me, i know basic java, I have made plugins for servers before. This is my first week with the forge api, so will you help? or just give me more elusive statements
December 12, 20177 yr Author 5 minutes ago, diesieben07 said: This has nothing to do with the Forge API. Two objects of different types (java.util.UUID and java.lang.String, both not from the Forge API) will never be equal to each other. You have to use the same type for both, in this case java.util.UUID is appropriate, since you are comparing UUIDs. okay but how do I compare the uuids with the forge api the only function compareTo(UUID) which says it takes in a byte but as you mentioned I can't get a byte to a UUID or can I? I'm not fluent in the forge api so what do I pass inside the compareTo(UUID) a byte or a UUID?
December 12, 20177 yr someUuid == otherUuid 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.
December 12, 20177 yr Author 4 minutes ago, Draco18s said: someUuid == otherUuid thanks but its late and I understand nothing so I did this: if(event.entity.getUniqueID().compareTo(74a1dcea-1946-45a9-a373-5f1b211f4d07 == 74a1dcea-1946-45a9-a373-5f1b211f4d07)) ik I'm doing something wrong but only worked with uuids a few times
December 12, 20177 yr Author 7 minutes ago, diesieben07 said: but you said you are not a Java beginner. not what I meant, I am a beginner but usually know what I'm doing but I thought, hey lets go on the forums for help instead of taking a couple hours to figure it out on my own, but all you're giving me is the same statement in different ways
December 12, 20177 yr Author 1 minute ago, diesieben07 said: equals. You need to call equals. Seriously, you could not figure that out from my responses? "if(event.entity.getUniqueID().equals(74a1dcea-1946-45a9-a373-5f1b211f4d07))" gives an error so I tried something else
December 12, 20177 yr Author did you even read this: "but I thought, hey lets go on the forums for help instead of taking a couple hours to figure it out on my own"
December 12, 20177 yr Author 3 minutes ago, diesieben07 said: Did you even read this (emphasis added)? UUID uid = UUID.fromString("74a1dcea-1946-45a9-a373-5f1b211f4d07"); if(event.entity.getUniqueID().equals(uid)) { not even going to ask you for help even if its incorrect Edited December 12, 20177 yr by Zillex_
December 15, 20177 yr On 12/12/2017 at 6:06 PM, diesieben07 said: Tada, you win 100 points and a free flower emoji: ? Can I have some of those flowers too?
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.