1. 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!

Random Player

Dieses Thema im Forum "Server Plugins" wurde erstellt von Nexus15, 14. Dezember 2012.

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. Nexus15
    Offline

    Nexus15

    Registriert seit:
    30. September 2012
    Beiträge:
    89
    Hallo,
    ich möchte das irgendein random Spieler auf dem Server Geist wird. Dafür habe ich das programmiert:

    @EventHandler
    public void onPlayerJoin(PlayerJoinEvent event) {
    int random = new Random().nextInt(Bukkit.getOnlinePlayers().length);
    Player playerrandom = Bukkit.getOnlinePlayers()[random];
    Player player = event.getPlayer();
    String prname = playerrandom.getName();
    PlayerInventory pi = player.getInventory();
    playerrandom.sendMessage(ChatColor.GOLD + "Sie sind der Geist viel Glück!");
    Bukkit.broadcastMessage(ChatColor.RED + "Spieler " + prname + " ist der Geist.");
    Location loc = player.getLocation();
    loc.setY(73);
    loc.setX(52);
    loc.setZ(241);
    player.teleport(loc);
    player.addPotionEffect(new PotionEffect(PotionEffectType.INVISIBILITY, 200, 1));
    pi.addItem(new ItemStack(Material.DIAMOND_SWORD, 1));

    }

    Was habe ich falsch gemacht?
    Vielen Dank für Antworten :)
     
    #1
  2. Werbung
    Online

    Werbung

  3. LBuilder
    Offline

    LBuilder

    Registriert seit:
    2. April 2012
    Beiträge:
    685
    Minecraft:
    SchnitzelDE
    Kommt ein Fehler in der Konsole?
    Dann stell ihn bitte mal rein :)
     
    #2
  4. Nexus15
    Offline

    Nexus15

    Registriert seit:
    30. September 2012
    Beiträge:
    89
    Nein, es kommt kein Fehler :)
     
    #3
  5. Calenria
    Offline

    Calenria

    Registriert seit:
    28. Juli 2012
    Beiträge:
    386
    Minecraft:
    Calenria
    Code (Text):
    1. Player[] playerList = Bukkit.getOnlinePlayers();
    2. int random = new Random().nextInt(playerList.length);
    3. Player playerrandom = playerList[random];
    Sollte funktionieren, hab es nicht getestet.
     
    #4
  6. Nexus15
    Offline

    Nexus15

    Registriert seit:
    30. September 2012
    Beiträge:
    89
    Nein, hat leider nicht geklappt :)
     
    #5
  7. was ist denn dann dein Problem?

    Entweder du bekommst keinen Spieler returned -> Nullpointer
    oder
    Du bekommst einen Spieler returned -> Kein Problem
     
    #6
  8. Nexus15
    Offline

    Nexus15

    Registriert seit:
    30. September 2012
    Beiträge:
    89
    Eigentlich sollte der randomplayer zu der Location geportet werden. Das ist aber nicht der Fall.
     
    #7
  9. Crafter6432
    Offline

    Crafter6432

    Registriert seit:
    22. Dezember 2011
    Beiträge:
    682
    Ich weis nicht ob es absicht ist aber du Teleportierst nicht den zufälligen Spieler sondern den neuen bzw gejointen.
     
    #8
  10. Calenria
    Offline

    Calenria

    Registriert seit:
    28. Juli 2012
    Beiträge:
    386
    Minecraft:
    Calenria
    Bei mir läuft es grad ausprobiert:

    Code (Text):
    1. Player[] playerList = Bukkit.getOnlinePlayers();
    2. int random = new Random().nextInt(playerList.length);
    3. Player playerrandom = playerList[random];
    4. playerrandom.sendMessage(ChatColor.GOLD + "Sie sind der Geist viel Glück!");
    5. playerrandom.addPotionEffect(new PotionEffect(PotionEffectType.INVISIBILITY, 200, 1));
    Funktioniert bei mir ohne Probleme.

    Du Teleportierst aber player und nicht randomplayer oder sehe ich das falsch?
     
    #9
  11. Nexus15
    Offline

    Nexus15

    Registriert seit:
    30. September 2012
    Beiträge:
    89
    ** FacePalm ** stimmt da hast du Recht.

    - - - Aktualisiert - - -

    Hab es jetzt so gemacht, aber es funktioniert immer noch nicht. Müssen dafür 2 Player online sein?
    @EventHandler
    public void onPlayerJoin(PlayerJoinEvent event) {


    Player[] playerList = Bukkit.getOnlinePlayers();
    Player player = event.getPlayer();
    int random = new Random().nextInt(playerList.length);
    Player playerrandom = playerList[random];
    String prname = playerrandom.getName();
    PlayerInventory pi = playerrandom.getInventory();
    playerrandom.sendMessage(ChatColor.GOLD + "Sie sind der Geist viel Glück!");
    playerrandom.addPotionEffect(new PotionEffect(PotionEffectType.INVISIBILITY, 200, 1));
    Bukkit.broadcastMessage(ChatColor.RED + "Spieler " + prname + " ist der Geist.");
    Location loc = playerrandom.getLocation();
    loc.setY(73);
    loc.setX(52);
    loc.setZ(241);
    playerrandom.teleport(loc);

    pi.addItem(new ItemStack(Material.DIAMOND_SWORD, 1));

    }
     
    #10
  12. Kluddizz
    Offline

    Kluddizz

    Registriert seit:
    15. Dezember 2012
    Beiträge:
    10
    Der Code ist okay. Das einzige ist, was du vielleicht nicht möchtest
    Code (Text):
    1. playerrandom.addPotionEffect(new PotionEffect(PotionEffectType.INVISIBILITY, 200, 1));
    macht den Spieler für 200 Ticks unsichtbar. Das wären ca. 10 sek.

    Code (Text):
    1. Location loc = playerrandom.getLocation();
    2. loc.setY(73);
    3. loc.setX(52);
    4. loc.setZ(241);
    5. playerrandom.teleport(loc);
    Das geht einfacher!

    Code (Text):
    1. playerrandom.teleport(new Location(event.getPlayer().getWorld(), 73, 52, 241));
    Außerdem ist deine Variable "player" unbenutzt. Wenn ich auf alles Rücksicht nehme kommt folgender Code zusammen:

    Code (Text):
    1.     @EventHandler
    2.     public void onPlayerJoin(PlayerJoinEvent event) {
    3.         Player[] playerList = event.getPlayer().getServer().getOnlinePlayers();
    4.         Player playerrandom = playerList[new Random().nextInt(playerList.length)];
    5.        
    6.         playerrandom.teleport(new Location(event.getPlayer().getWorld(), 73, 52, 241));
    7.         playerrandom.addPotionEffect(new PotionEffect(PotionEffectType.INVISIBILITY, 200, 1));
    8.         playerrandom.getInventory().addItem(new ItemStack(Material.DIAMOND_SWORD, 1));
    9.        
    10.         playerrandom.sendMessage(ChatColor.GOLD + "Sie sind der Geist viel Glück!");
    11.         Bukkit.broadcastMessage(ChatColor.RED + "Spieler " + playerrandom.getName() + " ist der Geist.");
    12.     }
     
    #11
Status des Themas:
Es sind keine weiteren Antworten möglich.