mirror of
https://github.com/TotalFreedomMC/TF-WorldGuardExtraFlagsPlugin.git
synced 2024-12-30 19:14:34 +00:00
Moved soft dependencies to own classes and fixed AsyncWorldEdit incompatibility
This commit is contained in:
parent
f2e1dc8f61
commit
5903d2769b
9 changed files with 117 additions and 45 deletions
|
@ -5,21 +5,20 @@ import org.bukkit.event.entity.EntityToggleGlideEvent;
|
||||||
import org.bukkit.plugin.Plugin;
|
import org.bukkit.plugin.Plugin;
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
|
|
||||||
import com.earth2me.essentials.Essentials;
|
|
||||||
import com.sk89q.worldedit.bukkit.WorldEditPlugin;
|
import com.sk89q.worldedit.bukkit.WorldEditPlugin;
|
||||||
import com.sk89q.worldguard.bukkit.WorldGuardPlugin;
|
import com.sk89q.worldguard.bukkit.WorldGuardPlugin;
|
||||||
|
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import net.elseland.xikage.MythicMobs.MythicMobs;
|
import net.goldtreeservers.worldguardextraflags.essentials.EssentialsUtils;
|
||||||
import net.goldtreeservers.worldguardextraflags.fawe.FAWEUtils;
|
import net.goldtreeservers.worldguardextraflags.fawe.FAWEUtils;
|
||||||
import net.goldtreeservers.worldguardextraflags.flags.Flags;
|
import net.goldtreeservers.worldguardextraflags.flags.Flags;
|
||||||
import net.goldtreeservers.worldguardextraflags.listeners.BlockListener;
|
import net.goldtreeservers.worldguardextraflags.listeners.BlockListener;
|
||||||
import net.goldtreeservers.worldguardextraflags.listeners.EntityListener;
|
import net.goldtreeservers.worldguardextraflags.listeners.EntityListener;
|
||||||
import net.goldtreeservers.worldguardextraflags.listeners.EntityListenerOnePointNine;
|
import net.goldtreeservers.worldguardextraflags.listeners.EntityListenerOnePointNine;
|
||||||
import net.goldtreeservers.worldguardextraflags.listeners.EssentialsListener;
|
|
||||||
import net.goldtreeservers.worldguardextraflags.listeners.PlayerListener;
|
import net.goldtreeservers.worldguardextraflags.listeners.PlayerListener;
|
||||||
import net.goldtreeservers.worldguardextraflags.listeners.WorldEditListener;
|
import net.goldtreeservers.worldguardextraflags.listeners.WorldEditListener;
|
||||||
import net.goldtreeservers.worldguardextraflags.listeners.WorldListener;
|
import net.goldtreeservers.worldguardextraflags.listeners.WorldListener;
|
||||||
|
import net.goldtreeservers.worldguardextraflags.mb.MythicMobsUtils;
|
||||||
import net.goldtreeservers.worldguardextraflags.utils.WorldUtils;
|
import net.goldtreeservers.worldguardextraflags.utils.WorldUtils;
|
||||||
import net.goldtreeservers.worldguardextraflags.wg.handlers.BlockedEffectsFlagHandler;
|
import net.goldtreeservers.worldguardextraflags.wg.handlers.BlockedEffectsFlagHandler;
|
||||||
import net.goldtreeservers.worldguardextraflags.wg.handlers.CommandOnEntryFlagHandler;
|
import net.goldtreeservers.worldguardextraflags.wg.handlers.CommandOnEntryFlagHandler;
|
||||||
|
@ -41,9 +40,9 @@ public class WorldGuardExtraFlagsPlugin extends JavaPlugin
|
||||||
|
|
||||||
@Getter private static WorldGuardPlugin worldGuardPlugin;
|
@Getter private static WorldGuardPlugin worldGuardPlugin;
|
||||||
@Getter private static WorldEditPlugin worldEditPlugin;
|
@Getter private static WorldEditPlugin worldEditPlugin;
|
||||||
@Getter private static Essentials essentialsPlugin;
|
|
||||||
@Getter private static MythicMobs mythicMobsPlugin;
|
|
||||||
|
|
||||||
|
@Getter private static boolean essentialsPluginEnabled;
|
||||||
|
@Getter private static boolean mythicMobsPluginEnabled;
|
||||||
@Getter private static boolean fastAsyncWorldEditPluginEnabled;
|
@Getter private static boolean fastAsyncWorldEditPluginEnabled;
|
||||||
|
|
||||||
public WorldGuardExtraFlagsPlugin()
|
public WorldGuardExtraFlagsPlugin()
|
||||||
|
@ -88,19 +87,50 @@ public class WorldGuardExtraFlagsPlugin extends JavaPlugin
|
||||||
WorldGuardExtraFlagsPlugin.worldGuardPlugin.getFlagRegistry().register(Flags.JOIN_LOCATION);
|
WorldGuardExtraFlagsPlugin.worldGuardPlugin.getFlagRegistry().register(Flags.JOIN_LOCATION);
|
||||||
|
|
||||||
//Soft dependencies, due to some compatibility issues or add flags related to a plugin
|
//Soft dependencies, due to some compatibility issues or add flags related to a plugin
|
||||||
Plugin essentialsPlugin = this.getServer().getPluginManager().getPlugin("Essentials");
|
try
|
||||||
if (essentialsPlugin != null)
|
|
||||||
{
|
{
|
||||||
WorldGuardExtraFlagsPlugin.essentialsPlugin = (Essentials)essentialsPlugin;
|
Plugin essentialsPlugin = WorldGuardExtraFlagsPlugin.getPlugin().getServer().getPluginManager().getPlugin("Essentials");
|
||||||
|
if (essentialsPlugin != null)
|
||||||
|
{
|
||||||
|
EssentialsUtils.onLoad(essentialsPlugin);
|
||||||
|
|
||||||
|
WorldGuardExtraFlagsPlugin.essentialsPluginEnabled = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch(Throwable ex)
|
||||||
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Plugin mythicMobsPlugin = this.getServer().getPluginManager().getPlugin("MythicMobs");
|
try
|
||||||
if (mythicMobsPlugin != null)
|
|
||||||
{
|
{
|
||||||
WorldGuardExtraFlagsPlugin.mythicMobsPlugin = (MythicMobs)mythicMobsPlugin;
|
Plugin mythicMobsPlugin = this.getServer().getPluginManager().getPlugin("MythicMobs");
|
||||||
|
if (mythicMobsPlugin != null)
|
||||||
|
{
|
||||||
|
MythicMobsUtils.onLoad(mythicMobsPlugin);
|
||||||
|
|
||||||
|
WorldGuardExtraFlagsPlugin.mythicMobsPluginEnabled = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch(Throwable ex)
|
||||||
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
WorldGuardExtraFlagsPlugin.fastAsyncWorldEditPluginEnabled = this.getServer().getPluginManager().isPluginEnabled("FastAsyncWorldEdit");
|
try
|
||||||
|
{
|
||||||
|
Plugin fastAsyncWorldEditPlugin = this.getServer().getPluginManager().getPlugin("FastAsyncWorldEdit");
|
||||||
|
if (fastAsyncWorldEditPlugin != null)
|
||||||
|
{
|
||||||
|
FAWEUtils.onLoad(fastAsyncWorldEditPlugin);
|
||||||
|
|
||||||
|
WorldGuardExtraFlagsPlugin.fastAsyncWorldEditPluginEnabled = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch(Throwable ex)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -137,18 +167,18 @@ public class WorldGuardExtraFlagsPlugin extends JavaPlugin
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (WorldGuardExtraFlagsPlugin.fastAsyncWorldEditPluginEnabled)
|
if (WorldGuardExtraFlagsPlugin.isFastAsyncWorldEditPluginEnabled())
|
||||||
{
|
{
|
||||||
FAWEUtils.registerFAWE();
|
FAWEUtils.onEnable();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
WorldGuardExtraFlagsPlugin.worldEditPlugin.getWorldEdit().getEventBus().register(new WorldEditListener());
|
WorldGuardExtraFlagsPlugin.getWorldEditPlugin().getWorldEdit().getEventBus().register(new WorldEditListener());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (WorldGuardExtraFlagsPlugin.isEssentialsEnable())
|
if (WorldGuardExtraFlagsPlugin.isEssentialsPluginEnabled())
|
||||||
{
|
{
|
||||||
this.getServer().getPluginManager().registerEvents(new EssentialsListener(), this);
|
EssentialsUtils.onEnable();
|
||||||
}
|
}
|
||||||
|
|
||||||
for(World world : this.getServer().getWorlds())
|
for(World world : this.getServer().getWorlds())
|
||||||
|
@ -156,14 +186,4 @@ public class WorldGuardExtraFlagsPlugin extends JavaPlugin
|
||||||
WorldUtils.doUnloadChunkFlagCheck(world);
|
WorldUtils.doUnloadChunkFlagCheck(world);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean isEssentialsEnable()
|
|
||||||
{
|
|
||||||
return WorldGuardExtraFlagsPlugin.essentialsPlugin != null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static boolean isMythicMobsPluginEnabled()
|
|
||||||
{
|
|
||||||
return WorldGuardExtraFlagsPlugin.essentialsPlugin != null;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,24 @@
|
||||||
|
package net.goldtreeservers.worldguardextraflags.essentials;
|
||||||
|
|
||||||
|
import org.bukkit.plugin.Plugin;
|
||||||
|
|
||||||
|
import com.earth2me.essentials.Essentials;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
import net.goldtreeservers.worldguardextraflags.WorldGuardExtraFlagsPlugin;
|
||||||
|
import net.goldtreeservers.worldguardextraflags.listeners.EssentialsListener;
|
||||||
|
|
||||||
|
public class EssentialsUtils
|
||||||
|
{
|
||||||
|
@Getter private static Essentials plugin;
|
||||||
|
|
||||||
|
public static void onLoad(Plugin essentialsPlugin)
|
||||||
|
{
|
||||||
|
EssentialsUtils.plugin = (Essentials)essentialsPlugin;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void onEnable()
|
||||||
|
{
|
||||||
|
WorldGuardExtraFlagsPlugin.getPlugin().getServer().getPluginManager().registerEvents(new EssentialsListener(), WorldGuardExtraFlagsPlugin.getPlugin());
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,10 +1,21 @@
|
||||||
package net.goldtreeservers.worldguardextraflags.fawe;
|
package net.goldtreeservers.worldguardextraflags.fawe;
|
||||||
|
|
||||||
|
import org.bukkit.plugin.Plugin;
|
||||||
|
|
||||||
import com.boydti.fawe.FaweAPI;
|
import com.boydti.fawe.FaweAPI;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
|
||||||
public class FAWEUtils
|
public class FAWEUtils
|
||||||
{
|
{
|
||||||
public static void registerFAWE()
|
@Getter private static Plugin plugin;
|
||||||
|
|
||||||
|
public static void onLoad(Plugin plugin)
|
||||||
|
{
|
||||||
|
FAWEUtils.plugin = plugin;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void onEnable()
|
||||||
{
|
{
|
||||||
FaweAPI.addMaskManager(new FaweWorldEditFlagMaskManager());
|
FaweAPI.addMaskManager(new FaweWorldEditFlagMaskManager());
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,6 +26,7 @@ import com.sk89q.worldguard.protection.ApplicableRegionSet;
|
||||||
import com.sk89q.worldguard.protection.flags.StateFlag.State;
|
import com.sk89q.worldguard.protection.flags.StateFlag.State;
|
||||||
|
|
||||||
import net.goldtreeservers.worldguardextraflags.WorldGuardExtraFlagsPlugin;
|
import net.goldtreeservers.worldguardextraflags.WorldGuardExtraFlagsPlugin;
|
||||||
|
import net.goldtreeservers.worldguardextraflags.essentials.EssentialsUtils;
|
||||||
import net.goldtreeservers.worldguardextraflags.flags.Flags;
|
import net.goldtreeservers.worldguardextraflags.flags.Flags;
|
||||||
import net.goldtreeservers.worldguardextraflags.wg.WorldGuardUtils;
|
import net.goldtreeservers.worldguardextraflags.wg.WorldGuardUtils;
|
||||||
import net.goldtreeservers.worldguardextraflags.wg.handlers.FlyFlagHandler;
|
import net.goldtreeservers.worldguardextraflags.wg.handlers.FlyFlagHandler;
|
||||||
|
@ -188,9 +189,9 @@ public class PlayerListener implements Listener
|
||||||
{
|
{
|
||||||
Player player = event.getPlayer();
|
Player player = event.getPlayer();
|
||||||
|
|
||||||
if (WorldGuardExtraFlagsPlugin.isEssentialsEnable()) //Essentials how dare u do this to me!?!
|
if (WorldGuardExtraFlagsPlugin.isEssentialsPluginEnabled()) //Essentials how dare u do this to me!?!
|
||||||
{
|
{
|
||||||
if (player.getGameMode() != GameMode.CREATIVE && !WorldGuardExtraFlagsPlugin.getEssentialsPlugin().getUser(player).isAuthorized("essentials.fly"))
|
if (player.getGameMode() != GameMode.CREATIVE && !EssentialsUtils.getPlugin().getUser(player).isAuthorized("essentials.fly"))
|
||||||
{
|
{
|
||||||
//Essentials now turns off flight, fuck him
|
//Essentials now turns off flight, fuck him
|
||||||
Boolean value = WorldGuardExtraFlagsPlugin.getWorldGuardPlugin().getSessionManager().get(player).getHandler(FlyFlagHandler.class).getCurrentValue();
|
Boolean value = WorldGuardExtraFlagsPlugin.getWorldGuardPlugin().getSessionManager().get(player).getHandler(FlyFlagHandler.class).getCurrentValue();
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
package net.goldtreeservers.worldguardextraflags.listeners;
|
package net.goldtreeservers.worldguardextraflags.listeners;
|
||||||
|
|
||||||
import com.sk89q.worldedit.bukkit.BukkitWorld;
|
|
||||||
import com.sk89q.worldedit.entity.Player;
|
import com.sk89q.worldedit.entity.Player;
|
||||||
import com.sk89q.worldedit.event.extent.EditSessionEvent;
|
import com.sk89q.worldedit.event.extent.EditSessionEvent;
|
||||||
import com.sk89q.worldedit.extension.platform.Actor;
|
import com.sk89q.worldedit.extension.platform.Actor;
|
||||||
|
@ -17,7 +16,7 @@ public class WorldEditListener
|
||||||
Actor actor = event.getActor();
|
Actor actor = event.getActor();
|
||||||
if (actor != null && actor.isPlayer())
|
if (actor != null && actor.isPlayer())
|
||||||
{
|
{
|
||||||
event.setExtent(new WorldEditFlagHandler((BukkitWorld)event.getWorld(), event.getExtent(), (Player)actor));
|
event.setExtent(new WorldEditFlagHandler(event.getWorld(), event.getExtent(), (Player)actor));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,16 @@
|
||||||
|
package net.goldtreeservers.worldguardextraflags.mb;
|
||||||
|
|
||||||
|
import org.bukkit.plugin.Plugin;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
import net.elseland.xikage.MythicMobs.MythicMobs;
|
||||||
|
|
||||||
|
public class MythicMobsUtils
|
||||||
|
{
|
||||||
|
@Getter private static MythicMobs mythicMobsPlugin;
|
||||||
|
|
||||||
|
public static void onLoad(Plugin mythicMobsPlugin)
|
||||||
|
{
|
||||||
|
MythicMobsUtils.mythicMobsPlugin = (MythicMobs)mythicMobsPlugin;
|
||||||
|
}
|
||||||
|
}
|
|
@ -4,10 +4,10 @@ import com.sk89q.worldedit.Vector;
|
||||||
import com.sk89q.worldedit.WorldEditException;
|
import com.sk89q.worldedit.WorldEditException;
|
||||||
import com.sk89q.worldedit.blocks.BaseBlock;
|
import com.sk89q.worldedit.blocks.BaseBlock;
|
||||||
import com.sk89q.worldedit.bukkit.BukkitUtil;
|
import com.sk89q.worldedit.bukkit.BukkitUtil;
|
||||||
import com.sk89q.worldedit.bukkit.BukkitWorld;
|
|
||||||
import com.sk89q.worldedit.entity.Player;
|
import com.sk89q.worldedit.entity.Player;
|
||||||
import com.sk89q.worldedit.extent.AbstractDelegateExtent;
|
import com.sk89q.worldedit.extent.AbstractDelegateExtent;
|
||||||
import com.sk89q.worldedit.extent.Extent;
|
import com.sk89q.worldedit.extent.Extent;
|
||||||
|
import com.sk89q.worldedit.world.World;
|
||||||
import com.sk89q.worldguard.protection.ApplicableRegionSet;
|
import com.sk89q.worldguard.protection.ApplicableRegionSet;
|
||||||
import com.sk89q.worldguard.protection.flags.StateFlag.State;
|
import com.sk89q.worldguard.protection.flags.StateFlag.State;
|
||||||
|
|
||||||
|
@ -17,24 +17,24 @@ import net.goldtreeservers.worldguardextraflags.wg.WorldGuardUtils;
|
||||||
|
|
||||||
public class WorldEditFlagHandler extends AbstractDelegateExtent
|
public class WorldEditFlagHandler extends AbstractDelegateExtent
|
||||||
{
|
{
|
||||||
private final BukkitWorld world;
|
private final org.bukkit.World world;
|
||||||
private final Player player;
|
private final org.bukkit.entity.Player player;
|
||||||
|
|
||||||
public WorldEditFlagHandler(BukkitWorld world, Extent extent, Player player)
|
public WorldEditFlagHandler(World world, Extent extent, Player player)
|
||||||
{
|
{
|
||||||
super(extent);
|
super(extent);
|
||||||
|
|
||||||
this.world = world;
|
this.world = WorldGuardExtraFlagsPlugin.getPlugin().getServer().getWorld(world.getName());
|
||||||
this.player = player;
|
this.player = WorldGuardExtraFlagsPlugin.getPlugin().getServer().getPlayer(player.getUniqueId());
|
||||||
}
|
}
|
||||||
|
|
||||||
//TODO: Prebuild list
|
//TODO: Prebuild list
|
||||||
@Override
|
@Override
|
||||||
public boolean setBlock(Vector location, BaseBlock block) throws WorldEditException
|
public boolean setBlock(Vector location, BaseBlock block) throws WorldEditException
|
||||||
{
|
{
|
||||||
ApplicableRegionSet regions = WorldGuardExtraFlagsPlugin.getWorldGuardPlugin().getRegionContainer().createQuery().getApplicableRegions(BukkitUtil.toLocation(this.world.getWorld(), location));
|
ApplicableRegionSet regions = WorldGuardExtraFlagsPlugin.getWorldGuardPlugin().getRegionContainer().createQuery().getApplicableRegions(BukkitUtil.toLocation(this.world, location));
|
||||||
|
|
||||||
State state = WorldGuardUtils.queryState(WorldGuardExtraFlagsPlugin.getPlugin().getServer().getPlayer(this.player.getUniqueId()), this.world.getWorld(), regions.getRegions(), Flags.WORLDEDIT);
|
State state = WorldGuardUtils.queryState(this.player, this.world, regions.getRegions(), Flags.WORLDEDIT);
|
||||||
if (state != State.DENY)
|
if (state != State.DENY)
|
||||||
{
|
{
|
||||||
return super.setBlock(location, block);
|
return super.setBlock(location, block);
|
||||||
|
|
|
@ -17,6 +17,7 @@ import com.sk89q.worldguard.session.handler.Handler;
|
||||||
|
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import net.goldtreeservers.worldguardextraflags.WorldGuardExtraFlagsPlugin;
|
import net.goldtreeservers.worldguardextraflags.WorldGuardExtraFlagsPlugin;
|
||||||
|
import net.goldtreeservers.worldguardextraflags.essentials.EssentialsUtils;
|
||||||
import net.goldtreeservers.worldguardextraflags.flags.Flags;
|
import net.goldtreeservers.worldguardextraflags.flags.Flags;
|
||||||
import net.goldtreeservers.worldguardextraflags.wg.WorldGuardUtils;
|
import net.goldtreeservers.worldguardextraflags.wg.WorldGuardUtils;
|
||||||
|
|
||||||
|
@ -67,9 +68,9 @@ public class GodmodeFlagHandler extends Handler
|
||||||
this.isGodmodeEnabled = null;
|
this.isGodmodeEnabled = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (WorldGuardExtraFlagsPlugin.isEssentialsEnable())
|
if (WorldGuardExtraFlagsPlugin.isEssentialsPluginEnabled())
|
||||||
{
|
{
|
||||||
User user = WorldGuardExtraFlagsPlugin.getEssentialsPlugin().getUser(player);
|
User user = EssentialsUtils.getPlugin().getUser(player);
|
||||||
|
|
||||||
if (this.isGodmodeEnabled != null)
|
if (this.isGodmodeEnabled != null)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
name: WorldGuardExtraFlags
|
name: WorldGuardExtraFlags
|
||||||
version: 3.0.0
|
version: 3.0.1
|
||||||
description: Adds more flags to WorldGuard to help manage your server easily!
|
description: Adds more flags to WorldGuard to help manage your server easily!
|
||||||
author: isokissa3
|
author: isokissa3
|
||||||
website: https://goldtreevers.net
|
website: https://goldtreevers.net
|
||||||
|
|
Loading…
Reference in a new issue