Add worldguard integration

This commit is contained in:
Shevchik 2013-11-22 12:41:17 +04:00
parent 554e8d13cf
commit bafc260459
6 changed files with 42 additions and 16 deletions

BIN
libs/WorldEdit.jar Normal file

Binary file not shown.

BIN
libs/WorldGuard.jar Normal file

Binary file not shown.

View File

@ -28,7 +28,7 @@ import com.comphenix.protocol.ProtocolLibrary;
import com.comphenix.protocol.ProtocolManager;
public class Chairs extends JavaPlugin {
public static ChairEffects chairEffects;
public ChairEffects chairEffects;
public List<ChairBlock> allowedBlocks;
public List<Material> validSigns;
public boolean autoRotate, signCheck, notifyplayer;
@ -39,11 +39,12 @@ public class Chairs extends JavaPlugin {
public int sitMaxHealth;
public int sitHealthPerInterval;
public int sitEffectInterval;
public HashSet<String> disabledRegions = new HashSet<String>();
private File pluginFolder;
private File configFile;
private Logger log;
public PluginManager pm;
public static ChairsIgnoreList ignoreList;
public ChairsIgnoreList ignoreList;
public String msgSitting, msgStanding, msgOccupied, msgNoPerm, msgReloaded, msgDisabled, msgEnabled;
private ProtocolManager protocolManager;
@ -225,7 +226,9 @@ public class Chairs extends JavaPlugin {
notifyplayer = getConfig().getBoolean("notify-player");
invertedStairCheck = getConfig().getBoolean("upside-down-check");
invertedStepCheck = getConfig().getBoolean("upper-step-check");
ignoreIfBlockInHand = getConfig().getBoolean("ignore-if-block-in-hand");
ignoreIfBlockInHand = getConfig().getBoolean("ignore-if-item-in-hand");
disabledRegions = new HashSet<String>(getConfig().getStringList("disabledRegions"));
sitEffectsEnabled = getConfig().getBoolean("sit-effects.enabled", false);
sitEffectInterval = getConfig().getInt("sit-effects.interval",20);
@ -289,17 +292,6 @@ public class Chairs extends JavaPlugin {
logError(e.getMessage());
}
}
ArrayList<String> perms = new ArrayList<String>();
perms.add("chairs.sit");
perms.add("chairs.reload");
perms.add("chairs.self");
perms.add("chairs.sit.health");
for (String s : perms) {
if (pm.getPermission(s) != null) {
pm.removePermission(s);
}
}
}
public void logInfo(String _message) {

View File

@ -205,6 +205,12 @@ public class EventListener implements Listener {
}
return false;
}
//region allowance check
if (!WGHook.isAllowedInRegion(plugin.disabledRegions, block.getLocation()))
{
return false;
}
return true;
}

View File

@ -0,0 +1,27 @@
package com.cnaude.chairs;
import java.util.HashSet;
import java.util.List;
import org.bukkit.Location;
import com.sk89q.worldedit.bukkit.BukkitUtil;
import com.sk89q.worldguard.bukkit.WGBukkit;
public class WGHook {
public static boolean isAllowedInRegion(HashSet<String> disabledRegions, Location location) {
try {
if (disabledRegions.isEmpty()) {return true;}
List<String> aregions = WGBukkit.getRegionManager(location.getWorld()).getApplicableRegionsIDs(BukkitUtil.toVector(location));
for (String region : aregions) {
if (disabledRegions.contains(region)) {
return false;
}
}
} catch (Exception e) {}
return true;
}
}

View File

@ -13,7 +13,7 @@
# upper-step-check: If true then prevent players from sitting on an upper slab.
# seat-occupied-check: Check if seat is already occupied.
# per-item-perms: Enable chairs.sit.[item] permission node. Set to false if you're sitting on every block.
# ignore-if-block-in-hand: Set this true disable sititng if player is holding a block in hand.
# ignore-if-item-in-hand: Set this true disable sititng if player is holding an item in hand.
# ------
allowed-blocks:
- WOOD_STAIRS
@ -35,12 +35,13 @@ auto-rotate: true
max-chair-width: 3
sign-check: false
distance: 2
disabledRegions: []
sitting-height: 0.7
sitting-height-adj: 1.0
notify-player: true
upside-down-check: true
upper-step-check: true
ignore-if-block-in-hand: false
ignore-if-item-in-hand: false
sit-effects:
enabled: false
interval: 20