Plugin  Résolu Problème avec le setCancelled

Discussion dans 'Support serveur et plugins' créé par MainPixel, 12 Août 2018.

Statut de la discussion:
N'est pas ouverte pour d'autres réponses.
  1. MainPixel

    MainPixel Nouveau

    Inscrit:
    22 Juillet 2018
    Messages:
    4
    J'aime reçus:
    0
    Bonjour,
    j'ai développé un plugin de Menu dans lequel, en cliquant sur un item, on est tp dans un autre monde, pour que le joueur ne puisse pas retirer l'item, j'ai mis dans le code event.setCancelled(true), en jeux tout fonctionne mais en dehors du menu quand je veux déplacer un item dans mon inventaire, je ne peux pas, je sais que sa vient du setCancelled mais si je l'enlève rien ne fonctionne, l'inventaire du plugin s'ouvre mais quand je clique sur l'item, il s'enlève mais je ne suis pas tp.
    des idées ? J'ai essayé de mettre le setCancelled dans le gui directement en enregistrant la class avec l'EventManager évidement mais sa fonctionne pas non plus
     
  2. Alex Fatta

    Alex Fatta Commandant de la Flotte et de la Horde

    Inscrit:
    13 Août 2014
    Messages:
    1 270
    J'aime reçus:
    169
    Bonjour !

    Je pense que la façon dont le plugin a été fait fait ne prends pas en compte que l'item soit dans ton menu ou non. C'est à dire que dans tous les cas, ton setCancelled sera pris en compte. pour contrer ce problème, tu dois vérifier si oui ou non le joueur est dans le menu ou non, avec un booléen par exemple ;)

    AlexFatta
     
  3. MainPixel

    MainPixel Nouveau

    Inscrit:
    22 Juillet 2018
    Messages:
    4
    J'aime reçus:
    0
    Oui je vois, qu'est ce que je dois mettre comme code alors ? (Je suis débutant :/ )
     
  4. ShE3py

    ShE3py Développeur en autodidacte

    Inscrit:
    26 Septembre 2015
    Messages:
    954
    J'aime reçus:
    157
    Si tu utilise les évènements de l'inventaire proposent une méthode getInventory(), qui renvois l'inventaire où l'action a été effectuée. Tu peut comparer cet inventaire avec ton inventaire custom, via son nom notamment.
    Un truc comme :
    Code:
    if(!e.getInventory().getName().equals("foo"))
    Après je te renvois sur la documentation qui est très complète.

    Cordialement,
    ShE3py.
     
    #4 ShE3py, 12 Août 2018
    Dernière édition: 13 Août 2018
  5. MainPixel

    MainPixel Nouveau

    Inscrit:
    22 Juillet 2018
    Messages:
    4
    J'aime reçus:
    0
    C'est bon, problème réglé !
    Voilà mon code: if(inv.getName().equals("Menu")){
    event.setCancelled(true);
    Reste du code
    }

    Et j'avais mis le setCancelled avant le if c'était donc pour ça, merci pour votre aide ! :)
     
  6. Ruster_

    Ruster_ Poseur de cobblestone

    Inscrit:
    24 Avril 2017
    Messages:
    48
    J'aime reçus:
    1
    J'ai eu exactement le même problème sauf que mon event.setCancelled(true); est bien à sa place. Voici mon code, aidez moi s'il vous plait. Merci beaucoup.

    @EventHandler
    public void onPlayerClick(InventoryClickEvent event) {
    Inventory inv = event.getInventory();
    Player player = (Player) event.getWhoClicked();
    ItemStack current = event.getCurrentItem();

    Location lobby = new Location(player.getWorld(), 0.5, 6.2, 0.5, 180f, 0f);
    Location gunarea = new Location(player.getWorld(), 200.5, 6.2, 0.5, 180f, 0f);

    if(current == null) {
    return;
    }

    if(inv.getName().equalsIgnoreCase("§bMenu")) {
    event.setCancelled(true);
    player.closeInventory();

    switch(current.getType()) {

    case FIREWORK_CHARGE:
    player.teleport(gunarea);
    break;

    case BED:
    player.teleport(lobby);
    break;

    default:
    break;
    }
    }
     
  7. Alex Fatta

    Alex Fatta Commandant de la Flotte et de la Horde

    Inscrit:
    13 Août 2014
    Messages:
    1 270
    J'aime reçus:
    169
    Bonjour !

    Ce poste date d'août. Je t'invite à créer ton propre poste qui nous explique clairement ton problème. En attendant, un modérateur va venir lock ce topic.

    AlexFatta
     
Statut de la discussion:
N'est pas ouverte pour d'autres réponses.

Partager cette page