20 déc. 2020, 15:46

Bonjour,
je veux faire spawn une entité avec un keybind et pour ce faire j’utiliser un packet (ENCORE)
Malheureusement, l’entité n’est pas summon.
Merci de votre aide ^^

public class KeybindHandler
{
    KeyBinding[] keyBindings = ClientProxy.keyBindings;

    @SubscribeEvent
    public void onKeyInput(KeyInputEvent e)
    {
        Minecraft mc = Minecraft.getMinecraft();
        EntityPlayer player = Minecraft.getMinecraft().player;

        if(keyBindings[0].isPressed() && player.getHeldItem(EnumHand.MAIN_HAND).getItem() == ItemInit.THOR_HAMMER)
        {
            RayTraceResult rayTraceResult = player.rayTrace(15, mc.getRenderPartialTicks());

            BlockPos pos = rayTraceResult.getBlockPos();

            // System.out.println(pos.getX() + " " + pos.getY() + " " + pos.getZ() + " ");

            Main.network.sendToServer(new SyncThunder(pos.getX(), pos.getY(), pos.getZ()));
        }
    }
}

public class SyncThunder implements IMessage
{
    private int x, y, z;

    public SyncThunder(int _x, int _y, int _z)
    {
        this.x = _x;
        this.y = _y + 1;
        this.z = _z;
    }

    public SyncThunder()
    {}

    public static class Handler implements IMessageHandler<SyncThunder, IMessage>
    {

        @Override
        public IMessage onMessage(SyncThunder message, MessageContext ctx)
        {
            EntityPlayerMP serverPlayer = ctx.getServerHandler().player;

            WorldServer worldServer = serverPlayer.getServerWorld();
            worldServer.addScheduledTask(() ->
            {
                serverPlayer.world.spawnEntity(new EntityBabyEarthDragon(serverPlayer.world, (double)message.x, (double)message.y, (double)message.z));
            });
            return null;
        }

        public static EntityPlayer getPlayer(MessageContext context)
        {
            return Main.proxy.getPlayer(context);
        }
    }

    @Override
    public void fromBytes(ByteBuf buf)
    {

    }

    @Override
    public void toBytes(ByteBuf buf)
    {

    }

}