Résolu Pb de timer
-
comment faire pour que quand je clique droit sur mon item la commande /home la commande s’efectue 30 tick plus tard
public class arceus extends Item { private int shootTimer; public arceus(int par1) { super(par1); this.setCreativeTab(pixelmain.pixelcarte); this.setMaxStackSize(1); } public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { if(player.capabilities.isCreativeMode || player.inventory.hasItem(pixelmain.arceus.itemID)) { if(shootTimer == 0) { ICommandManager icommandmanager = MinecraftServer.getServer().getCommandManager(); icommandmanager.executeCommand(player, "/home"); shootTimer = 2; } } return stack; } }
-
public class arceus extends Item { private int timer; public arceus(int par1) { super(par1); this.setCreativeTab(pixelmain.pixelcarte); this.setMaxStackSize(1); } public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { if(player.capabilities.isCreativeMode || player.inventory.hasItem(pixelmain.arceus.itemID)) { if(timer == 0) { ICommandManager icommandmanager = MinecraftServer.getServer().getCommandManager(); icommandmanager.executeCommand(player, "/home"); timer = 40; } } return stack; } public void onUpdate(ItemStack stack, World world, Entity entity, int id, boolean isCurrent) { if(timer > 0) { timer –; } } }
-
il me fai la commande instantanement au lieu de me a faire au bout du temp defini
et il me dit do not have this permission
-
ha, j’avais mal compris.
public class arceus extends Item { private int timer; public arceus(int par1) { super(par1); this.setCreativeTab(pixelmain.pixelcarte); this.setMaxStackSize(1); } public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { timer = 30; return stack; } public void onUpdate(ItemStack stack, World world, Entity entity, int id, boolean isCurrent) { if(timer > -1 && entity instanceof EntityPlayer) { timer –; ((EntityPlayer)entity).addChatMessage("Temps avant le tp : " + String.valueOf(timer)); } if(timer == 0 && entity instanceof EntityPlayer) { ICommandManager icommandmanager = MinecraftServer.getServer().getCommandManager(); icommandmanager.executeCommand((EntityPlayer)entity, "/home"); } } }
Pour le permission deny, c’est un problème du côté de tes perm (il faut que tu tests sur ton serveur avec essential, en solo ça ne fonctionnera pas).
-
je me disai aussi mai esque je doit leur autoriser la perm pour la commande car je voudrai kil puisse l’utiliser uniquement avec cette item ou sa pasera avec quelque reglage et si tu pouvais me dire la diff entre le code actuelle et celui ci
ICommandManager icommandmanager = MinecraftServer.getServer().getCommandManager();
icommandmanager.executeCommand(FakePlayerFactory.getMinecraft(world), “/home” + " " + “” + " " + player.getEntityName() + " " + “”);
-
J’aurai plutôt mit :
ICommandManager icommandmanager = MinecraftServer.getServer().getCommandManager(); icommandmanager.executeCommand(FakePlayerFactory.getMinecraft(world), "/sudo" + " " + entity.getEntityName() + " " + "home");
-
je rajoute
par1ItemStack.stackSize –;
return par1ItemStack;
pour quil se retire de l’inventaire mai sa marche pa quesque je doit mettre a la place -
public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { timer = 30; stack.stackSize –; return stack; }
Comme ça.
-
merci beaucoup sa marche nickel t genial par contre le temp du timer et en seconde ou en tick et si il et en tick combien de tick font une seconde
-
tick, 20 tick = 1 sec.