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;
    }
    }
    

  • Administrateurs

    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


  • Administrateurs

    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() + " " + "");


  • Administrateurs

    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


  • Administrateurs

    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


  • Administrateurs

    tick, 20 tick = 1 sec.


Log in to reply