Added /lb hide

This commit is contained in:
Robin Kupper
2011-04-07 22:28:25 +02:00
parent 9ebc6c3305
commit 52e3964fa1
2 changed files with 26 additions and 1 deletions

View File

@ -5,6 +5,7 @@ import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.HashSet;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.logging.Level;
@ -14,6 +15,7 @@ import org.bukkit.entity.Player;
public class Consumer implements Runnable
{
private LinkedBlockingQueue<BlockRow> bqueue = new LinkedBlockingQueue<BlockRow>();
private HashSet<Integer> hiddenplayers = new HashSet<Integer>();
private Connection conn = null;
public void queueBlock(Player player, Block block, int typeAfter) {
@ -31,6 +33,8 @@ public class Consumer implements Runnable
public void queueBlock(String playerName, Block block, int typeBefore, int typeAfter, byte data, String signtext, ChestAccess ca) {
if (block == null || typeBefore < 0 || typeAfter < 0)
return;
if (hiddenplayers.contains(playerName.hashCode()))
return;
String table = LogBlock.config.tables.get(block.getWorld().getName().hashCode());
if (table == null)
return;
@ -49,6 +53,17 @@ public class Consumer implements Runnable
return bqueue.size();
}
public boolean hide(Player player) {
int hash = player.getName().hashCode();
if (hiddenplayers.contains(hash)) {
hiddenplayers.remove(hash);
return false;
} else {
hiddenplayers.add(hash);
return true;
}
}
public void run() {
try {
if (conn == null || conn.isClosed())

View File

@ -184,12 +184,20 @@ public class LogBlock extends JavaPlugin
if (free >= 0) {
player.getInventory().setItem(free, player.getItemInHand());
player.setItemInHand(new ItemStack(config.toolblockID, 1));
player.sendMessage(ChatColor.GREEN + "Here is your tool.");
player.sendMessage(ChatColor.GREEN + "Here's your tool.");
} else
player.sendMessage(ChatColor.RED + "You have no empty slot in your inventory");
}
} else
player.sendMessage(ChatColor.RED + "You aren't allowed to do this.");
} else if (args[0].equalsIgnoreCase("hide")) {
if (CheckPermission(player, "logblock.hide")) {
if (consumer.hide(player))
player.sendMessage(ChatColor.GREEN + "You are now hided and won't appear in any log. Type '/lb hide' again to unhide");
else
player.sendMessage(ChatColor.GREEN + "You aren't hided anylonger.");
} else
player.sendMessage(ChatColor.RED + "You aren't allowed to do this.");
} else if (args[0].equalsIgnoreCase("area")) {
if (CheckPermission(player,"logblock.area")) {
int radius = config.defaultDist;
@ -458,6 +466,8 @@ public class LogBlock extends JavaPlugin
return true;
else if (permission.equals("logblock.area"))
return player.isOp();
else if (permission.equals("logblock.hide"))
return player.isOp();
else if (permission.equals("logblock.rollback"))
return player.isOp();
}