forked from LogBlock/LogBlock
Added /lb hide
This commit is contained in:
@@ -5,6 +5,7 @@ import java.sql.DriverManager;
|
|||||||
import java.sql.ResultSet;
|
import java.sql.ResultSet;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
import java.sql.Statement;
|
import java.sql.Statement;
|
||||||
|
import java.util.HashSet;
|
||||||
import java.util.concurrent.LinkedBlockingQueue;
|
import java.util.concurrent.LinkedBlockingQueue;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
|
|
||||||
@@ -14,6 +15,7 @@ import org.bukkit.entity.Player;
|
|||||||
public class Consumer implements Runnable
|
public class Consumer implements Runnable
|
||||||
{
|
{
|
||||||
private LinkedBlockingQueue<BlockRow> bqueue = new LinkedBlockingQueue<BlockRow>();
|
private LinkedBlockingQueue<BlockRow> bqueue = new LinkedBlockingQueue<BlockRow>();
|
||||||
|
private HashSet<Integer> hiddenplayers = new HashSet<Integer>();
|
||||||
private Connection conn = null;
|
private Connection conn = null;
|
||||||
|
|
||||||
public void queueBlock(Player player, Block block, int typeAfter) {
|
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) {
|
public void queueBlock(String playerName, Block block, int typeBefore, int typeAfter, byte data, String signtext, ChestAccess ca) {
|
||||||
if (block == null || typeBefore < 0 || typeAfter < 0)
|
if (block == null || typeBefore < 0 || typeAfter < 0)
|
||||||
return;
|
return;
|
||||||
|
if (hiddenplayers.contains(playerName.hashCode()))
|
||||||
|
return;
|
||||||
String table = LogBlock.config.tables.get(block.getWorld().getName().hashCode());
|
String table = LogBlock.config.tables.get(block.getWorld().getName().hashCode());
|
||||||
if (table == null)
|
if (table == null)
|
||||||
return;
|
return;
|
||||||
@@ -49,6 +53,17 @@ public class Consumer implements Runnable
|
|||||||
return bqueue.size();
|
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() {
|
public void run() {
|
||||||
try {
|
try {
|
||||||
if (conn == null || conn.isClosed())
|
if (conn == null || conn.isClosed())
|
||||||
|
@@ -184,12 +184,20 @@ public class LogBlock extends JavaPlugin
|
|||||||
if (free >= 0) {
|
if (free >= 0) {
|
||||||
player.getInventory().setItem(free, player.getItemInHand());
|
player.getInventory().setItem(free, player.getItemInHand());
|
||||||
player.setItemInHand(new ItemStack(config.toolblockID, 1));
|
player.setItemInHand(new ItemStack(config.toolblockID, 1));
|
||||||
player.sendMessage(ChatColor.GREEN + "Here is your tool.");
|
player.sendMessage(ChatColor.GREEN + "Here's your tool.");
|
||||||
} else
|
} else
|
||||||
player.sendMessage(ChatColor.RED + "You have no empty slot in your inventory");
|
player.sendMessage(ChatColor.RED + "You have no empty slot in your inventory");
|
||||||
}
|
}
|
||||||
} else
|
} else
|
||||||
player.sendMessage(ChatColor.RED + "You aren't allowed to do this.");
|
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")) {
|
} else if (args[0].equalsIgnoreCase("area")) {
|
||||||
if (CheckPermission(player,"logblock.area")) {
|
if (CheckPermission(player,"logblock.area")) {
|
||||||
int radius = config.defaultDist;
|
int radius = config.defaultDist;
|
||||||
@@ -458,6 +466,8 @@ public class LogBlock extends JavaPlugin
|
|||||||
return true;
|
return true;
|
||||||
else if (permission.equals("logblock.area"))
|
else if (permission.equals("logblock.area"))
|
||||||
return player.isOp();
|
return player.isOp();
|
||||||
|
else if (permission.equals("logblock.hide"))
|
||||||
|
return player.isOp();
|
||||||
else if (permission.equals("logblock.rollback"))
|
else if (permission.equals("logblock.rollback"))
|
||||||
return player.isOp();
|
return player.isOp();
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user