Posted July 11, 20169 yr The line where I sync the code (in the 1st code excerpt below) it returns a null error. Attach Event: @SubscribeEvent public void attachCapabilities(AttachCapabilitiesEvent.Entity e) { net.minecraft.entity.Entity et = e.getEntity(); if(!et.worldObj.isRemote && et instanceof EntityPlayer) { e.addCapability(new ResourceLocation(Scalae.MODID, "IScalaeCapability"), new ICapabilitySerializable<NBTTagCompound>() { IScalaeCapability instance = Scalae.CAPABILITY.getDefaultInstance(); @Override public boolean hasCapability(Capability<?> capability, EnumFacing facing) { return capability == Scalae.CAPABILITY; } @Override public <T> T getCapability(Capability<T> capability, EnumFacing facing) { return capability == Scalae.CAPABILITY ? Scalae.CAPABILITY.<T> cast(instance) : null; } @Override public NBTTagCompound serializeNBT() { return (NBTTagCompound) Scalae.CAPABILITY.getStorage().writeNBT(Scalae.CAPABILITY, instance, null); } @Override public void deserializeNBT(NBTTagCompound nbt) { Scalae.CAPABILITY.getStorage().readNBT(Scalae.CAPABILITY, instance, null, nbt); } }); ScalaeCapabilities.getStats((EntityPlayerMP) et).sync(); } } Here's the get method: public static PlayerStats getStats(EntityPlayer p) { if(!p.worldObj.isRemote) { final IScalaeCapability cap = p.getCapability(Scalae.CAPABILITY, null); if(cap != null) { return cap.getStats().setPlayer(p); } } return null; } And the sync method: public void sync() { //Located in PlayerStats.class, has a player field if(player != null) { Scalae.network.sendTo(new MessageSync(this), (EntityPlayerMP) player); } } I have a message class that can be sent from the client to the server for a request to sync data, but I can't find a good event to place it in client-side. Kain
July 11, 20169 yr AttachCapabilitiesEvent.Entity is fired directly after EntityConstructingEvent which bascially means - there is NOTHING to sync (example: entity can be constructed with "new", but that doesn't mean it is spawned to world or has its equivalent on client). Syncing should happen from EntityJoinedWorldEvent. (Attach event is ONLY for attaching, not getting/modifying/syncing). 1.7.10 is no longer supported by forge, you are on your own.
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.