Jump to content

dark2222

Forge Modder
  • Posts

    111
  • Joined

  • Last visited

Converted

  • Gender
    Undisclosed

dark2222's Achievements

Creeper Killer

Creeper Killer (4/8)

4

Reputation

  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
×
×
  • Create New...

Important Information

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