Coding mit Java | Java-basierten APIs

  • Ersteller Ersteller ij9F_i0FaF-d9lrDSDDpDbfo
  • Erstellt am Erstellt am
Status
Für weitere Antworten geschlossen.
Heyhou da ich vor ein paar Tagen mit programmieren gestartet habe, habe ich auch gleich eine Frage.
Ich möchte einem Spieler in der Welt Beispiel speed 10 geben doch wenn der dann wieder in die Welt Lobby geht sollte ihm speed 10 wieder genommen werden kannst du mir bitte helfen?
Mfg
 
Heyhou da ich vor ein paar Tagen mit programmieren gestartet habe, habe ich auch gleich eine Frage.
Ich möchte einem Spieler in der Welt Beispiel speed 10 geben doch wenn der dann wieder in die Welt Lobby geht sollte ihm speed 10 wieder genommen werden kannst du mir bitte helfen?
Mfg
Ist eigendlich ganz einfach.
For (Player player : Bukkit.getOnlinePlayers) {
If (player.getWorld == hier vergleichsobjekt einfügen [in Config gespeichert]){
player.addPotionEffect (new PotionEffectType.Speed(9, 1000000))
// wobei 1000000 die Maximale länge zeigt
}else
Player.removePotionEffect(new PotionEffectType.Speed)
}
Vllt. In eine Schleife (ReapeatingTask) oder In ein Teleport / Move Event

Solltest du einen vollständigen Code brauchen, antworte mir mal.
 
Zuletzt bearbeitet:
Heyhou da ich vor ein paar Tagen mit programmieren gestartet habe, habe ich auch gleich eine Frage.
Ich möchte einem Spieler in der Welt Beispiel speed 10 geben doch wenn der dann wieder in die Welt Lobby geht sollte ihm speed 10 wieder genommen werden kannst du mir bitte helfen?
Mfg
Nimm dazu das PlayerTeleportEvent. Teste ob der Spieler in deiner Beispiel welt ist, speed 10 hat und das ziel die lobbywelt ist. Wenn ja nimm ihm den Effekt speed.
 
If (player.getWorld == Beispiel){
player.addPotionEffect (new PotionEffectType.Speed)
}else {
}
Player.removePotionEffectType.Speed){
}



Könnte das so funkzionieren? (Natürlich noch mit dem Eventhandler)
MfG
 
If (player.getWorld == Beispiel){
player.addPotionEffect (new PotionEffectType.Speed)
}else {
}
Player.removePotionEffectType.Speed){
}



Könnte das so funkzionieren? (Natürlich noch mit dem Eventhandler)
MfG
Bitte schön.
Code:
    @EventHandler
    public void onEvent(PlayerChangedWorldEvent e) {
        Player p = e.getPlayer();
        if(p.getWorld().getName().equals("world")) { // Wichtig: getName() ist wichtig! Das fragt ab, ob er sich in der Welt 'world' befindet
            p.addPotionEffect(new PotionEffect(/*Was für ein Effekt?*/ PotionEffectType.SPEED, /*zeit*/ 23123123, /*Stärke*/ 3)); // Fügt dem Spieler einen Potioneffekt
        } else { // sonst, d.h. was passiert, wenn der Spieler sich nicht in 'world' befindet
            p.removePotionEffect(PotionEffectType.SPEED); // removed den jeweiligen Effekt.
        }
    }
 
Heyhou da ich vor ein paar Tagen mit programmieren gestartet habe, habe ich auch gleich eine Frage.
Ich möchte einem Spieler in der Welt Beispiel speed 10 geben doch wenn der dann wieder in die Welt Lobby geht sollte ihm speed 10 wieder genommen werden kannst du mir bitte helfen?
Mfg
Lern bitte zuerst Java bevor du mit Bukkit anfängst ;)
 
  • Like
Reaktionen: DerTechNick
Hey ich habe noch eine letze Frage nähmlich:
Wenn ich zwei EventHandler machen möchte die genau das gleiche Event ausführe wie muss ich das machen das ich zb. 2mal mit dem Event Playerchangedworldevent 2mal was ausführe zb. Das erste mal speed und beim zweiten mal blindness??????
 
Hey, wie Datenstau es bereits erwähnt hat, solltest du dich vorher mit den Grundlagen von Java auseinandersetzen, bevor du dann mit Bukkit weiter machst. Wir wollen ja nicht dämlich sein ^^ ;)
Wenn du dann die Grundlagen kannst, wird es für uns alle einfacher. Für dich, da du den beschriebenen Code verstehst und für uns ist es weniger Aufwand und brauchen keine simplen EventHandler schreiben.
 
Hey ich habe noch eine letze Frage nähmlich:
Wenn ich zwei EventHandler machen möchte die genau das gleiche Event ausführe wie muss ich das machen das ich zb. 2mal mit dem Event Playerchangedworldevent 2mal was ausführe zb. Das erste mal speed und beim zweiten mal blindness??????

2 gleiche EventHandler?! Wtf...wenn du es so machen willst dass abwechselnd Speed und Blindness als Effekt kommt machst du es am einfachsten so:

Code:
    ArrayList<UUID/*Oder Player je nachdem wie es dir lieber ist*/> spielerListe = new ArrayList<>(); 
    String weltName = "beispielWelt";
 
    @EventHandler
    public void PlayerChangeWorldEvent(PlayerChangedWorldEvent e) {
     
        Player p = e.getPlayer();
     
        if(e.getPlayer().getLocation().getWorld().getName().equals(weltName)) {
         
            if(spielerListe.contains(p.getUniqueId())) {
             
                spielerListe.remove(p.getUniqueId());             
                p.addPotionEffect(new PotionEffect(PotionEffectType.BLINDNESS, Integer.MAX_VALUE, 255));

            } else {
             
                spielerListe.add(p.getUniqueId());             
                p.addPotionEffect(new PotionEffect(PotionEffectType.SPEED, Integer.MAX_VALUE, 255));
            }
        }     
    }

Hoffentlich hab ich dich jetzt richtig verstanden
 
Code:
    @EventHandler
    public void onEvent2(PlayerChangedWorldEvent e) {
        Player p = e.getPlayer();
        if(p.getWorld().getName().equals("world")) { // Wichtig: getName() ist wichtig! Das fragt ab, ob er sich in der Welt 'world' befindet
            p.addPotionEffect(new PotionEffect(/*Was für ein Effekt?*/ PotionEffectType.BLINDNISS, /*zeit*/ 23123123, /*Stärke*/ 3)); // Fügt dem Spieler einen Potioneffekt
        } else { // sonst, d.h. was passiert, wenn der Spieler sich nicht in 'world' befindet
            p.removePotionEffect(PotionEffectType.BLINDNISS); // removed den jeweiligen Effekt.
        }
    }

So:
 
Zuletzt bearbeitet:
Status
Für weitere Antworten geschlossen.

Soziale Medien

  • X
  • TikTok

Über uns

  • GommeHD.net ist einer der größten Minecraft-Server der Welt. Dir gefällt unser Server? Dann unterstütze uns durch einen Kauf im Shop!
  • Shop