Plugin Résolu Java : plugin de freeze

Alex Fatta

Commandant de la Flotte et de la Horde
13 Août 2014
1 391
1
191
187
Bonjour !

J'ai essayé quelque chose de nouveau et ça ne fonctionne pas non plus. J'ai même enlevé tout ce qui relève de l'arraylist ou de hashmap. et même ça ne marche pas. J'ai aussi essayé ceci :
PHP:
public class main extends JavaPlugin implements Listener{
    
    public HashMap<Player, Location> frozenPlayerAndLocation = new HashMap<Player, Location>();
    Location loc;

public void OnPlayerMoveEvent(PlayerMoveEvent event){
        Player player = event.getPlayer();
        if(frozenPlayerAndLocation.containsKey(player)){
            event.setCancelled(true);
            player.teleport(loc);
            player.sendMessage("§cTu es freeze !");
        }
    }

private boolean freeze(Player newFreezePlayer, Player player) {
        boolean resultat = false;
        
        if(!frozenPlayerAndLocation.containsKey(newFreezePlayer)){
            newFreezePlayer.setWalkSpeed(0);
            frozenPlayerAndLocation.put(newFreezePlayer, newFreezePlayer.getLocation());
            newFreezePlayer.sendMessage("§cTu as été freeze par " + Bukkit.getName());
            loc = newFreezePlayer.getLocation();
            resultat = true;
        }
        return resultat;
    }

J'ai essayé ça sur les 2 codes (celui de @Detobel36 et le mien) et cela ne fonctionne pas. J'ai aussi essayé avec le event.setCancelled(true); en plus du player.teleport(loc); et cela ne fonctionne pas. J'ai même essayé en enlevant le Hashmap et ce qui s'y rapporte et ça ne fonctionne toujours pas. Si quelqu'un a une proposition je prend ^^ sinon je pense que je vais tout reprendre depuis le début histoire de voir ce qui deconne parce que là y'a un sacré soucis xD

AlexFatta
 

DiscowZombie

Développeur
Staff
Modérateur
Support
2 Mars 2017
2 659
1
931
298
Alsace
www.discowzombie.fr
Bonjour !

J'ai essayé quelque chose de nouveau et ça ne fonctionne pas non plus. J'ai même enlevé tout ce qui relève de l'arraylist ou de hashmap. et même ça ne marche pas. J'ai aussi essayé ceci :
PHP:
public class main extends JavaPlugin implements Listener{
   
    public HashMap<Player, Location> frozenPlayerAndLocation = new HashMap<Player, Location>();
    Location loc;

public void OnPlayerMoveEvent(PlayerMoveEvent event){
        Player player = event.getPlayer();
        if(frozenPlayerAndLocation.containsKey(player)){
            event.setCancelled(true);
            player.teleport(loc);
            player.sendMessage("§cTu es freeze !");
        }
    }

private boolean freeze(Player newFreezePlayer, Player player) {
        boolean resultat = false;
       
        if(!frozenPlayerAndLocation.containsKey(newFreezePlayer)){
            newFreezePlayer.setWalkSpeed(0);
            frozenPlayerAndLocation.put(newFreezePlayer, newFreezePlayer.getLocation());
            newFreezePlayer.sendMessage("§cTu as été freeze par " + Bukkit.getName());
            loc = newFreezePlayer.getLocation();
            resultat = true;
        }
        return resultat;
    }

J'ai essayé ça sur les 2 codes (celui de @Detobel36 et le mien) et cela ne fonctionne pas. J'ai aussi essayé avec le event.setCancelled(true); en plus du player.teleport(loc); et cela ne fonctionne pas. J'ai même essayé en enlevant le Hashmap et ce qui s'y rapporte et ça ne fonctionne toujours pas. Si quelqu'un a une proposition je prend ^^ sinon je pense que je vais tout reprendre depuis le début histoire de voir ce qui deconne parce que là y'a un sacré soucis xD

AlexFatta
Salut,

tu as essayé de mettre un debug pour ton événement. Exemple: quand le joueur saute, tu le téléport + tu lui envoies un message genre "debeug"?
Malheureusement je ne peut pas plus t'aider étant donné que je n'ai pas mon ordinateur :(

Dsl...
 

Alex Fatta

Commandant de la Flotte et de la Horde
13 Août 2014
1 391
1
191
187
Bien le bonjour !

Dieu existe ! Merci Benoit 16 ! Alors j'ai modifié 2 choses et non d'un hmar, ca fonctionne !

J'ai modifié :
Code:
Player po = Bukkit.getPlayer(args[0]);
Par :
Code:
Player po = Bukkit.getServer().getPlayer(args[0]);

Et pour le MoveEvent j'ai mis ça :
Code:
    @EventHandler
    public void onPlayerMove(PlayerMoveEvent e){
        Player p = e.getPlayer();
        if(frozen.contains(p)){
            e.setTo(e.getFrom());
            p.sendMessage(prefix + ChatColor.RED + "Tu es freeze !");
        }

Sans oublier le eventhandler sinon ça ne marche pas je ne sais pas pourquoi :/ .

Enfin voilà ! Merci à tous en tout cas et à la prochaine ! :D

AlexFatta
 
  • J'aime
Reactions: DiscowZombie

DiscowZombie

Développeur
Staff
Modérateur
Support
2 Mars 2017
2 659
1
931
298
Alsace
www.discowzombie.fr
Bien le bonjour !

Dieu existe ! Merci Benoit 16 ! Alors j'ai modifié 2 choses et non d'un hmar, ca fonctionne !

J'ai modifié :
Code:
Player po = Bukkit.getPlayer(args[0]);
Par :
Code:
Player po = Bukkit.getServer().getPlayer(args[0]);

Et pour le MoveEvent j'ai mis ça :
Code:
    @EventHandler
    public void onPlayerMove(PlayerMoveEvent e){
        Player p = e.getPlayer();
        if(frozen.contains(p)){
            e.setTo(e.getFrom());
            p.sendMessage(prefix + ChatColor.RED + "Tu es freeze !");
        }

Sans oublier le eventhandler sinon ça ne marche pas je ne sais pas pourquoi :/ .

Enfin voilà ! Merci à tous en tout cas et à la prochaine ! :D

AlexFatta
Heureux de l'apprendre,

Bonne continuation à toi,
Mathéo.