Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class StatSyncMessage implements IMessage {
- private NBTTagCompound tag;
- public StatSyncMessage(){}
- public StatSyncMessage(NBTTagCompound tag) {this.tag = tag;}
- @Override public void fromBytes(ByteBuf buf) {tag = ByteBufUtils.readTag(buf);}
- @Override public void toBytes(ByteBuf buf) {ByteBufUtils.writeTag(buf, tag);}
- public static class StatMessageHandler implements IMessageHandler<StatSyncMessage,IMessage> {
- @Override
- public IMessage onMessage(StatSyncMessage message, MessageContext ctx) {
- final NBTTagCompound tag = message.tag;
- Minecraft.getMinecraft().addScheduledTask(new Callable<Object>() {
- @Override
- public Object call() throws Exception {
- Minecraft mc = Minecraft.getMinecraft();
- WorldClient world = mc.theWorld;
- List<EntityPlayer> players = world.playerEntities;
- for (EntityPlayer player : players) {
- if (tag.getString("name").equals(player.getName())) {
- IFurredPlayer furred = player.getCapability(FurryX.FURRED_PLAYER_CAPABILITY, null);
- furred.deserializeNBT(tag);
- furred.setPlayer(player);
- player.refreshDisplayName();
- break;
- }
- }
- return null;
- }
- });
- return null;
- }
- }
- }
- public class EventHandler {
- @SubscribeEvent
- public void playerLoggedOn(net.minecraftforge.fml.common.gameevent.PlayerEvent.PlayerLoggedInEvent event) {
- EntityPlayer playerA = event.player;
- World world = playerA.worldObj;
- if (!world.isRemote){
- IFurredPlayer furred = playerA.getCapability(FURRED_PLAYER_CAPABILITY, null);
- FXPackerHandler.INSTANCE.sendToAll(new StatSyncMessage(furred.serializeNBT()));
- List<EntityPlayer> players = world.playerEntities;
- for (EntityPlayer playerB : players) {
- IFurredPlayer furredB = playerB.getCapability(FURRED_PLAYER_CAPABILITY, null);
- if (playerA instanceof EntityPlayerMP)
- FXPackerHandler.INSTANCE.sendTo(new StatSyncMessage(furredB.serializeNBT()), (EntityPlayerMP) playerA);
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment