• 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!

Tempban Hilfe

Lukas0816HD

Minecrafter
Registriert
19 Oktober 2017
Beiträge
4
Diamanten
0
Hey Leute ich arbeite gerade an einem Ban Plugin für meinen Server und will dass wenn zB. /ban <Name> 1 dass der Spieler dann für einen vorher festgelegten Grund gebannt wird. Mein Problem ist ich will auch pro Zahl(Bangrund) eine andere Zeit bannen und habe keine Ahnung wie das mit dem Tempbannen funktioniert


Das ist mein Code:
https://pastebin.com/8mhjDchQ

Danke im Vorraus
Lukas
 

BlackHole

Workaholic
Registriert
1 Juli 2012
Beiträge
752
Diamanten
0
Minecraft
BlackHole
Du brauchst dann eine geeignete Datenstruktur in der die Tempbans pro Spieler gespeichert werden. Hier bietet sich eine Map an, die als Schlüssel die UUIDs der Spieler verwendet als Wert eine Klasse, die den Grund und das Ablaufdatum speichert.
Wenn sich ein Spieler einloggt, dann schaust du ob für ihn so ein Banneintrag in der Map existiert. Dann vergleichst du noch das dort hinterlegte Datum mit dem aktuellen Datum und entfernst entweder diesen Eintrag oder lehnst die Verbindung des Spielers mit dem hinterlegten Bangrund ab und zeigst gegebenenfalls noch das Ablaufdatum an.

Die Bangründe könntest du in einer weiteren Map hinterlegen, die die Zahlenwerte auf Zeitspanne und Meldung abbildet.
 
F

Figz

Guest
So zu aller erst: http://openbook.rheinwerk-verlag.de/javainsel9/javainsel_02_006.htm

Nachdem du das dann gelesen hast, solltest du trotzdem die ganzen if-anweisungen entfernen und die ganzen Bangründe in eine Datei (Json oder YAML) oder in eine Datenbank auslagern. Das wird dir viel Arbeit ersparen, sowohl jetzt, als auch in Zukunft.

Dann könntest du anstatt mit
Code:
if(Bukkit.getPlayer(args [0] ) != null )

auch mit

Code:
if(target != null)

abfragen...

Doch bevor du das machst:

Code:
Player target = Bukkit.getPlayer(args[0]);

solltest du das machen:

Code:
if(command.getName().equalsIgnoreCase("ban"))


Aaaaaber bevor du das alles machst, lern Java.
 
Oben