/tempban and /ban have the same problem as /tjail

new permissions:
essentials.ban.offline
essentials.tempban.offline
This commit is contained in:
snowleo 2011-07-19 01:32:48 +02:00
parent d388290427
commit 150a0e0ddd
2 changed files with 35 additions and 8 deletions

View File

@ -1,9 +1,11 @@
package com.earth2me.essentials.commands;
import com.earth2me.essentials.OfflinePlayer;
import org.bukkit.Server;
import org.bukkit.command.CommandSender;
import com.earth2me.essentials.User;
import com.earth2me.essentials.Util;
import org.bukkit.entity.Player;
public class Commandban extends EssentialsCommand
@ -21,12 +23,24 @@ public class Commandban extends EssentialsCommand
throw new NotEnoughArgumentsException();
}
final User player = getPlayer(server, args, 0, true);
if (player.isAuthorized("essentials.ban.exempt"))
if (player.getBase() instanceof OfflinePlayer)
{
sender.sendMessage(Util.i18n("banExempt"));
return;
if (sender instanceof Player
&& !ess.getUser(sender).isAuthorized("essentials.ban.offline"))
{
sender.sendMessage(Util.i18n("banExempt"));
return;
}
}
else
{
if (player.isAuthorized("essentials.ban.exempt"))
{
sender.sendMessage(Util.i18n("banExempt"));
return;
}
}
String banReason;
if (args.length > 1)
{
@ -42,4 +56,3 @@ public class Commandban extends EssentialsCommand
server.broadcastMessage(Util.format("playerBanned", player.getName(), banReason));
}
}

View File

@ -1,9 +1,11 @@
package com.earth2me.essentials.commands;
import com.earth2me.essentials.OfflinePlayer;
import org.bukkit.Server;
import org.bukkit.command.CommandSender;
import com.earth2me.essentials.User;
import com.earth2me.essentials.Util;
import org.bukkit.entity.Player;
public class Commandtempban extends EssentialsCommand
@ -21,10 +23,22 @@ public class Commandtempban extends EssentialsCommand
throw new NotEnoughArgumentsException();
}
final User player = getPlayer(server, args, 0, true);
if (player.isAuthorized("essentials.tempban.exempt"))
if (player.getBase() instanceof OfflinePlayer)
{
sender.sendMessage(Util.i18n("tempbanExempt"));
return;
if (sender instanceof Player
&& !ess.getUser(sender).isAuthorized("essentials.tempban.offline"))
{
sender.sendMessage(Util.i18n("tempbanExempt"));
return;
}
}
else
{
if (player.isAuthorized("essentials.tempban.exempt"))
{
sender.sendMessage(Util.i18n("tempbanExempt"));
return;
}
}
final String time = getFinalArg(args, 1);
final long banTimestamp = Util.parseDateDiff(time, true);