(Spigot) » Im PlayerJoinEvent abfragen ob eine bestimmte Person joint?

5 Antworten

@EventHandler
public void onJoin(PlayerJoinEvent e){
    Player p = e.getPlayer();
    
    p.sendMessage("Du bist verbunden");
    
    if(){
    }
    
}

So würde ich ein PlayerJoin machen :D must halt stat der msg den gm ersetzen, und abfragen ob der eine spieler verbunden ist, mit einer if-Verzweigung

Juboy6000 
Fragesteller
 12.05.2019, 15:59

Ich habe es bis jetzt so:

public class Lauscher implements Listener{
	
	private Main main;
	
	public Lauscher(Main main) {
		this.main = main;
		Bukkit.getPluginManager().registerEvents(this, main);
	}
	


	public void onJoin(PlayerJoinEvent e) {
		Player player = e.getPlayer();
		player.sendMessage("hallo");
		if(player.getName().equals("SPIELERNAME")) {
			player.sendMessage("§a§lGamemode 3 wird freigeschaltet...");


			Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "gm 3 NsuperT");
			
	}	
		
	}
	


}
0
Juboy6000 
Fragesteller
 12.05.2019, 15:59

Danke, aber komischerweise passiert einfach garnichts

0
MadMarvin007  12.05.2019, 16:01
@Juboy6000
Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "gm 3 NsuperT");

versuch mal das>>

Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "/gamemode 3 NsuperT");
0
Juboy6000 
Fragesteller
 12.05.2019, 16:05
@MadMarvin007

Habe probiert, aber wieder nicht, es gehen ja auch keine "sendMessages", das ist merkwürdig

0
MadMarvin007  12.05.2019, 16:08
@Juboy6000

Ok dann hast du vorher schon einen Syntax fehler etc... dann must du deinen Code shrit für shrit debugen und schauen wo der fehler ist, oder evtl wird er dir in der console vom Server angezeigt... vllt beim starten des Servers oder beim join des Spielers...

0
Juboy6000 
Fragesteller
 12.05.2019, 16:11
@MadMarvin007

Das ist ja das witzige, ich habe nur soviel wie auf dem Bild xD weil es ja nur GM geben soll. Und der Log ist auch normal wird geladen etc.

0
MadMarvin007  12.05.2019, 16:14
@Juboy6000

Ist das ein BungeeCord Netzwerk mit mehreren Servern, sodas er beim join egal auf welchem unterserver gm bekommt? weil dann kann ich dir mehr helfen

0
MadMarvin007  12.05.2019, 16:18
@MadMarvin007

Und versuch bei deinem Code noch vor

public void onJoin(PlayerJoinEvent e) {

so zu probrieren

@EventHandler
public void onJoin(PlayerJoinEvent e){
1
Juboy6000 
Fragesteller
 12.05.2019, 16:24
@MadMarvin007

Danke dir und Mrredstone, habe @EventHandler vergessen.

Jetzt geht es.

Manchmal fallen einem die Sachen nicht ein :D

1
MadMarvin007  12.05.2019, 16:26
@Juboy6000

Alles gut :D dachte hättest es mit drinne weil ich dir ja ein Beispiel geschickt habe... Viel spaß dir noch, fehler passieren halt, selbst mir :D

1
  1. Probiere vor gm 3 mal ein / zu machen: / gm 3
  2. Einfacher wäre Player.setGamemode(Gamemode.crea...);
  3. wenn nichts klappt ist Deine Namesabfrage falsch
Juboy6000 
Fragesteller
 12.05.2019, 15:40

Okay Danke, aber habe auch mal p.sendMessage gemacht aber es passiert auch garnichts, Wie könnte ich die Namesabfrage auch machen?

MFG

0
SkySurver  12.05.2019, 15:45
@Juboy6000

Dann wird evtl dein Listener nicht aufgerufen. Probier einfach mal nur ne Nachricht auszugeben (ohne jegliche of Abfrage)

also z.b Player.sendMessage(„hallo“);

0

Hallo,

Klassischer Fehler: @EventHandler fehlt ;)

MfG,

Mrredstone

Woher ich das weiß:eigene Erfahrung – Aktiver Serverbastler und Entwickler in Sachen PlugIns

If(e.getPlayer().getName == e.getPlayer().getName().equalsIgnoreCase("SPIELERNAME") {

e.getPlayer.setGamemode(GAMEMODE.Creative);

}

Bibber5551  09.03.2020, 13:49

es geht nur viel einfacher :)

if(e.getPlayer().equals("SPIELERNAME")) {

e.getPlayer().setGameMode(GameMode.ADVENTURE); //Das Caps geschrieben Gamemode mit Surivival, Adventure, Speactetor etc tauschen

}

0
AbgeNickt411  11.03.2020, 15:18
@Bibber5551

equals fragt aber ab ob der Spieler der joint exakt so heißt wie der in Minecraft also groß und klein schreibung wird beachtet bei equalsIgnoreCase aber nicht das hat den vorteil wenn er z.b. nicht weiß ob der spieler am anfang groß oder klein geschrieben wird

0
Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "gm 3 Spielername");

Was willst du damit bezwecken?

SkySurver  12.05.2019, 15:40

Er will einen Spieler gm setzen?!

aber das macht er halt über die console

0
MadMarvin007  12.05.2019, 15:50

ja aber er will ihn in spec mode setzen und in der frage steht in creative(gm 1)

0