Added /lb me

This commit is contained in:
Robin Kupper
2011-03-14 00:44:32 +01:00
parent 9d2cee1cd1
commit bb61ceac37
2 changed files with 161 additions and 144 deletions

View File

@@ -107,53 +107,73 @@ public class LogBlock extends JavaPlugin
@Override
public void onDisable() {
if (consumer != null) {
log.info("[LogBlock] Stopping consumer");
consumer.stop();
consumer = null;
}
log.info("LogBlock disabled.");
}
@Override
public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) {
if (cmd.getName().equalsIgnoreCase("lb")) {
try {
if ((sender instanceof Player)) {
if (!cmd.getName().equalsIgnoreCase("lb"))
return false;
if (!(sender instanceof Player)) {
sender.sendMessage("You aren't a player");
return true;
}
Player player = (Player)sender;
Connection conn = getConnection();
if (conn != null) {
String table = getTable(player);
if (table != null) {
if (CheckPermission(player,"logblock.area")) {
if (args.length == 0) {
if (conn == null) {
player.sendMessage(ChatColor.RED + "Can't create SQL connection.");
return true;
} else if (table == null) {
player.sendMessage(ChatColor.RED + "This world isn't logged");
return true;
}
if (args.length == 0)
player.sendMessage(ChatColor.RED + "No argument. Type /lb help for help");
} else if (args[0].equalsIgnoreCase("area")) {
else if (args[0].equalsIgnoreCase("area")) {
if (CheckPermission(player,"logblock.area")) {
int radius = Config.defaultDist;
if (args.length == 2 && isInt(args[1]))
radius = Integer.parseInt(args[1]);
new Thread(new AreaStats(conn, player, radius, table)).start();
} else
player.sendMessage(ChatColor.RED + "You aren't allowed to do this");
} else if (args[0].equalsIgnoreCase("world")) {
if (CheckPermission(player,"logblock.area")) {
new Thread(new AreaStats(conn, player, Short.MAX_VALUE, table)).start();
} else
player.sendMessage(ChatColor.RED + "You aren't allowed to do this");
} else if (args[0].equalsIgnoreCase("player")) {
if (args.length >= 2) {
if (CheckPermission(player,"logblock.area")) {
if (args.length == 2 || args.length == 3) {
int radius = Config.defaultDist;
if (args.length == 3 && isInt(args[2]))
radius = Integer.parseInt(args[2]);
new Thread(new PlayerAreaStats(conn, player, args[1], radius, table)).start();
} else
player.sendMessage(ChatColor.RED + "Usage: /lb player [name] <radius>");
} else
player.sendMessage(ChatColor.RED + "You aren't allowed to do this");
} else if (args[0].equalsIgnoreCase("block")) {
if (args.length >= 2) {
if (Material.matchMaterial(args[1]) != null) {
int type = Material.matchMaterial(args[1]).getId();
if (CheckPermission(player,"logblock.area")) {
if (args.length == 2 || args.length == 3) {
Material mat = Material.matchMaterial(args[1]);
int radius = Config.defaultDist;
if (args.length == 3 && isInt(args[2]))
radius = Integer.parseInt(args[2]);
new Thread(new AreaBlockSearch(conn, player, type, radius, table)).start();
} else
if (mat != null)
new Thread(new AreaBlockSearch(conn, player, mat.getId(), radius, table)).start();
else
player.sendMessage(ChatColor.RED + "Can't find any item like '" + args[1] + "'");
} else
player.sendMessage(ChatColor.RED + "Usage: /lb block [type] <radius>");
} else
player.sendMessage(ChatColor.RED + "You aren't allowed to do this");
} else if (args[0].equalsIgnoreCase("setpos")) {
if (CheckPermission(player,"logblock.rollback")) {
Session session = getSession(player);
Location loc = player.getTargetBlock(null, Integer.MAX_VALUE).getLocation();
if (args.length == 1) {
@@ -176,12 +196,14 @@ public class LogBlock extends JavaPlugin
} else if (args[1].equalsIgnoreCase("2")) {
session.loc2 = loc;
player.sendMessage(ChatColor.GREEN + "Pos 2 set.");
} else
player.sendMessage(ChatColor.RED + "Wrong parameter. Try to use either 1 or 2");
} else
player.sendMessage(ChatColor.RED + "Usage: /lb setpos <1|2>");
} else {
player.sendMessage(ChatColor.RED + "Usage: /lb setpos <1|2>");
}
} else
player.sendMessage(ChatColor.RED + "You aren't allowed to do this");
} else if (args[0].equalsIgnoreCase("rollback")) {
if (CheckPermission(player,"logblock.rollback")) {
if (args.length >= 2) {
int minutes = Config.defaultTime;
if (args[1].equalsIgnoreCase("player")) {
@@ -235,6 +257,13 @@ public class LogBlock extends JavaPlugin
player.sendMessage(ChatColor.RED + "/lb rollback playerarea [name] [radius] <time> <minutes|hours|days>");
player.sendMessage(ChatColor.RED + "/lb rollback cuboid <time> <minutes|hours|days>");
}
} else if (args[0].equalsIgnoreCase("me")) {
if (CheckPermission(player,"logblock.me")) {
new Thread(new PlayerAreaStats(conn, player, player.getName(), Short.MAX_VALUE, table)).start();
} else
player.sendMessage(ChatColor.RED + "You aren't allowed to do this");
} else
player.sendMessage(ChatColor.RED + "You aren't allowed to do this");
} else if (args[0].equalsIgnoreCase("help")) {
player.sendMessage("<EFBFBD>dLogBlock Commands:");
player.sendMessage("<EFBFBD>d/lb area <radius>");
@@ -245,20 +274,7 @@ public class LogBlock extends JavaPlugin
player.sendMessage("<EFBFBD>d/lb rollback [rollback mode]");
} else
player.sendMessage(ChatColor.RED + "Wrong argument. Type /lb help for help");
} else
player.sendMessage(ChatColor.RED + "You aren't allowed to do this");
} else
player.sendMessage(ChatColor.RED + "This world isn't logged");
} else
player.sendMessage(ChatColor.RED + "Can't create SQL connection.");
} else
sender.sendMessage("You aren't a player");
} catch (Exception ex) {
sender.sendMessage(ChatColor.RED + "An error occured. Check you syntax:");
}
return true;
} else
return false;
}
private Connection getConnection()

View File

@@ -123,6 +123,7 @@ public class Rollback implements Runnable
int changes = edits.size();
int rolledBack = 0;
player.sendMessage(ChatColor.GREEN + "" + changes + " Changes found.");
player.sendMessage(ChatColor.GOLD + "This may take " + (int)Math.ceil(changes/1000) + " seconds.");
int counter = 0;
Edit e = edits.poll();
while (e != null)