Bukkit Plugin: Variable damit das Plugin nur in einer bestimmten Welt funktioniert

Dieses Thema im Forum "Programmierung" wurde erstellt von TheFantasticFightMC, 3. November 2013.

  1. TheFantasticFightMC
    Offline

    TheFantasticFightMC

    Registriert seit:
    30. Oktober 2013
    Beiträge:
    5
    Hallo liebe Community ich möchte gerne wissen wie ich das in meinem Plugin so schreiben kann das es z.B. nur in der Welt Arenas funktioniert bei diesem einfach Plugin hat man wenn man dem Server betritt die Speedpotion und dass in allen Welten :( Ich glaube meine Frage ist ziemlich leicht zu beantworten xD (Ich bin noch ein Anfänger^^)

    LG
     
    #1
  2. Gawain
    Offline

    Gawain

    Registriert seit:
    5. Januar 2012
    Beiträge:
    34
    So wie ich das verstehe willst du beim Joinen auf den Server die Speedpotion vergeben?

    --> In diesem Fall einfach das JoinEvent nehmen und folgende Zeile hinzufügen:

    event.getPlayer().addPotionEffect(new PotionEffect(PotionEffectType.SPEED, Integer.MAX_VALUE, 2));

    Damit würdest du dem Spieler unendlich lang Speed II geben.
    Hoffe das ich dir helfen konnte, ansonsten kannst du dich gerne bei mir melden.

    Mit freundlichen Grüßen
    Gawain
     
    #2
  3. TheFantasticFightMC
    Offline

    TheFantasticFightMC

    Registriert seit:
    30. Oktober 2013
    Beiträge:
    5
    Das habe ich schon ich möchte es aber so machen das es nur in bestimmten Welten geht^^
     
    #3
  4. iRaphi
    Offline

    iRaphi

    Registriert seit:
    4. August 2012
    Beiträge:
    1
    Code (Text):
    1. if(p.getWorld().getName().equalsIgnoreCase("name")){
    2.  
    3.          //Effekt
    4.  
    5.         }
     
    #4
  5. Crafter6432
    Offline

    Crafter6432

    Registriert seit:
    22. Dezember 2011
    Beiträge:
    686
    Code (Text):
    1.  
    2. if(event.getPlayer().getLocation.getWorld().getName() == "arenaWelt"){
    3.  event.getPlayer().addPotionEffect(new PotionEffect(PotionEffectType.SPEED, Integer.MAX_VALUE, 2));
    4. }
    5.  
     
    #5
  6. TheFantasticFightMC
    Offline

    TheFantasticFightMC

    Registriert seit:
    30. Oktober 2013
    Beiträge:
    5
    Danke für die Hilfe aber ich habe immernoch einen Error ich hänge mal ein Bild an^^ Sry falls ich nerve :D Help.png
     
    #6
  7. games6471
    Online

    games6471

    "getLocation" ist auch kein Feld, sondern eine Methode.

    Code (Text):
    1. getLocation[COLOR="#FF0000"]()[/COLOR]
     
    #7
  8. TheFantasticFightMC
    Offline

    TheFantasticFightMC

    Registriert seit:
    30. Oktober 2013
    Beiträge:
    5
    Habs jetzt geändert aber ist geht trotzdem noch nicht ._.
     
    #8
  9. games6471
    Online

    games6471

  10. TheFantasticFightMC
    Offline

    TheFantasticFightMC

    Registriert seit:
    30. Oktober 2013
    Beiträge:
    5
    #10
  11. Chrisliebaer
    Online

    Chrisliebaer

    #11
  12. Gleydar
    Offline

    Gleydar Ehem. Teammitglied

    Registriert seit:
    2. August 2012
    Beiträge:
    443
    Ort:
    player.getHome()
    Minecraft:
    Gleydar
    Nimm einfach nicht String1 == String2 sondern String1.equals(String2)
     
    #12
  13. ThunderFlo
    Offline

    ThunderFlo

    Registriert seit:
    22. September 2013
    Beiträge:
    53
    Code (Text):
    1. package Dein.Package.Name;
    2.  
    3. import org.bukkit.Bukkit;
    4. import org.bukkit.entity.Player;
    5. import org.bukkit.event.EventHandler;
    6. import org.bukkit.event.Listener;
    7. import org.bukkit.event.player.PlayerJoinEvent;
    8. import org.bukkit.event.player.PlayerQuitEvent;
    9. import org.bukkit.potion.PotionEffect;
    10. import org.bukkit.potion.PotionEffectType;
    11.  
    12. public class JoinListener implements Listener {
    13.    
    14.     @EventHandler
    15.     public void onPlayerJoin(PlayerJoinEvent e) {
    16.         Player p = e.getPlayer();
    17.        
    18.         if (p == Bukkit.getWorld("Weltname")) {
    19.             p.addPotionEffect(new PotionEffect(PotionEffectType.SPEED, 100000, 2));
    20.         }
    21.     }
    22.    
    23.     @EventHandler
    24.     public void onPlayerQuit(PlayerQuitEvent e) {
    25.         Player p = e.getPlayer();
    26.        
    27.         if (p == Bukkit.getWorld("Weltname")) {
    28.             p.getActivePotionEffects().remove(PotionEffectType.SPEED);
    29.         }
    30.     }
    31.  
    32. }
    33.  

    Habs nicht getestet, aber ich denke es sollte gehen. Wenn der Spieler sich nun einloggt erhält er in der Welt Weltname (Da solltest DU den Weltnamen von deiner Welt angeben) den PotionEffectSpeed und falls er sich ausloggt wird er wieder removed.

    Lg,
    ThunderFlo
     
    #13
  14. MrFlieder
    Offline

    MrFlieder

    Registriert seit:
    30. Dezember 2011
    Beiträge:
    333
    Ort:
    Österreich
    Minecraft:
    MrFlieder
    Du vergleichst ein Player-Objekt mit einem World-Objekt?
    So wird das nicht funktionieren.

    Code (Text):
    1.  
    2. if(p.getLocation().getWorld().getName().equalsIgnoreCase("Weltname"))
    3. {
    4.     p.addPotionEffect(new PotionEffect(PotionEffectType.SPEED, 100000, 2));
    5. }
    6.  
     
    #14