123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- package me.km.networking;
- import io.netty.buffer.ByteBuf;
- import java.nio.charset.StandardCharsets;
- import me.km.entities.EntityHuman;
- import me.km.entities.HumanSkinLoader;
- import net.minecraft.client.Minecraft;
- import net.minecraft.entity.Entity;
- import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
- import net.minecraftforge.fml.common.network.simpleimpl.IMessageHandler;
- import net.minecraftforge.fml.common.network.simpleimpl.MessageContext;
- public class HumanUpdate implements IMessage
- {
- private int humanId;
- private String name;
-
- public HumanUpdate()
- {
- humanId = -1;
- name = null;
- }
-
- public HumanUpdate(EntityHuman h)
- {
- humanId = h.getEntityId();
- name = h.getSkinName();
- }
-
- @Override
- public void fromBytes(ByteBuf buf)
- {
- humanId = buf.readInt();
- int length = buf.readInt();
- name = buf.readBytes(length).toString(StandardCharsets.UTF_8);
- }
- @Override
- public void toBytes(ByteBuf buf)
- {
- buf.writeInt(humanId);
- byte[] b = name.getBytes(StandardCharsets.UTF_8);
- buf.writeInt(b.length);
- buf.writeBytes(b);
- }
- public static class Handler implements IMessageHandler<HumanUpdate, IMessage>
- {
- @Override
- public IMessage onMessage(HumanUpdate message, MessageContext ctx)
- {
- Entity ent = Minecraft.getMinecraft().world.getEntityByID(message.humanId);
- if(ent == null || ent.getClass() != EntityHuman.class)
- {
- return null;
- }
- EntityHuman h = (EntityHuman) ent;
- h.setSkinName(message.name);
- h.setTexture(HumanSkinLoader.INSTANCE.getTexture(message.name, loc -> h.setTexture(loc)));
- return null;
- }
- }
- }
|