• 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!

Spigot Abfrage funktioniert nur teilsweise.

Shoqrii

Redstoneengineer
Registriert
16 Juni 2018
Beiträge
46
Diamanten
301
Minecraft
Shoqrii
Hallo,

Die Arraylist Abfrage funktioniert grundlegend, und der Cooldown ist gegeben. Halte ich aber Rechtsklick gedrückt funktioniert es nach ca. 3 Schüssen nicht mehr. Warum?

Java:
public class Pistol_USP implements Listener {
    
    private ArrayList<Player> cd = new ArrayList<>();
    
    @EventHandler
    public void onInteract(PlayerInteractEvent e) {
        Player p = e.getPlayer();
        
        if(e.getAction() == Action.RIGHT_CLICK_AIR || e.getAction() == Action.RIGHT_CLICK_BLOCK) {
            if(p.getItemInHand().getType() == Material.WOOD_HOE) {
                if(!cd.contains(p)) {
                Gun(p);
                
                } else {
                    Bukkit.getScheduler().scheduleSyncDelayedTask(Main.getPlugin(), new Runnable() {
                        
                        @Override
                        public void run() {
                            
                            cd.remove(p);
                            
                        }
                    }, 18*1);
                }
            }
        }
        
    }
    
    private void Gun(Player p) {
        Arrow ar = p.launchProjectile(Arrow.class);
        
        if(!cd.contains(p)) {
        ar.setShooter(p);
        ar.setVelocity(p.getLocation().getDirection().multiply(2));
        cd.add(p);
        
        }
    }
    
}
 

ES-Henne

Redstoneengineer
Registriert
3 Oktober 2017
Beiträge
41
Diamanten
0
1. Klare Variablennamen
2. Methodennamen im lowerCamelCase
3. Klare Informationen
- Was willst du machen
- Was funktioniert
- Was funktioniert nicht
4. Ordentliche Fehlerbeschreibung
- "Geht nicht" ist keine Fehlerbeschreibung

So nebenbei, wenn ich mich richtig erinnere, dann wird das Event nur beim klicken, oder beim wechsel zu einem anderem Block getriggert. Bedeutet, dass der Code nur einmal ausgeführt wird. Keine Ahnung was du meinst mit ca. drei mal soll es funktionieren.

Du startest den Cooldown erst, wenn der Spieler die Aktion ein zweites mal ausführen möchte. Bedeutet, selbst wenn er zehn Sekunden wartet, dann darf er die Aktion nicht ausführen.
 

Shoqrii

Redstoneengineer
Registriert
16 Juni 2018
Beiträge
46
Diamanten
301
Minecraft
Shoqrii
1. Klare Variablennamen
2. Methodennamen im lowerCamelCase
3. Klare Informationen
- Was willst du machen
- Was funktioniert
- Was funktioniert nicht
4. Ordentliche Fehlerbeschreibung
- "Geht nicht" ist keine Fehlerbeschreibung

So nebenbei, wenn ich mich richtig erinnere, dann wird das Event nur beim klicken, oder beim wechsel zu einem anderem Block getriggert. Bedeutet, dass der Code nur einmal ausgeführt wird. Keine Ahnung was du meinst mit ca. drei mal soll es funktionieren.

Du startest den Cooldown erst, wenn der Spieler die Aktion ein zweites mal ausführen möchte. Bedeutet, selbst wenn er zehn Sekunden wartet, dann darf er die Aktion nicht ausführen.
Grundlegend funktioniert es ja. Nur manchmal ignoriert er den Cooldown.
 
Oben