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)
{
}
}