Jump to content

dark2222

Forge Modder
  • Posts

    111
  • Joined

  • Last visited

Everything posted by dark2222

  1. think I use it wrong or something for I tried to print it to see what it gave me and it just gives me the key I wrote --EDIT also if I try StatCollector.canTranslate("translation.test.none") it returns false on the key --EDIT omg never mind I just had assets spelled wrong, it works now Thanks
  2. I am just wondering how I could use localization more. I've made an attempt to use it with a configuration file as it stands, but I can't find any doc on localization. So far I've only been able to find localization for creative taps, blocks and items
  3. The NullPointerException where only happening for the second client connected to the server.
  4. thanks it works now but would that not mean that the first player also should return NullPointerException? also where can I find some doc on the IThreadListener? can't hurt to read up on it
  5. I've made a test package to learn IMessage and IMessage handler and it works fine if i play singleplayer and multiplayer but when I try to connect with a second player LAN or server the second player will get a NullPointerException when i try to find the player Here's the package and handler public class TestPacket implements IMessage{ private int test; public TestPacket() {} public TestPacket(int test) { this.test = test; } @Override public void toBytes(ByteBuf buf) { buf.writeInt(test); } @Override public void fromBytes(ByteBuf buf) { test = buf.readInt(); } public static class Handler implements IMessageHandler<TestPacket,IMessage>{ @Override public IMessage onMessage(TestPacket message, MessageContext ctx) { LogHelper.info(message.test); if(ctx.side.isClient()){ EntityPlayer player = (EntityPlayer) Minecraft.getMinecraft().theWorld.getEntityByID(message.test); player.addChatComponentMessage(new ChatComponentText("Awesome!")); } return null; } } } how i make the network channel @Mod.EventHandler public void preInit(FMLPreInitializationEvent event) { ConfigurationHandler.init(event.getSuggestedConfigurationFile()); FMLCommonHandler.instance().bus().register(new ConfigurationHandler()); MinecraftForge.EVENT_BUS.register(new RegisterEvent()); Network = NetworkRegistry.INSTANCE.newSimpleChannel(Reference.NETWORKCHANNEL); Network.registerMessage(TestPacket.Handler.class,TestPacket.class, 0,Side.CLIENT); } The package gets send on PlayerLoggedInEvent @SubscribeEvent public void onEntityJoinWorld(PlayerEvent.PlayerLoggedInEvent event) { BloodCore.get(event.player).SyncWithServer(); } What it calls in my IEEP public void SyncWithServer(){ VampireMain.Network.sendTo(new TestPacket(player.getEntityId()),(EntityPlayerMP) player); } Here's the Log from the second client https://gist.github.com/anonymous/674535f7e4ca01055389
  6. oh.. i thought that the commonProxy got run server and client side, just trying to keep the code clean. Never mind i moved everything from the preinit method back but the client still have the problem of return NullPointerException client log after login to server https://gist.github.com/anonymous/6a67c1f2464f5eeb9e33 method called by package @Override public void syncWithServerHandler(int currentBlood,int level,int type) { EntityPlayer player = Minecraft.getMinecraft().thePlayer; BloodCore bloodCore = BloodCore.get(player); bloodCore.setCurrentBlood(currentBlood); bloodCore.setVampireLevel(level); bloodCore.setVampireType(type); } current preInit @Mod.EventHandler public void preInit(FMLPreInitializationEvent event) { network = NetworkRegistry.INSTANCE.newSimpleChannel(Referance.MODID); network.registerMessage(syncWithServer.Handler.class, syncWithServer.class, 0, Side.CLIENT); VampireRegister.registerVampire(new BloodVampire()); ConfigurationHandler.init(ConfigFile); FMLCommonHandler.instance().bus().register(new ConfigurationHandler()); } the event that starts it all @SubscribeEvent public void onEntityJoinWorld(EntityJoinWorldEvent event){ if (!event.entity.worldObj.isRemote && event.entity instanceof EntityPlayer) { BloodCore.get((EntityPlayer) event.entity).syncWithServer(); } } the syncWithServer method public void syncWithServer() { if(!player.worldObj.isRemote) vampiric.network.sendTo(new syncWithServer(this.CurrentBlood,this.VampireLevel,this.VampireType,this.player.getDisplayName().getUnformattedText()),(EntityPlayerMP) player); } can it be a 1.8 forge bug?
  7. i register the IEEP in EntityConstruction event @SubscribeEvent public void handleConstruction(EntityEvent.EntityConstructing event) { if (event.entity instanceof EntityPlayer && BloodCore.get((EntityPlayer) event.entity) == null) { BloodCore.register((EntityPlayer) event.entity); } } and it calls this method public static void register(EntityPlayer player) { player.registerExtendedProperties(BloodCore.PROP_NAME, new BloodCore(player)); } and my eventHandler are registered by my commonProxy public void preInit(){ ConfigurationHandler.init(ConfigFile); FMLCommonHandler.instance().bus().register(new ConfigurationHandler()); } @Mod.EventHandler public void preInit(FMLPreInitializationEvent event) { network = NetworkRegistry.INSTANCE.newSimpleChannel(Referance.MODID); network.registerMessage(syncWithServer.Handler.class, syncWithServer.class,0, Side.CLIENT); proxy.preInit(); proxy.registerVampires(); }
  8. ok... but why does it return null (nullExeption) when i then try to use it with my IExtendedEntity... then? this is what the onMessage calls @Override public void syncWithServerHandler(int currentBlood,int level,int type) { EntityPlayer player = Minecraft.getMinecraft().thePlayer; BloodCore bloodCore = BloodCore.get(player); <----- NullPointerException here when trying to connect to server bloodCore.setCurrentBlood(currentBlood); bloodCore.setVampireLevel(level); bloodCore.setVampireType(type); } the Bloodcore.get method looks like this public static BloodCore get(EntityPlayer player) {return (BloodCore) player.getExtendedProperties(PROP_NAME);}
  9. idea says EntityPlayerSP for me http://puu.sh/dyqxM/78a96e7327.png
  10. ah, ok didn't think i should register it there but there are sometimes java just confuses me --EDIT Minecraft.getMinecraft.thePlayer still returns null --EDIT ok if i make it print to console it does not return null then it return EntityPlayerSP witch is a bit problematic for my get method in a IExtendedEntity... only accepts EntityPlayer and if i try to convert it to a EntityPlayer EntityPlayer player = (EntityPlayer) Minecraft.getMinecraft.thePlayer; idea says (EntityPlayer) are not in use/necessary.
  11. I've read a lot of java but I'm still not sure what delegate means or does I've try'ed to register the packet in mine @SidedPoxy (ClientProxy) but that made Minecraft.getMinecraft.thePlayer return an nullExpection
  12. I've try'ed using Minecraft.getMinecraft().thePlayer and makes the server crash https://gist.github.com/anonymous/e531a46eeb7ba5b27804
  13. i'm trying to sync some numbers from server to client but i need to now the player before i can set the numbers public static class Handler implements IMessageHandler<syncWithServer,IMessage> { @Override public IMessage onMessage(syncWithServer message, MessageContext ctx) { EntityPlayer player = ctx.getServerHandler().playerEntity.worldObj.getPlayerEntityByName(message.player); BloodCore bloodCore = BloodCore.get(player); bloodCore.setCurrentBlood(message.currentBlood); bloodCore.setVampireLevel(message.level); bloodCore.setVampireType(message.type); return null; } } with this as the code i get this error message https://gist.github.com/anonymous/e497758f2a16710a720d when this happens the client does not crash it just say a fatal error has occured, this connection is terminated. I've also try'ed to get the player client side (the handler is client sided) but when i do that the server crashes on startup this is how i register the packets and made the network channel (yes it is in preinit) network = NetworkRegistry.INSTANCE.newSimpleChannel(Referance.MODID); network.registerMessage(syncWithServer.Handler.class, syncWithServer.class,0, Side.CLIENT); my packet class itself public class syncWithServer implements IMessage{ int currentBlood,level,type; String player; public syncWithServer() {} public syncWithServer(int currentBlood,int level,int type, String player) { this.currentBlood = currentBlood; this.level = level; this.type = type; this.player = player; } @Override public void toBytes(ByteBuf buf) { buf.writeInt(currentBlood); buf.writeInt(level); buf.writeInt(type); ByteBufUtils.writeUTF8String(buf,player); } @Override public void fromBytes(ByteBuf buf) { this.currentBlood = buf.readInt(); this.level = buf.readInt(); this.type = buf.readInt(); } public static class Handler implements IMessageHandler<syncWithServer,IMessage> { @Override public IMessage onMessage(syncWithServer message, MessageContext ctx) { EntityPlayer player = ctx.getServerHandler().playerEntity.worldObj.getPlayerEntityByName(message.player); BloodCore bloodCore = BloodCore.get(player); bloodCore.setCurrentBlood(message.currentBlood); bloodCore.setVampireLevel(message.level); bloodCore.setVampireType(message.type); return null; } } }
  14. i try'ed that and only one of the 3 apis i wan't to use worked what i want to use is ae2, buildcraft, thaumcraft 4 the weird part is that for those apis that don't work (the way the tutorial says how to do) i can't see the classes but the folders are there http://puu.sh/atLSI/397da42ea8.PNG
  15. i'm trying to make a mod where i would like to use stuff from other mods like buildcrafts energy but there are some stuff that are stopping me from using apis 1. i don't now where to put/how to install an api (some come in an jar and other zip) i tryed to add it as an lib (i'm using intellij) but an'y the buildcraft api would work there 2. i have no clue and can't find any documentation on how to detect if the mod is install once out if the dev workspace 3. this is almost as number 2, i don't now how to detect items from other mods (if i want to use it in crafting)
  16. Not sure what you mean by this. I think all Java interfaces are public by definition. The extended properties loadNBTData() and saveNBTData() classes are public. The vampire class is your own custom entity class, right? In that case, even if you had private information in that class you can create public "getter" and "setter" methods for any information that is available in the class. yea sorry where tired when wrote that but what i mean where a person would need to register the vampire with a public static void method yes the vampire class is my own class that extends IExtendedEntityProperties and all my methods i use the the vampire is in there and before any other class can use it i need to define what player it is with BloodMain props = BloodMain.get(player); when i do that all methods in my vampire class become available for that class if you now a way around this feel free to tell me and i got a github so that you can look at the code (it will change al ot when i get the interface implemented) https://github.com/henrikse55/Vampiric-Craft
  17. 1) i'm trying to make a interface where you need to register it because i can't make methods in a IExtendedEntityProperties public 2) i use IDEA
  18. i'm trying to do this outside minecraft right now so i can get a understanding of that but how do you register the class? it keep saying [class] cannot be resolved to a variable
  19. is it possible to get the class from the list the the registry made? i will not now all the classes that implements the interface.
  20. i tried that and i got 2 problems that i run into 1. i have no clue how the register function should work 2. i can't seem to find a way to get the information from the implementing class ex class a is my interface, b is my other file if i make b implement a and i got method string in my interface and make that string return "test"; in file b i can't get what the string is without breaking something
  21. hi everyone this may be a newbie question i'm working on a vampire mod where you can be different kind of vampires (3 for now) and my friends keep saying other kind of vampires that they would see so i though that if i could make an API. but i have no clue on how to do that. I have searched for maybe 4 weeks now and cannot find any tut's or srcs
  22. thanks that works a hole lot better then the other code
  23. hi. is there a way to efficient check what blocks there around the player? i'm trying to make so i update crops around the player right now and i made it work but it breaks about every time i think i'm done and start on something else. i check a 5x5 area right now but i wan't to make it *x*x* (* = changeable in config) (here the code i use now https://gist.github.com/henrikse55/c7a33c0154ba146eb2cb) if theres a more effective way to do so please tell me because i can't find anything about this.
×
×
  • Create New...

Important Information

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