ausgebildet
Redstoneengineer
Hey, ich entwickle gerade ein BanSystem und irgendwie funktioniert der Tempban nicht. Also der Spieler wird gebannt aber für 0 Tage 0 Stunden usw. Also die Zeit wird nicht übernommen.
Hier der BanManager
Ich verstehe den Fehler echt nicht , vielleicht kann mir wer helfen.
Und ich weiß das man mit UUID bannen sollte. Das mit Spielernamen ist extra.
Code:
BanSystem plugin;
public CMD_Tempban(BanSystem plugin) {
super("tempban");
this.plugin = plugin;
}
public void execute(CommandSender commandsender, String[] args) {
if (!(commandsender instanceof ProxiedPlayer)) {
commandsender
.sendMessage(new TextComponent(plugin.getBanPrefix() + "§c§lDu musst ein ProxiedPlayer sein!"));
return;
}
ProxiedPlayer sender = (ProxiedPlayer) commandsender;
if (!(args.length == 4)) {
sender.sendMessage(
new TextComponent(plugin.getBanPrefix() + "§c/tempban <Player> <Reason> <Time> <TimeUni>"));
return;
}
if (!(sender.hasPermission("bansystem.tempban"))) {
sender.sendMessage(new TextComponent(plugin.getBanPrefix() + "§c§lDazu hast du keine Berechtigung!"));
return;
}
ProxiedPlayer target = BungeeCord.getInstance().getPlayer(args[0]);
if (target.hasPermission("bansystem.bypass")) {
sender.sendMessage(new TextComponent(plugin.getBanPrefix() + "§c§lDu kannst diesen Spieler nicht bannen!"));
return;
}
if (plugin.getBanManager().isBanned(args[0])) {
sender.sendMessage(new TextComponent(plugin.getBanPrefix() + "§c§lDieser Spieler ist bereits gebannt!"));
return;
}
String TimeUnit = args[3];
String message = "";
for (int i = 3; i < args.length; i++) {
message = message + args[i] + " ";
}
long Time = Integer.parseInt(args[2]);
if ((TimeUnit.equalsIgnoreCase("sec")) || (TimeUnit.equalsIgnoreCase("s")) || (TimeUnit.equalsIgnoreCase("sek"))
|| (TimeUnit.equalsIgnoreCase("sekunden")) || (TimeUnit.equalsIgnoreCase("secs"))) {
sender.sendMessage(new TextComponent(plugin.getBanPrefix() + "§7Du hast §e" + args[0] + " §7zeitlich gebannt!"));
plugin.getBanManager().ban(args[0], args[1], sender.getName(), Time * 1);
} else if ((TimeUnit.equalsIgnoreCase("min")) || (TimeUnit.equalsIgnoreCase("minuten"))
|| (TimeUnit.equalsIgnoreCase("m")) || (TimeUnit.equalsIgnoreCase("mins"))
|| (TimeUnit.equalsIgnoreCase("minute"))) {
sender.sendMessage(new TextComponent(plugin.getBanPrefix() + "§7Du hast §e" + args[0] + " §7zeitlich gebannt!"));
plugin.getBanManager().ban(args[0], args[1], sender.getName(), Time * 60);
} else if ((TimeUnit.equalsIgnoreCase("h")) || (TimeUnit.equalsIgnoreCase("hour"))
|| (TimeUnit.equalsIgnoreCase("hours"))) {
sender.sendMessage(new TextComponent(plugin.getBanPrefix() + "§7Du hast §e" + args[0] + " §7zeitlich gebannt!"));
plugin.getBanManager().ban(args[0], args[1], sender.getName(), Time * 60 * 60);
} else if ((TimeUnit.equalsIgnoreCase("d")) || (TimeUnit.equalsIgnoreCase("day"))
|| (TimeUnit.equalsIgnoreCase("t")) || (TimeUnit.equalsIgnoreCase("tage"))
|| (TimeUnit.equalsIgnoreCase("tag")) || (TimeUnit.equalsIgnoreCase("days"))) {
sender.sendMessage(new TextComponent(plugin.getBanPrefix() + "§7Du hast §e" + args[0] + " §7zeitlich gebannt!"));
plugin.getBanManager().ban(args[0], args[1], sender.getName(), Time * 60 * 60 * 24);
} else if ((TimeUnit.equalsIgnoreCase("w")) || (TimeUnit.equalsIgnoreCase("week"))
|| (TimeUnit.equalsIgnoreCase("woche")) || (TimeUnit.equalsIgnoreCase("wochen"))
|| (TimeUnit.equalsIgnoreCase("weeks"))) {
sender.sendMessage(new TextComponent(plugin.getBanPrefix() + "§7Du hast §e" + args[0] + " §7zeitlich gebannt!"));
plugin.getBanManager().ban(args[0], args[1], sender.getName(), Time * 60 * 60 * 24 * 7);
} else {
sender.sendMessage(new TextComponent(plugin.getBanPrefix() + "§csec, min, hours, day, weeks"));
}
return;
}
Hier der BanManager
Code:
public void ban(String playername, String reason, String banner, long time) {
long end = 0L;
if (time == -1L) {
end = -1L;
} else {
long current = System.currentTimeMillis();
long millis = time * 1000L;
end = current + millis;
}
plugin.getMySQL().update("INSERT INTO bannedplayers (Playername, Reason, Ende, Banner) VALUES ('" + playername + "', ' " + reason + "', '" + time + "', '" + banner + "')");
new Runnable() {
public void run() {
if(BungeeCord.getInstance().getPlayer(playername) != null) {
BungeeCord.getInstance().getPlayer(playername).disconnect(new TextComponent(
"§7Du wurdest vom Netzwerk §c§lgebannt! \n \n §3Grund §8: §e" + reason + "\n §9Zuständiger §8: §7" + banner + "\n §cEnde §8: " + getRemainingTime(playername)));
}
}
}.run();
}
Ich verstehe den Fehler echt nicht , vielleicht kann mir wer helfen.
Und ich weiß das man mit UUID bannen sollte. Das mit Spielernamen ist extra.