|
@@ -14,79 +14,54 @@ import org.bukkit.plugin.Plugin;
|
|
import static org.bukkit.Bukkit.getServer;
|
|
import static org.bukkit.Bukkit.getServer;
|
|
|
|
|
|
public class WorldGuardManager {
|
|
public class WorldGuardManager {
|
|
-
|
|
|
|
private static WorldGuardManager instance;
|
|
private static WorldGuardManager instance;
|
|
- private Plugin worldGuardPluginRef;
|
|
|
|
- private boolean flagsRegistered = false;
|
|
|
|
|
|
+ private WorldGuardPlugin worldGuardPluginRef;
|
|
|
|
|
|
- public WorldGuardManager()
|
|
|
|
- {
|
|
|
|
- instance = this;
|
|
|
|
|
|
+ public static WorldGuardManager getInstance() {
|
|
|
|
+ if(instance == null)
|
|
|
|
+ instance = new WorldGuardManager();
|
|
|
|
|
|
- init();
|
|
|
|
|
|
+ return instance;
|
|
}
|
|
}
|
|
|
|
|
|
- public void init()
|
|
|
|
|
|
+ public WorldGuardManager()
|
|
{
|
|
{
|
|
- if(getWorldGuard() != null)
|
|
|
|
- {
|
|
|
|
- worldGuardPluginRef = getWorldGuard();
|
|
|
|
- registerFlags();
|
|
|
|
- }
|
|
|
|
|
|
+
|
|
}
|
|
}
|
|
|
|
|
|
public boolean hasMainFlag(Player player)
|
|
public boolean hasMainFlag(Player player)
|
|
{
|
|
{
|
|
- //Not sure when we're supposed to know when WorldGuard is loaded
|
|
|
|
- if(!flagsRegistered)
|
|
|
|
- registerFlags();
|
|
|
|
|
|
+ if(player == null)
|
|
|
|
+ return false;
|
|
|
|
|
|
BukkitPlayer localPlayer = BukkitAdapter.adapt(player);
|
|
BukkitPlayer localPlayer = BukkitAdapter.adapt(player);
|
|
com.sk89q.worldedit.util.Location loc = localPlayer.getLocation();
|
|
com.sk89q.worldedit.util.Location loc = localPlayer.getLocation();
|
|
|
|
|
|
- if(flagsRegistered)
|
|
|
|
- {
|
|
|
|
- if(getWorldGuard() != null)
|
|
|
|
- {
|
|
|
|
- //WorldGuardPlugin worldGuard = getWorldGuard();
|
|
|
|
- RegionContainer container = WorldGuard.getInstance().getPlatform().getRegionContainer();
|
|
|
|
- RegionQuery query = container.createQuery();
|
|
|
|
|
|
|
|
- //ApplicableRegionSet set = query.getApplicableRegions(loc);
|
|
|
|
|
|
+ //WorldGuardPlugin worldGuard = getWorldGuard();
|
|
|
|
+ RegionContainer container = WorldGuard.getInstance().getPlatform().getRegionContainer();
|
|
|
|
+ RegionQuery query = container.createQuery();
|
|
|
|
|
|
- return query.testState(loc, WorldGuardPlugin.inst().wrapPlayer(player), WorldGuardFlags.MCMMO_ENABLE_WG_FLAG);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- //Return False if these fail
|
|
|
|
- mcMMO.p.getLogger().severe("Failed to detect WG flags, is WG running properly?");
|
|
|
|
- return false;
|
|
|
|
|
|
+ //ApplicableRegionSet set = query.getApplicableRegions(loc);
|
|
|
|
+
|
|
|
|
+ return query.testState(loc, WorldGuardPlugin.inst().wrapPlayer(player), WorldGuardFlags.MCMMO_ENABLE_WG_FLAG);
|
|
}
|
|
}
|
|
|
|
|
|
public boolean hasXPFlag(Player player)
|
|
public boolean hasXPFlag(Player player)
|
|
{
|
|
{
|
|
- //Not sure when we're supposed to know when WorldGuard is loaded
|
|
|
|
- if(!flagsRegistered)
|
|
|
|
- registerFlags();
|
|
|
|
|
|
+ if(player == null)
|
|
|
|
+ return false;
|
|
|
|
|
|
BukkitPlayer localPlayer = BukkitAdapter.adapt(player);
|
|
BukkitPlayer localPlayer = BukkitAdapter.adapt(player);
|
|
com.sk89q.worldedit.util.Location loc = localPlayer.getLocation();
|
|
com.sk89q.worldedit.util.Location loc = localPlayer.getLocation();
|
|
|
|
|
|
- if(flagsRegistered)
|
|
|
|
- {
|
|
|
|
- if(getWorldGuard() != null)
|
|
|
|
- {
|
|
|
|
- //WorldGuardPlugin worldGuard = getWorldGuard();
|
|
|
|
- RegionContainer container = WorldGuard.getInstance().getPlatform().getRegionContainer();
|
|
|
|
- RegionQuery query = container.createQuery();
|
|
|
|
|
|
+ //WorldGuardPlugin worldGuard = getWorldGuard();
|
|
|
|
+ RegionContainer container = WorldGuard.getInstance().getPlatform().getRegionContainer();
|
|
|
|
+ RegionQuery query = container.createQuery();
|
|
|
|
|
|
- //ApplicableRegionSet set = query.getApplicableRegions(loc);
|
|
|
|
|
|
+ //ApplicableRegionSet set = query.getApplicableRegions(loc);
|
|
|
|
|
|
- return query.testState(loc, WorldGuardPlugin.inst().wrapPlayer(player), WorldGuardFlags.MCMMO_XP_WG_FLAG);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- //Return False if these fail
|
|
|
|
- mcMMO.p.getLogger().severe("Failed to detect WG flags, is WG running properly?");
|
|
|
|
- return false;
|
|
|
|
|
|
+ return query.testState(loc, WorldGuardPlugin.inst().wrapPlayer(player), WorldGuardFlags.MCMMO_XP_WG_FLAG);
|
|
}
|
|
}
|
|
|
|
|
|
private WorldGuardPlugin getWorldGuard() {
|
|
private WorldGuardPlugin getWorldGuard() {
|
|
@@ -97,10 +72,11 @@ public class WorldGuardManager {
|
|
return null; // Maybe you want throw an exception instead
|
|
return null; // Maybe you want throw an exception instead
|
|
}
|
|
}
|
|
|
|
|
|
- return (WorldGuardPlugin) plugin;
|
|
|
|
|
|
+ worldGuardPluginRef = (WorldGuardPlugin) plugin;
|
|
|
|
+ return worldGuardPluginRef;
|
|
}
|
|
}
|
|
|
|
|
|
- private void registerFlags()
|
|
|
|
|
|
+ public void registerFlags()
|
|
{
|
|
{
|
|
if(getWorldGuard() == null)
|
|
if(getWorldGuard() == null)
|
|
return;
|
|
return;
|
|
@@ -108,11 +84,14 @@ public class WorldGuardManager {
|
|
FlagRegistry registry = WorldGuard.getInstance().getFlagRegistry();
|
|
FlagRegistry registry = WorldGuard.getInstance().getFlagRegistry();
|
|
try {
|
|
try {
|
|
// register our flag with the registry
|
|
// register our flag with the registry
|
|
|
|
+ /*registry.register(WorldGuardFlags.MCMMO_ENABLE_WG_FLAG);
|
|
|
|
+ registry.register(WorldGuardFlags.MCMMO_XP_WG_FLAG);*/
|
|
registry.register(WorldGuardFlags.MCMMO_ENABLE_WG_FLAG);
|
|
registry.register(WorldGuardFlags.MCMMO_ENABLE_WG_FLAG);
|
|
registry.register(WorldGuardFlags.MCMMO_XP_WG_FLAG);
|
|
registry.register(WorldGuardFlags.MCMMO_XP_WG_FLAG);
|
|
- flagsRegistered = true;
|
|
|
|
|
|
+ System.out.println("mcMMO has registered WG flags successfully!");
|
|
} catch (FlagConflictException e) {
|
|
} catch (FlagConflictException e) {
|
|
e.printStackTrace();
|
|
e.printStackTrace();
|
|
|
|
+ System.out.println("mcMMO has failed to register WG flags!");
|
|
// some other plugin registered a flag by the same name already.
|
|
// some other plugin registered a flag by the same name already.
|
|
// you may want to re-register with a different name, but this
|
|
// you may want to re-register with a different name, but this
|
|
// could cause issues with saved flags in region files. it's better
|
|
// could cause issues with saved flags in region files. it's better
|
|
@@ -120,7 +99,5 @@ public class WorldGuardManager {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- public static WorldGuardManager getInstance() {
|
|
|
|
- return instance;
|
|
|
|
- }
|
|
|
|
|
|
+
|
|
}
|
|
}
|