Implemented new ban and unban methods

This commit is contained in:
Dinnerbone 2011-09-03 02:13:07 +01:00
parent 598be22800
commit 09d90e639b
4 changed files with 38 additions and 4 deletions

View File

@ -33,7 +33,7 @@ public class ServerConfigurationManager {
public MinecraftServer server; // CraftBukkit - private -> public
// private PlayerManager[] d = new PlayerManager[2]; // CraftBukkit - removed
public int maxPlayers; // CraftBukkit - private -> public
private Set banByName = new HashSet();
public Set banByName = new HashSet(); // CraftBukkit - private -> public
public Set banByIP = new HashSet(); // CraftBukkit - private -> public
private Set h = new HashSet();
private Set i = new HashSet();

View File

@ -25,16 +25,28 @@ public class CraftOfflinePlayer implements OfflinePlayer {
}
public boolean isOp() {
return server.getHandle().isOp(getName());
return server.getHandle().isOp(getName().toLowerCase());
}
public void setOp(boolean value) {
if (value == isOp()) return;
if (value) {
server.getHandle().e(getName());
server.getHandle().e(getName().toLowerCase());
} else {
server.getHandle().f(getName());
server.getHandle().f(getName().toLowerCase());
}
}
public boolean isBanned() {
return server.getHandle().banByName.contains(name.toLowerCase());
}
public void setBanned(boolean value) {
if (value) {
server.getHandle().a(name.toLowerCase());
} else {
server.getHandle().b(name.toLowerCase());
}
}
}

View File

@ -829,4 +829,14 @@ public final class CraftServer implements Server {
public void unbanIP(String address) {
server.d(address);
}
public Set<OfflinePlayer> getBannedPlayers() {
Set<OfflinePlayer> result = new HashSet<OfflinePlayer>();
for (Object name : server.banByName) {
result.add(getOfflinePlayer((String)name));
}
return result;
}
}

View File

@ -354,4 +354,16 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
public void resetPlayerTime() {
setPlayerTime(0, true);
}
public boolean isBanned() {
return server.getHandle().banByName.contains(getName().toLowerCase());
}
public void setBanned(boolean value) {
if (value) {
server.getHandle().a(getName().toLowerCase());
} else {
server.getHandle().b(getName().toLowerCase());
}
}
}