Résolu Event Drops EntityItem
-
Bonjour alors voila je cherche a faire en sorte que quand le joueur drop un item (une golden apple normal) et bien que il se produise quelque chose, mais le problème c’est que je voudrais que cela fonctionne qu’avec la golden apple normal et non l’autre, et c’est là que je n’y arrive pas.
Le code s’execute mais la condition qui check l’entityItem ne prend pas en compte la metedata.@SubscribeEvent public void onItemDrop(ItemTossEvent event) { World world = event.getEntityItem().getEntityWorld(); ItemStack itemGoldApple = new ItemStack(Items.GOLDEN_APPLE, 1, 0); ItemStack itemStack = event.getEntityItem().getEntityItem(); int entityItemPosX = event.getEntityItem().getPosition().getX(); int entityItemPosY = event.getEntityItem().getPosition().getY(); int entityItemPosZ = event.getEntityItem().getPosition().getZ(); BlockPos goldBlockPos = new BlockPos(entityItemPosX, entityItemPosY - 2, entityItemPosZ); if (itemStack == itemGoldApple) { if (world.getBlockState(goldBlockPos).getBlock() == Blocks.GOLD_BLOCK) { // ici il va ce passer quelque chose } } }
-
if(itemStack.getItem() == Items.GOLDEN_APPLE && itemStack.getMetadata() == 0)
-
Je suis vraiment pas doué, j’ai tout essayé sauf ça
Et aussi un autre truc, quand je fait spawn un éclair j’entend le bruit mais je le vois pas
voici l’instructionworld.spawnEntityInWorld(new EntityLightningBolt(world, entityItemPosX, entityItemPosY, entityItemPosZ, true));
-
@‘SpyMan’:
Je suis vraiment pas doué, j’ai tout essayé sauf ça
Et aussi un autre truc, quand je fait spawn un éclair j’entend le bruit mais je le vois pas
voici l’instructionworld.spawnEntityInWorld(new EntityLightningBolt(world, entityItemPosX, entityItemPosY, entityItemPosZ, true));
il me semble que il faut un !world.isremote .
-
Non, si tu met un !world.isRemote il ne se pas plus rien, parce que l’éclair est coté client et server
-
Essaie de le faire spawn uniquement côté client
-
Non plus…
Le truc c’est que je comprend pas vraiment pourquoi ça fait ça -
Okay j’ai fait une recherche et j’ai trouvé.
Le spawn doit tout comme les autres entités se faire uniquement côté serveur. En revanche les éclairs ne doivent pas être spawn à l’aide de World#spawnEntityInWorld, mais plutôt World#addWeatherEffect -
Merci ça fonctionne mieux, en revanche je comprend pas pourquoi quand je fais ça :
int entityItemPosX = event.getEntityItem().getPosition().getX(); int entityItemPosY = event.getEntityItem().getPosition().getY(); int entityItemPosZ = event.getEntityItem().getPosition().getZ();
cela me retourne la position du joueur de non de mon EntityItem
-
Car il renvoie les coordonnées de l’item au moment où il est lancé et au moment où il est lancé par le joueur l’item se trouve aux mêmes coordonnées que le joueur.
-
Ok merci, je comprenais pas pourquoi c’était comme cela