summaryrefslogtreecommitdiffstats
path: root/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectPlayerListener.java
diff options
context:
space:
mode:
Diffstat (limited to 'EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectPlayerListener.java')
-rw-r--r--EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectPlayerListener.java78
1 files changed, 51 insertions, 27 deletions
diff --git a/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectPlayerListener.java b/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectPlayerListener.java
index 2497a733d..c75bb6324 100644
--- a/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectPlayerListener.java
+++ b/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectPlayerListener.java
@@ -3,68 +3,92 @@ package com.earth2me.essentials.protect;
import com.earth2me.essentials.Essentials;
import com.earth2me.essentials.User;
import org.bukkit.ChatColor;
+import org.bukkit.block.Block;
import org.bukkit.event.player.PlayerInteractEvent;
+import org.bukkit.event.player.PlayerItemEvent;
import org.bukkit.event.player.PlayerListener;
-import org.bukkit.event.player.PlayerPickupItemEvent;
import org.bukkit.inventory.ItemStack;
public class EssentialsProtectPlayerListener extends PlayerListener
{
private EssentialsProtect parent;
-
+ private int signBlockX;
+ private int signBlockY;
+ private int signBlockZ;
+ private EssentialsProtectData spData = null;
+
public EssentialsProtectPlayerListener(EssentialsProtect parent)
{
Essentials.loadClasses();
this.parent = parent;
}
+ public void initialize()
+ {
+ if (spData != null) return;
+ spData = new EssentialsProtectData();
+ }
+
@Override
public void onPlayerInteract(PlayerInteractEvent event)
{
+ initialize();
if (event.isCancelled()) return;
+ ItemStack item = event.getItem();
User user = User.get(event.getPlayer());
+ Block blockClicked = event.getClickedBlock();
if (EssentialsProtect.playerSettings.get("protect.disable.build") && !user.canBuild())
{
event.setCancelled(true);
return;
}
-
- if (user.isAuthorized("essentials.protect.admin"))
- {
- StringBuilder sb = new StringBuilder();
- boolean first = true;
- for (String owner : EssentialsProtect.getStorage().getOwners(event.getClickedBlock())) {
- if (!first) {
- sb.append(", ");
- }
- first = false;
- sb.append(owner);
- }
- String ownerNames = sb.toString();
- if (ownerNames != null)
- {
- user.sendMessage(ChatColor.GOLD + "[EssentialsProtect] Protection owners: " + ownerNames);
- }
- }
- }
- @Override
- public void onPlayerPickupItem(PlayerPickupItemEvent event)
- {
- if(event.isCancelled()) return;
- ItemStack item = event.getItem().getItemStack();
- User user = User.get(event.getPlayer());
if (EssentialsProtect.checkProtectionItems(EssentialsProtect.usageList, item.getTypeId()) && !user.isAuthorized("essentials.protect.exemptusage"))
{
event.setCancelled(true);
return;
}
+ if (user.isAuthorized("essentials.protect.admin"))
+ {
+ String ownerName = spData.getBlockOwner(user.getWorld().getName(), user.getName(),
+ blockClicked);
+ if (ownerName != null)
+ {
+ user.sendMessage(ChatColor.GOLD + "[EssentialsProtect] Protection owner: "
+ + ownerName);
+ }
+ }
if (EssentialsProtect.onUseAlert.contains(String.valueOf(item.getTypeId())))
{
parent.alert(user, item.getType().toString(), "used: ");
}
+
+ if (item.getTypeId() == 323)
+ {
+ if (EssentialsProtect.genSettings.get("protect.protect.signs"))
+ {
+ if (user.isAuthorized("essentials.protect"))
+ {
+
+ signBlockX = blockClicked.getX();
+ signBlockY = blockClicked.getY();
+ signBlockZ = blockClicked.getZ();
+
+ initialize();
+ spData.insertProtectionIntoDb(user.getWorld().getName(), user.getName(), signBlockX,
+ signBlockY + 1, signBlockZ);
+
+ if (EssentialsProtect.genSettings.get("protect.protect.block-below"))
+ {
+ spData.insertProtectionIntoDb(user.getWorld().getName(), user.getName(), signBlockX,
+ signBlockY, signBlockZ);
+ }
+ }
+ }
+ }
+
}
}