• Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

DoubleJump - Wie cooldown Programmieren?

JavaOxygen

Minecrafter
Registriert
22 Oktober 2017
Beiträge
7
Alter
22
Diamanten
250
Minecraft
JavaCode_
Ich möchte gerne einen cooldown in meinen Doublejump einbauen, wie mache ich das nun am besten?

Code:

public class DoubleJump implements Listener {

private int seconds = 16;

@SuppressWarnings("deprecation")
@EventHandler
public void onMove(PlayerMoveEvent e) {
final Player p = e.getPlayer();
if(!p.isOnGround())
return;
p.setAllowFlight(true);

}

@EventHandler
public void onDoubleJump(PlayerToggleFlightEvent e) {
final Player p = e.getPlayer();
if(p.hasPermission("system.djump")) {
if(!e.isFlying())
return;
if(p.getGameMode() == GameMode.CREATIVE)
return;
e.setCancelled(true);
p.setAllowFlight(false);
Vector v = p.getLocation().getDirection().multiply(1.8).setY(1.8);
p.setVelocity(v);
p.playSound(p.getLocation(), Sound.ENDERMAN_HIT, 1, 1);
p.setFallDistance(-500);


} else {
e.setCancelled(true);
}
Bukkit.getScheduler().scheduleSyncRepeatingTask(Main.getPlugin(), new Runnable() {

@Override
public void run() {


seconds--;

if(seconds == 18) p.sendMessage(Main.prefix + " §4Du wirst gleich ");

}

}, 0, 360);
}

}
 

JavaOxygen

Minecrafter
Registriert
22 Oktober 2017
Beiträge
7
Alter
22
Diamanten
250
Minecraft
JavaCode_
Code:
public class DoubleJump implements Listener {

private int seconds = 16;

@SuppressWarnings("deprecation")
@EventHandler
public void onMove(PlayerMoveEvent e) {
final Player p = e.getPlayer();
if(!p.isOnGround())
return;
p.setAllowFlight(true);

}

@EventHandler
public void onDoubleJump(PlayerToggleFlightEvent e) {
final Player p = e.getPlayer();
if(p.hasPermission("system.djump")) {
if(!e.isFlying())
return;
if(p.getGameMode() == GameMode.CREATIVE)
return;
e.setCancelled(true);
p.setAllowFlight(false);
Vector v = p.getLocation().getDirection().multiply(1.8).setY(1.8);
p.setVelocity(v);
p.playSound(p.getLocation(), Sound.ENDERMAN_HIT, 1, 1);
p.setFallDistance(-500);


} else {
e.setCancelled(true);
}
Bukkit.getScheduler().scheduleSyncRepeatingTask(Main.getPlugin(), new Runnable() {

@Override
public void run() {


seconds--;

if(seconds == 18) p.sendMessage(Main.prefix + " §4Du wirst gleich ");

}

}, 0, 360);
}

}
 

petomka

Redstoneengineer
Registriert
8 Oktober 2012
Beiträge
41
Alter
26
Diamanten
322
Da du offensichtlich nicht verstanden hast, was @Baba43 mit den CODE-Tags gemeint hat, werde ich es dir freundlicherweise erläutern:
Die CODE-Tags sind dazu da, dass der Code formatiert und mit Einrückungen lesbar gemacht wird, und nicht so ein unlesbarer wirrwar ensteht, wie in deinem ersten Post. Hier mal ein Beispiel wie das auszusehen hätte:
Java:
public class WhatTheHeckAmIDoing {
  String iHaveNoIdea;
  String[] justDoWhatHeSaid;
 
  public static void main(String[] args) {
    System.out.println("Please fix my problems for me");
  }
  //Man kann sogar Syntax-Highlighting aktivieren! Dazu einfach die gewünschte Programmiersprache im öffnenden [code] Tag angeben:
  //[code="Java"]
}

Einfach nur [ code ] Tags um deinen Originaltext zu zimmern hilft da also nix. Alternativ kann man auch auf die Büroklammer im Texteditor eines neuen Beitrags klicken und den Code da reinpasten.
Als ganz ausgefallene Alternative kann man den Code auch auf hastebin oder pastebin posten und den Link zu entsprechenden Dateien hier einfügen.

Um einen Cooldown zu implementieren kannst du - z.B. in einer Map - abspeichern, zu welchem Zeitpunkt ein Spieler den Doublejump genutzt hat. Sobald er diesen wieder benutzt, vergleichst du die gespeicherte Zeit mit der aktuellen, und sollte die Differenz größer sein als dein gewünschter Cooldown, so lässt du die Aktion zu, andernfalls eben nicht.
 
Oben