OnJoin event player namen heraus finden?

MrAmazing2  20.07.2021, 23:06

Soll das "Hallo" nur der neue Spieler sehen?

Oder soll einfach "Hallo <Joinender Spieler>" im Chat geschrieben werden (für alle sichtbar)?

Bajalula 
Fragesteller
 20.07.2021, 23:08

Nur der Spieler soll das sehen

2 Antworten

Von Experten Brockdish und MrAmazing2 bestätigt
Player p = e.getPlayer();
e.setJoinMessage(p.getName() + " ist dem Spiel beigetreten!");
p.getInventory().addItem(new ItemStack(...));

Muss noch angepasst werden, aber so sollte es ungefähr passen.

Mit Player p = e.getPlayer(); definiert man den Spieler der Joint in einer Variabel.

Mit e.setJoinMessage, ändert man die Nachricht die erscheint, sobald der Spieler joint.

mit p.get Inventory, holt man das Inventar des Spielers und mit Add Item fügt man diesem Inventar ein Item (Itemstack) hinzu.

So sollte es ungefähr passen.

Hier genaueres zu dem Event:

https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/event/player/PlayerJoinEvent.html

Edit:

e.sendMessage(p.getName() + " ist dem Spiel beigetreten!");

Damit könnte es evtl gehen, sodass nur er die Nachricht sieht. Sicher bin ich mir hierbei aber nicht.

Woher ich das weiß:Hobby – Beschäftige mich oft mit Computern
Bajalula 
Fragesteller
 21.07.2021, 11:34

Also Ich habe das gerade mal Ausprobiert und das geht nicht, es wird kein Fehler Angezeigt. Ich habe das hier geschrieben:

public class JoinListener implements Listener {

	  @EventHandler
	  public void JoinEvent(PlayerJoinEvent event) {
	  	Player p = event.getPlayer();
	  	System.out.println("Da ist jemand gejoint, der heißt " + p + ".");
	  }
	}
0
VinceJosh  21.07.2021, 12:00
@Bajalula

schreib mal statt system out println:

 e.sendMessage("Da ist jemand gejoint, der heißt " + p.getName() + ".");
0
SimonK15  14.08.2021, 23:52
@Bajalula

..eißt " + p + ".") - da müsstest du dann p.getName().

Möchtest Du nur dem gejointen Spieler eine Nachricht schreiben, machst Du das mit p.sendMessage("Willkommen, " + p.getName());

0

Falls die Frage noch aktuell ist:

	  @EventHandler
	  public void JoinEvent(PlayerJoinEvent event) {
	  	Player p = event.getPlayer();
	  	p.sendMessage("Hallo "+p.getName()+"!");
	  }