(Spigot) » Im PlayerJoinEvent abfragen ob eine bestimmte Person joint?
Guten Tag Community.
Ich bin gerade dabei ein kleines System zu programmieren welches wenn es fertig ist einem bestimmten Spieler Gamemode 1 gibt, (Es ist nur ein Spieler)
Jetzt habe ich das PlayerJoinEvent und darin eine If Abfrage:
Player player = e.getPlayer
if(player.getName().equals("SPIELERNAME")) {
Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "gm 3 Spielername");
Habe den Listener registriert, aber beim joinen passiert garnichts.
Was habe ich falsch gemacht?
MFG
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
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");
}
}
}
Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "gm 3 NsuperT");
versuch mal das>>
Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "/gamemode 3 NsuperT");
Habe probiert, aber wieder nicht, es gehen ja auch keine "sendMessages", das ist merkwürdig
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...
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.
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
Und versuch bei deinem Code noch vor
public void onJoin(PlayerJoinEvent e) {
so zu probrieren
@EventHandler
public void onJoin(PlayerJoinEvent e){
Weil das muss aufjedenfall dahin, sonst würde es nicht gehen
Danke dir und Mrredstone, habe @EventHandler vergessen.
Jetzt geht es.
Manchmal fallen einem die Sachen nicht ein :D
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
- Probiere vor gm 3 mal ein / zu machen: / gm 3
- Einfacher wäre Player.setGamemode(Gamemode.crea...);
- wenn nichts klappt ist Deine Namesabfrage falsch
Okay Danke, aber habe auch mal p.sendMessage gemacht aber es passiert auch garnichts, Wie könnte ich die Namesabfrage auch machen?
MFG
Dann wird evtl dein Listener nicht aufgerufen. Probier einfach mal nur ne Nachricht auszugeben (ohne jegliche of Abfrage)
also z.b Player.sendMessage(„hallo“);
Oh Okay, das ist ja interessant, nicht mal die Message wird gesendet: http://prntscr.com/nnjinu
In der Main registriert.: http://prntscr.com/nnjiwm
Echt komisch
Hallo,
Klassischer Fehler: @EventHandler fehlt ;)
MfG,
Mrredstone
If(e.getPlayer().getName == e.getPlayer().getName().equalsIgnoreCase("SPIELERNAME") {
e.getPlayer.setGamemode(GAMEMODE.Creative);
}
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
}
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
Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "gm 3 Spielername");
Was willst du damit bezwecken?
Er will einen Spieler gm setzen?!
aber das macht er halt über die console
ja aber er will ihn in spec mode setzen und in der frage steht in creative(gm 1)
Danke, aber komischerweise passiert einfach garnichts