Doublejumps

Wenn ihr bei eurem Plugin nicht weiter kommt, könnt ihr hier euer Problem beschreiben und um Hilfe bitten.

Doublejumps

Beitragvon SaynexHD » So 2. Apr 2017, 11:30

Hey,

Ich habe ein Plugin programmiert bei dem man sich Doublejumps kaufen kann.
Mein Problem ist:
Wenn der Spieler keine Doublejumps mehr hat, aber trotzdem versucht zu Doublejumpen wird er ein kleines Stück in die Luft geworfen.
Das ist zwar nicht schlimm, aber sieht finde ich nicht gut aus :D

Ich weiß, es fehlt bestimmt nur eine Abfrage oder so, aber ich komme nicht drauf.

Code: Alles auswählen
  1.    @EventHandler
  2.    public void onDoublejump(PlayerToggleFlightEvent e) {
  3.       
  4.       Player p = (Player)e.getPlayer();
  5.       
  6.       File file = new File("plugins/KnockOut", "DoubleJumps.yml");
  7.       FileConfiguration cfg = YamlConfiguration.loadConfiguration(file);
  8.       
  9.       int jumps = cfg.getInt(p + ".Doublejumps");
  10.          
  11.       if(e.getPlayer().getWorld().getName().equals(Config.getWorld())) {
  12.          
  13.          if(jumps != 0) {
  14.       
  15.       e.getPlayer().setAllowFlight(false);
  16.       e.getPlayer().setFlying(false);
  17.         
  18.       e.setCancelled(true);
  19.       e.getPlayer().setVelocity(e.getPlayer().getLocation().getDirection().setY(1));
  20.       
  21.       DoubleManager.jump.put(e.getPlayer(), DoubleManager.jump.get(e.getPlayer()) - 1);
  22.       
  23.       DoubleManager.loadStatsFromHashMapIntoConfig(e.getPlayer());
  24.       
  25.        e.getPlayer().sendMessage(ko.pr + "Du kannst noch §c" + DoubleManager.jump.get(p) + "-Mal §7Doublejumpen!");
  26.       
  27.          }else{
  28.             
  29.          
  30.               
  31.             e.setCancelled(true);
  32.             p.setFlying(false);
  33.             
  34.          }
  35.       }
  36.       
  37.    }


Ich hoffe ihr könnt mir helfen! :D
Benutzeravatar
SaynexHD
 
Beiträge: 7
Registriert: Mo 27. Mär 2017, 18:08

Re: Doublejumps

Beitragvon crysis992 » Do 6. Apr 2017, 15:59

Einfach p.setAllowFlight(false) sobald der Spieler keine DoubleJumps mehr übrig hat, also nach dem letzten Jump nochmal die Velocity setzen und danach einfach setAllowFlight auf false setzen, dann dürfte für den Spieler das ToggleFlightEvent nicht mehr aufgerufen werden und kommt der (neben)effekt auch nicht mehr.
Benutzeravatar
crysis992
 
Beiträge: 148
Registriert: So 16. Jun 2013, 11:48

Re: Doublejumps

Beitragvon SaynexHD » Fr 7. Apr 2017, 16:58

Leider geht das nicht :/
Benutzeravatar
SaynexHD
 
Beiträge: 7
Registriert: Mo 27. Mär 2017, 18:08

Re: Doublejumps

Beitragvon Knadda » Fr 7. Apr 2017, 18:04

Bist du dir sicher dass diese Zeile so richtig ist???
Code: Alles auswählen
  1.    @EventHandler
  2.    public void onDoublejump(PlayerToggleFlightEvent e) {
  3.      
  4.       Player p = (Player)e.getPlayer();
  5.      
  6.       File file = new File("plugins/KnockOut", "DoubleJumps.yml");
  7.       FileConfiguration cfg = YamlConfiguration.loadConfiguration(file);
  8.      
  9.       int jumps = cfg.getInt(p + ".Doublejumps");                    <=============  p + ".Doublejumps"    und nicht p.getUniqueId() + ".Doublejumps"
  10.          
  11.       if(e.getPlayer().getWorld().getName().equals(Config.getWorld())) {
  12.          
  13.          if(jumps != 0) {
  14.      
  15.       e.getPlayer().setAllowFlight(false);
  16.       e.getPlayer().setFlying(false);
  17.        
  18.       e.setCancelled(true);
  19.       e.getPlayer().setVelocity(e.getPlayer().getLocation().getDirection().setY(1));
  20.      
  21.       DoubleManager.jump.put(e.getPlayer(), DoubleManager.jump.get(e.getPlayer()) - 1);
  22.      
  23.       DoubleManager.loadStatsFromHashMapIntoConfig(e.getPlayer());
  24.      
  25.        e.getPlayer().sendMessage(ko.pr + "Du kannst noch §c" + DoubleManager.jump.get(p) + "-Mal §7Doublejumpen!");
  26.      
  27.          }else{
  28.            
  29.          
  30.              
  31.             e.setCancelled(true);
  32.             p.setFlying(false);
  33.            
  34.          }
  35.       }
  36.      
  37.    }
Benutzeravatar
Knadda
 
Beiträge: 49
Registriert: Mo 1. Aug 2016, 07:06

Re: Doublejumps

Beitragvon SaynexHD » Sa 8. Apr 2017, 12:05

Ja, ist richtig. Mit UUID's mache ich es wenn der Doublejump "gefixt" ist :)
Benutzeravatar
SaynexHD
 
Beiträge: 7
Registriert: Mo 27. Mär 2017, 18:08


Zurück zu Hilfe und Support

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 5 Gäste