Minecraft Spigot Ban Event?

4 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Mach's so:

@EventHandler

public void onDeath(PlayerDeathEvent e) {

Player p = e.getEntity();

if(p.isDead()) {

p.getPlayer().kickPlayer("§4Du bist gestoreben!");

public void onLogin(PlayerLoginEvent e)
e.disllow(result.KLICK_OTHER, "[Die Nachricht die angezeigt werden soll wenn der Spieler den Server Beitritt]" + [Deine Main Klasse].cfg.getString(e.getPlayer().getName()) + "[nochmal ne Nachricht]");

}

}
 

    Dann noch deine Main classes muss am Anfang 

public static File folder = new File("plugins/[Dein plugin Name]"
public static File = new File("plugins/[Dein pl name]/Ban.yml")
public static YamlConfiguration cfg = YamlConfiguration.loadConfiguration(file);
public static void save() {
try {
cfg.save(file);
}catch (IOException e) {
e.printStackTrace():
}
}
private static main plugin;

@Override
public void onDisable() {
}
@Override
public void onEnable() {
loadConfig();
PluginManager pm =Bukkit.getPluginManager();

pm.registerEvents(new [Deine ban class](),this);


Und am Ende deiner Main Klasse

Public void loadCinfig() {
FileConfiguration cfg = this.getConfig();
cfg.options().copyDefault(true);
this.saveConfig();
}
}

Hab alles auf dem handy geschrieben und viel Mühe gegeben 😅
Bei Fehler schreib mir per Privatnachricht
Woher ich das weiß:Hobby

ichfragenurok  03.10.2018, 19:22

Hoffe es hilft hab über 20 min gebraucht das zu schreiben

0
Dominik432 
Fragesteller
 03.10.2018, 21:19
@ichfragenurok

Ersteinmal danke für den Code xD Och hab jetzt ein bisschen rumprobiert und hab eine einfachere Lösung gefunden c:

Bukkit.getBanList(BanList.Type.Normal).addBan(p.getName(), "Du wurdest gebannt", null, null)

0

Wieso getPlayer() wenn p schon der Player ist?

Kommt vielleicht eeetwass spääätt, aber egaalll xDD

Mach doch einfach so:

@SuppressWarnings("deprecation")
	@EventHandler


	public void onDeath(PlayerDeathEvent e) {


	Player p = e.getEntity();


	if(p.isDead()) {


	p.kickPlayer("§4Du bist gestorben!");


	p.setBanned(true);


	}


	}

Dominik432 
Fragesteller
 01.03.2020, 10:25

Danke xd

0

Das ist rot unterstrichen weil du p.getPlayer() machst.
Wieso zur Hölle willst du den Player getten wenn du ihn schon vorher definiert hast

Woher ich das weiß:Studium / Ausbildung – Informatik Studium, 3. Semester.

Dominik432 
Fragesteller
 02.10.2018, 19:09

Selbst wenn ich p.setBanned(true);

mache, wird es unterstrichen.

Und, wie gesagt, ich hab mich verschreiben c:

0
IchBinSmile  03.10.2018, 17:44
@Dominik432

Wird es Rot Unterstrichen oder Rot durchgestrichen?.
Bei Rot durchgestrichen kannst du es schon noch verwenden. Rot unterstrichen sollte eigentlich nicht der Fall sein, es sein denn du benutzt 1.12 wovon ich jetzt aber mal nicht ausgehe.

Aber wie bereits gesagt worden ist währe die "elegantere" Lösung den Spieler zu Kicken und in einer File/Database zu speichern, um dann das Joinen zu verweigern. Dann kannst du auch schöne Messages machen und weitere Infos zum Ban etc speichern.

0
IchBinSmile  03.10.2018, 23:18
@ichfragenurok

Hahah meine Finger währen abgefallen. Aber versteh ich da was falsch oder würde bei deinem Code einfach jeder der joinen will direkt gekickt werden?

0
ichfragenurok  04.10.2018, 17:08
@IchBinSmile

Nein, die Funktion p.setBanned würde einfach nur von Bukkit entfernt und man muss es umständlicher Lösen. Um deine Frage zu beantworten wenn man nur die Bann class hat schon. Aber ich bin ausgegangen das der Fragensteller in der class noch drin stehen hat weswegen er gebannt wird also wenn man's so übernimmt dann sollte es eh nen Fehler ausgeben 😅

1