• 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

Status
Für weitere Antworten geschlossen.

Nexus15

Kuhfänger
Registriert
30 September 2012
Beiträge
89
Diamanten
0
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 :)
 

Calenria

Braumeister
Registriert
28 Juli 2012
Beiträge
386
Alter
45
Diamanten
300
Minecraft
Calenria
Code:
Player[] playerList = Bukkit.getOnlinePlayers();
int random = new Random().nextInt(playerList.length);
Player playerrandom = playerList[random];

Sollte funktionieren, hab es nicht getestet.
 

Calenria

Braumeister
Registriert
28 Juli 2012
Beiträge
386
Alter
45
Diamanten
300
Minecraft
Calenria
Nein, hat leider nicht geklappt :)

Bei mir läuft es grad ausprobiert:

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

Funktioniert bei mir ohne Probleme.

Eigentlich sollte der randomplayer zu der Location geportet werden. Das ist aber nicht der Fall.

Du Teleportierst aber player und nicht randomplayer oder sehe ich das falsch?
 

Nexus15

Kuhfänger
Registriert
30 September 2012
Beiträge
89
Diamanten
0
** 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));

}
 

Kluddizz

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

Code:
Location loc = playerrandom.getLocation();
loc.setY(73);
loc.setX(52);
loc.setZ(241);
playerrandom.teleport(loc);

Das geht einfacher!

Code:
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:
	@EventHandler
	public void onPlayerJoin(PlayerJoinEvent event) {
		Player[] playerList = event.getPlayer().getServer().getOnlinePlayers();
		Player playerrandom = playerList[new Random().nextInt(playerList.length)];
		
		playerrandom.teleport(new Location(event.getPlayer().getWorld(), 73, 52, 241));
		playerrandom.addPotionEffect(new PotionEffect(PotionEffectType.INVISIBILITY, 200, 1));
		playerrandom.getInventory().addItem(new ItemStack(Material.DIAMOND_SWORD, 1));
		
		playerrandom.sendMessage(ChatColor.GOLD + "Sie sind der Geist viel Glück!");
		Bukkit.broadcastMessage(ChatColor.RED + "Spieler " + playerrandom.getName() + " ist der Geist.");
	}
 
Status
Für weitere Antworten geschlossen.
Oben