mirror of
https://github.com/TotalFreedomMC/TF-WorldGuardExtraFlagsPlugin.git
synced 2024-06-25 20:50:37 +00:00
Clean up & bug fixes
This commit is contained in:
parent
e77ad889e8
commit
40177f5e05
147
pom.xml
147
pom.xml
|
@ -1,74 +1,77 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>net.goldtreeservers</groupId>
|
||||
<artifactId>worldguardextraflags</artifactId>
|
||||
<version>2.12.2</version>
|
||||
<name>WorldGuardExtraFlags</name>
|
||||
|
||||
<build>
|
||||
<finalName>WorldGuardExtraFlagsPlugin</finalName>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<version>3.1</version>
|
||||
<configuration>
|
||||
<source>1.8</source>
|
||||
<target>1.8</target>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
<repositories>
|
||||
<repository>
|
||||
<id>spigot-repo</id>
|
||||
<url>https://hub.spigotmc.org/nexus/content/repositories/snapshots/</url>
|
||||
</repository>
|
||||
<repository>
|
||||
<id>sk89q-repo</id>
|
||||
<url>https://maven.sk89q.com/repo/</url>
|
||||
</repository>
|
||||
<repository>
|
||||
<id>ess-repo</id>
|
||||
<url>http://repo.ess3.net/content/groups/essentials</url>
|
||||
</repository>
|
||||
</repositories>
|
||||
|
||||
<dependencies>
|
||||
<!--Spigot API-->
|
||||
<dependency>
|
||||
<groupId>org.spigotmc</groupId>
|
||||
<artifactId>spigot-api</artifactId>
|
||||
<version>1.11.2-R0.1-SNAPSHOT</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<!--WorldGuard -->
|
||||
<dependency>
|
||||
<groupId>com.sk89q.worldguard</groupId>
|
||||
<artifactId>worldguard-legacy</artifactId>
|
||||
<version>6.1.3-SNAPSHOT</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.connorlinfoot</groupId>
|
||||
<artifactId>TitleAPI</artifactId>
|
||||
<version>1.7.4</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.elseland.xikage</groupId>
|
||||
<artifactId>MythicMobs</artifactId>
|
||||
<version>2.4.5</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.boydti</groupId>
|
||||
<artifactId>fawe-api</artifactId>
|
||||
<version>3.5.1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.ess3</groupId>
|
||||
<artifactId>Essentials</artifactId>
|
||||
<version>2.13-SNAPSHOT</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>net.goldtreeservers</groupId>
|
||||
<artifactId>worldguardextraflags</artifactId>
|
||||
<version>2.12.2</version>
|
||||
<name>WorldGuardExtraFlags</name>
|
||||
<build>
|
||||
<finalName>WorldGuardExtraFlagsPlugin</finalName>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<version>3.6.1</version>
|
||||
<configuration>
|
||||
<source>1.8</source>
|
||||
<target>1.8</target>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
<repositories>
|
||||
<repository>
|
||||
<id>spigot-repo</id>
|
||||
<url>https://hub.spigotmc.org/nexus/content/repositories/snapshots/</url>
|
||||
</repository>
|
||||
<repository>
|
||||
<id>sk89q-repo</id>
|
||||
<url>https://maven.sk89q.com/repo/</url>
|
||||
</repository>
|
||||
<repository>
|
||||
<id>ess-repo</id>
|
||||
<url>http://repo.ess3.net/content/groups/essentials</url>
|
||||
</repository>
|
||||
<repository>
|
||||
<id>empcraft</id>
|
||||
<url>http://ci.athion.net/job/FastAsyncWorldEdit/ws/mvn/</url>
|
||||
</repository>
|
||||
</repositories>
|
||||
<dependencies>
|
||||
<!--Spigot API-->
|
||||
<dependency>
|
||||
<groupId>org.spigotmc</groupId>
|
||||
<artifactId>spigot-api</artifactId>
|
||||
<version>1.12-R0.1-SNAPSHOT</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<!--WorldGuard -->
|
||||
<dependency>
|
||||
<groupId>com.sk89q.worldguard</groupId>
|
||||
<artifactId>worldguard-legacy</artifactId>
|
||||
<version>6.1.3-SNAPSHOT</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.elseland.xikage</groupId>
|
||||
<artifactId>MythicMobs</artifactId>
|
||||
<version>2.4.5</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.boydti</groupId>
|
||||
<artifactId>fawe-api</artifactId>
|
||||
<version>17.07.12-6b6f285-750-13.7.8</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.ess3</groupId>
|
||||
<artifactId>Essentials</artifactId>
|
||||
<version>2.13-SNAPSHOT</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.projectlombok</groupId>
|
||||
<artifactId>lombok</artifactId>
|
||||
<version>1.16.18</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
|
@ -1,46 +1,37 @@
|
|||
package net.goldtreeservers.worldguardextraflags;
|
||||
|
||||
import java.awt.Color;
|
||||
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.entity.EntityToggleGlideEvent;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
import org.bukkit.potion.PotionEffect;
|
||||
import org.bukkit.potion.PotionEffectType;
|
||||
|
||||
import com.earth2me.essentials.Essentials;
|
||||
import com.sk89q.worldedit.bukkit.BukkitUtil;
|
||||
import com.sk89q.worldedit.bukkit.WorldEditPlugin;
|
||||
import com.sk89q.worldguard.bukkit.WorldGuardPlugin;
|
||||
import com.sk89q.worldguard.protection.flags.BooleanFlag;
|
||||
import com.sk89q.worldguard.protection.flags.CommandStringFlag;
|
||||
import com.sk89q.worldguard.protection.flags.DoubleFlag;
|
||||
import com.sk89q.worldguard.protection.flags.LocationFlag;
|
||||
import com.sk89q.worldguard.protection.flags.SetFlag;
|
||||
import com.sk89q.worldguard.protection.flags.StateFlag;
|
||||
import com.sk89q.worldguard.protection.flags.StringFlag;
|
||||
import com.sk89q.worldguard.protection.flags.StateFlag.State;
|
||||
import com.sk89q.worldguard.protection.regions.ProtectedRegion;
|
||||
|
||||
import net.goldtreeservers.worldguardextraflags.flags.BlockedEffectsFlag;
|
||||
import net.goldtreeservers.worldguardextraflags.flags.CommandOnEntryFlag;
|
||||
import net.goldtreeservers.worldguardextraflags.flags.CommandOnExitFlag;
|
||||
import net.goldtreeservers.worldguardextraflags.flags.ConsoleCommandOnEntryFlag;
|
||||
import net.goldtreeservers.worldguardextraflags.flags.ConsoleCommandOnExitFlag;
|
||||
import net.goldtreeservers.worldguardextraflags.flags.CustomSetFlag;
|
||||
import lombok.Getter;
|
||||
import net.goldtreeservers.worldguardextraflags.flags.FlyFlag;
|
||||
import net.goldtreeservers.worldguardextraflags.flags.GiveEffectsFlag;
|
||||
import net.goldtreeservers.worldguardextraflags.flags.GlideFlag;
|
||||
import net.goldtreeservers.worldguardextraflags.flags.GodmodeFlag;
|
||||
import net.goldtreeservers.worldguardextraflags.flags.MaterialFlag;
|
||||
import net.goldtreeservers.worldguardextraflags.flags.PlaySoundsFlag;
|
||||
import net.goldtreeservers.worldguardextraflags.flags.PotionEffectFlag;
|
||||
import net.goldtreeservers.worldguardextraflags.flags.PotionEffectTypeFlag;
|
||||
import net.goldtreeservers.worldguardextraflags.flags.SoundDataFlag;
|
||||
import net.goldtreeservers.worldguardextraflags.flags.TeleportOnEntryFlag;
|
||||
import net.goldtreeservers.worldguardextraflags.flags.TeleportOnExitFlag;
|
||||
import net.goldtreeservers.worldguardextraflags.flags.WalkSpeedFlag;
|
||||
import net.goldtreeservers.worldguardextraflags.flags.handlers.BlockedEffectsFlag;
|
||||
import net.goldtreeservers.worldguardextraflags.flags.handlers.CommandOnEntryFlag;
|
||||
import net.goldtreeservers.worldguardextraflags.flags.handlers.CommandOnExitFlag;
|
||||
import net.goldtreeservers.worldguardextraflags.flags.handlers.ConsoleCommandOnEntryFlag;
|
||||
import net.goldtreeservers.worldguardextraflags.flags.handlers.ConsoleCommandOnExitFlag;
|
||||
import net.goldtreeservers.worldguardextraflags.flags.handlers.GiveEffectsFlag;
|
||||
import net.goldtreeservers.worldguardextraflags.flags.handlers.PlaySoundsFlag;
|
||||
import net.goldtreeservers.worldguardextraflags.flags.handlers.TeleportOnEntryFlag;
|
||||
import net.goldtreeservers.worldguardextraflags.flags.handlers.TeleportOnExitFlag;
|
||||
import net.goldtreeservers.worldguardextraflags.listeners.BlockListener;
|
||||
import net.goldtreeservers.worldguardextraflags.listeners.EntityListener;
|
||||
import net.goldtreeservers.worldguardextraflags.listeners.EntityListenerOnePointNine;
|
||||
|
@ -48,48 +39,21 @@ import net.goldtreeservers.worldguardextraflags.listeners.EssentialsListener;
|
|||
import net.goldtreeservers.worldguardextraflags.listeners.PlayerListener;
|
||||
import net.goldtreeservers.worldguardextraflags.listeners.WorldEditListener;
|
||||
import net.goldtreeservers.worldguardextraflags.listeners.WorldListener;
|
||||
import net.goldtreeservers.worldguardextraflags.utils.FlagUtils;
|
||||
import net.goldtreeservers.worldguardextraflags.utils.PluginUtils;
|
||||
import net.goldtreeservers.worldguardextraflags.utils.SoundData;
|
||||
|
||||
public class WorldGuardExtraFlagsPlugin extends JavaPlugin
|
||||
{
|
||||
private static WorldGuardExtraFlagsPlugin plugin;
|
||||
private static WorldGuardPlugin worldGuardPlugin;
|
||||
private static WorldEditPlugin worldEditPlugin;
|
||||
private static Essentials essentialsPlugin;
|
||||
private static boolean mythicMobsEnabled;
|
||||
private static boolean supportFrostwalker;
|
||||
private static boolean fastAsyncWorldEditEnabled;
|
||||
private static boolean essentialsEnabled;
|
||||
|
||||
public final static LocationFlag teleportOnEntry = new LocationFlag("teleport-on-entry");
|
||||
public final static LocationFlag teleportOnExit = new LocationFlag("teleport-on-exit");
|
||||
public final static CustomSetFlag<String> commandOnEntry = new CustomSetFlag<String>("command-on-entry", new CommandStringFlag(null));
|
||||
public final static CustomSetFlag<String> commandOnExit = new CustomSetFlag<String>("command-on-exit", new CommandStringFlag(null));
|
||||
public final static CustomSetFlag<String> consoleCommandOnEntry = new CustomSetFlag<String>("console-command-on-entry", new CommandStringFlag(null));
|
||||
public final static CustomSetFlag<String> consoleCommandOnExit = new CustomSetFlag<String>("console-command-on-exit", new CommandStringFlag(null));
|
||||
public final static DoubleFlag walkSpeed = new DoubleFlag("walk-speed");
|
||||
public final static BooleanFlag keepInventory = new BooleanFlag("keep-inventory");
|
||||
public final static BooleanFlag keepExp = new BooleanFlag("keep-exp");
|
||||
public final static StringFlag chatPrefix = new StringFlag("chat-prefix");
|
||||
public final static StringFlag chatSuffix = new StringFlag("chat-suffix");
|
||||
public final static SetFlag<PotionEffectType> blockedEffects = new SetFlag<PotionEffectType>("blocked-effects", new PotionEffectTypeFlag(null));
|
||||
public final static StateFlag godmode = new StateFlag("godmode", false);
|
||||
public final static LocationFlag respawnLocation = new LocationFlag("respawn-location");
|
||||
public final static StateFlag worldEdit = new StateFlag("worldedit", true);
|
||||
public final static SetFlag<PotionEffect> giveEffects = new SetFlag<PotionEffect>("give-effects", new PotionEffectFlag(null));
|
||||
public final static StateFlag fly = new StateFlag("fly", false);
|
||||
public final static SetFlag<SoundData> playSounds = new SetFlag<SoundData>("play-sounds", new SoundDataFlag(null));
|
||||
public final static StateFlag mythicMobsEggs = new StateFlag("mythicmobs-eggs", true);
|
||||
public final static StateFlag frostwalker = new StateFlag("frostwalker", true);
|
||||
public final static StateFlag netherPortals = new StateFlag("nether-portals", true);
|
||||
public final static SetFlag<Material> allowBlockPlace = new SetFlag<Material>("allow-block-place", new MaterialFlag(null));
|
||||
public final static SetFlag<Material> denyBlockPlace = new SetFlag<Material>("deny-block-place", new MaterialFlag(null));
|
||||
public final static SetFlag<Material> allowBlockBreak = new SetFlag<Material>("allow-block-break", new MaterialFlag(null));
|
||||
public final static SetFlag<Material> denyBlockBreak = new SetFlag<Material>("deny-block-break", new MaterialFlag(null));
|
||||
public final static StateFlag glide = new StateFlag("glide", false);
|
||||
public final static StateFlag chunkUnload = new StateFlag("chunk-unload", true);
|
||||
public final static StateFlag itemDurability = new StateFlag("item-durability", true);
|
||||
@Getter private static WorldGuardExtraFlagsPlugin plugin;
|
||||
@Getter private static WorldGuardPlugin worldGuardPlugin;
|
||||
@Getter private static WorldEditPlugin worldEditPlugin;
|
||||
@Getter private static Essentials essentialsPlugin;
|
||||
|
||||
@Getter private static boolean supportsMobEffectColors;
|
||||
@Getter private static boolean supportFrostwalker;
|
||||
@Getter private static boolean supportsStopSound;
|
||||
@Getter private static boolean mythicMobsEnabled;
|
||||
@Getter private static boolean fastAsyncWorldEditEnabled;
|
||||
|
||||
public WorldGuardExtraFlagsPlugin()
|
||||
{
|
||||
|
@ -102,9 +66,24 @@ public class WorldGuardExtraFlagsPlugin extends JavaPlugin
|
|||
WorldGuardExtraFlagsPlugin.supportFrostwalker = true;
|
||||
}
|
||||
}
|
||||
catch (NoSuchFieldError ignored)
|
||||
catch (Throwable ignored)
|
||||
{
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
WorldGuardExtraFlagsPlugin.supportsMobEffectColors = PotionEffect.class.getDeclaredMethod("getColor", Color.class) != null;
|
||||
}
|
||||
catch (Throwable ignored)
|
||||
{
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
WorldGuardExtraFlagsPlugin.supportsStopSound = Player.class.getDeclaredMethod("stopSound", Color.class) != null;
|
||||
}
|
||||
catch (Throwable ignored)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -114,34 +93,34 @@ public class WorldGuardExtraFlagsPlugin extends JavaPlugin
|
|||
WorldGuardExtraFlagsPlugin.worldEditPlugin = (WorldEditPlugin) this.getServer().getPluginManager().getPlugin("WorldEdit");
|
||||
|
||||
WorldGuardExtraFlagsPlugin.worldGuardPlugin = (WorldGuardPlugin) this.getServer().getPluginManager().getPlugin("WorldGuard");
|
||||
WorldGuardExtraFlagsPlugin.worldGuardPlugin.getFlagRegistry().register(WorldGuardExtraFlagsPlugin.teleportOnEntry);
|
||||
WorldGuardExtraFlagsPlugin.worldGuardPlugin.getFlagRegistry().register(WorldGuardExtraFlagsPlugin.teleportOnExit);
|
||||
WorldGuardExtraFlagsPlugin.worldGuardPlugin.getFlagRegistry().register(WorldGuardExtraFlagsPlugin.commandOnEntry);
|
||||
WorldGuardExtraFlagsPlugin.worldGuardPlugin.getFlagRegistry().register(WorldGuardExtraFlagsPlugin.commandOnExit);
|
||||
WorldGuardExtraFlagsPlugin.worldGuardPlugin.getFlagRegistry().register(WorldGuardExtraFlagsPlugin.consoleCommandOnEntry);
|
||||
WorldGuardExtraFlagsPlugin.worldGuardPlugin.getFlagRegistry().register(WorldGuardExtraFlagsPlugin.consoleCommandOnExit);
|
||||
WorldGuardExtraFlagsPlugin.worldGuardPlugin.getFlagRegistry().register(WorldGuardExtraFlagsPlugin.walkSpeed);
|
||||
WorldGuardExtraFlagsPlugin.worldGuardPlugin.getFlagRegistry().register(WorldGuardExtraFlagsPlugin.keepInventory);
|
||||
WorldGuardExtraFlagsPlugin.worldGuardPlugin.getFlagRegistry().register(WorldGuardExtraFlagsPlugin.keepExp);
|
||||
WorldGuardExtraFlagsPlugin.worldGuardPlugin.getFlagRegistry().register(WorldGuardExtraFlagsPlugin.chatPrefix);
|
||||
WorldGuardExtraFlagsPlugin.worldGuardPlugin.getFlagRegistry().register(WorldGuardExtraFlagsPlugin.chatSuffix);
|
||||
WorldGuardExtraFlagsPlugin.worldGuardPlugin.getFlagRegistry().register(WorldGuardExtraFlagsPlugin.blockedEffects);
|
||||
WorldGuardExtraFlagsPlugin.worldGuardPlugin.getFlagRegistry().register(WorldGuardExtraFlagsPlugin.godmode);
|
||||
WorldGuardExtraFlagsPlugin.worldGuardPlugin.getFlagRegistry().register(WorldGuardExtraFlagsPlugin.respawnLocation);
|
||||
WorldGuardExtraFlagsPlugin.worldGuardPlugin.getFlagRegistry().register(WorldGuardExtraFlagsPlugin.worldEdit);
|
||||
WorldGuardExtraFlagsPlugin.worldGuardPlugin.getFlagRegistry().register(WorldGuardExtraFlagsPlugin.giveEffects);
|
||||
WorldGuardExtraFlagsPlugin.worldGuardPlugin.getFlagRegistry().register(WorldGuardExtraFlagsPlugin.fly);
|
||||
WorldGuardExtraFlagsPlugin.worldGuardPlugin.getFlagRegistry().register(WorldGuardExtraFlagsPlugin.playSounds);
|
||||
WorldGuardExtraFlagsPlugin.worldGuardPlugin.getFlagRegistry().register(WorldGuardExtraFlagsPlugin.mythicMobsEggs);
|
||||
WorldGuardExtraFlagsPlugin.worldGuardPlugin.getFlagRegistry().register(WorldGuardExtraFlagsPlugin.frostwalker);
|
||||
WorldGuardExtraFlagsPlugin.worldGuardPlugin.getFlagRegistry().register(WorldGuardExtraFlagsPlugin.netherPortals);
|
||||
WorldGuardExtraFlagsPlugin.worldGuardPlugin.getFlagRegistry().register(WorldGuardExtraFlagsPlugin.allowBlockPlace);
|
||||
WorldGuardExtraFlagsPlugin.worldGuardPlugin.getFlagRegistry().register(WorldGuardExtraFlagsPlugin.denyBlockPlace);
|
||||
WorldGuardExtraFlagsPlugin.worldGuardPlugin.getFlagRegistry().register(WorldGuardExtraFlagsPlugin.allowBlockBreak);
|
||||
WorldGuardExtraFlagsPlugin.worldGuardPlugin.getFlagRegistry().register(WorldGuardExtraFlagsPlugin.denyBlockBreak);
|
||||
WorldGuardExtraFlagsPlugin.worldGuardPlugin.getFlagRegistry().register(WorldGuardExtraFlagsPlugin.glide);
|
||||
WorldGuardExtraFlagsPlugin.worldGuardPlugin.getFlagRegistry().register(WorldGuardExtraFlagsPlugin.chunkUnload);
|
||||
WorldGuardExtraFlagsPlugin.worldGuardPlugin.getFlagRegistry().register(WorldGuardExtraFlagsPlugin.itemDurability);
|
||||
WorldGuardExtraFlagsPlugin.worldGuardPlugin.getFlagRegistry().register(FlagUtils.TELEPORT_ON_ENTRY);
|
||||
WorldGuardExtraFlagsPlugin.worldGuardPlugin.getFlagRegistry().register(FlagUtils.TELEPORT_ON_EXIT);
|
||||
WorldGuardExtraFlagsPlugin.worldGuardPlugin.getFlagRegistry().register(FlagUtils.COMMAND_ON_ENTRY);
|
||||
WorldGuardExtraFlagsPlugin.worldGuardPlugin.getFlagRegistry().register(FlagUtils.COMMAND_ON_EXIT);
|
||||
WorldGuardExtraFlagsPlugin.worldGuardPlugin.getFlagRegistry().register(FlagUtils.CONSOLE_COMMAND_ON_ENTRY);
|
||||
WorldGuardExtraFlagsPlugin.worldGuardPlugin.getFlagRegistry().register(FlagUtils.CONSOLE_COMMAND_ON_EXIT);
|
||||
WorldGuardExtraFlagsPlugin.worldGuardPlugin.getFlagRegistry().register(FlagUtils.WALK_SPEED);
|
||||
WorldGuardExtraFlagsPlugin.worldGuardPlugin.getFlagRegistry().register(FlagUtils.KEEP_INVENTORY);
|
||||
WorldGuardExtraFlagsPlugin.worldGuardPlugin.getFlagRegistry().register(FlagUtils.KEEP_EXP);
|
||||
WorldGuardExtraFlagsPlugin.worldGuardPlugin.getFlagRegistry().register(FlagUtils.CHAT_PREFIX);
|
||||
WorldGuardExtraFlagsPlugin.worldGuardPlugin.getFlagRegistry().register(FlagUtils.CHAT_SUFFIX);
|
||||
WorldGuardExtraFlagsPlugin.worldGuardPlugin.getFlagRegistry().register(FlagUtils.BLOCKED_EFFECTS);
|
||||
WorldGuardExtraFlagsPlugin.worldGuardPlugin.getFlagRegistry().register(FlagUtils.GODMODE);
|
||||
WorldGuardExtraFlagsPlugin.worldGuardPlugin.getFlagRegistry().register(FlagUtils.RESPAWN_LOCATION);
|
||||
WorldGuardExtraFlagsPlugin.worldGuardPlugin.getFlagRegistry().register(FlagUtils.WORLDEDIT);
|
||||
WorldGuardExtraFlagsPlugin.worldGuardPlugin.getFlagRegistry().register(FlagUtils.GIVE_EFFECTS);
|
||||
WorldGuardExtraFlagsPlugin.worldGuardPlugin.getFlagRegistry().register(FlagUtils.FLY);
|
||||
WorldGuardExtraFlagsPlugin.worldGuardPlugin.getFlagRegistry().register(FlagUtils.PLAY_SOUNDS);
|
||||
WorldGuardExtraFlagsPlugin.worldGuardPlugin.getFlagRegistry().register(FlagUtils.MYTHICMOB_EGGS);
|
||||
WorldGuardExtraFlagsPlugin.worldGuardPlugin.getFlagRegistry().register(FlagUtils.FROSTWALKER);
|
||||
WorldGuardExtraFlagsPlugin.worldGuardPlugin.getFlagRegistry().register(FlagUtils.NETHER_PORTALS);
|
||||
WorldGuardExtraFlagsPlugin.worldGuardPlugin.getFlagRegistry().register(FlagUtils.ALLOW_BLOCK_PLACE);
|
||||
WorldGuardExtraFlagsPlugin.worldGuardPlugin.getFlagRegistry().register(FlagUtils.DENY_BLOCK_PLACE);
|
||||
WorldGuardExtraFlagsPlugin.worldGuardPlugin.getFlagRegistry().register(FlagUtils.ALLOW_BLOCK_BREAK);
|
||||
WorldGuardExtraFlagsPlugin.worldGuardPlugin.getFlagRegistry().register(FlagUtils.DENY_BLOCK_BREAK);
|
||||
WorldGuardExtraFlagsPlugin.worldGuardPlugin.getFlagRegistry().register(FlagUtils.GLIDE);
|
||||
WorldGuardExtraFlagsPlugin.worldGuardPlugin.getFlagRegistry().register(FlagUtils.CHUNK_UNLOAD);
|
||||
WorldGuardExtraFlagsPlugin.worldGuardPlugin.getFlagRegistry().register(FlagUtils.ITEM_DURABILITY);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -183,9 +162,9 @@ public class WorldGuardExtraFlagsPlugin extends JavaPlugin
|
|||
{
|
||||
WorldGuardExtraFlagsPlugin.essentialsPlugin = (Essentials)essentialsPlugin;
|
||||
}
|
||||
|
||||
WorldGuardExtraFlagsPlugin.mythicMobsEnabled = this.getServer().getPluginManager().isPluginEnabled("MythicMobs");
|
||||
WorldGuardExtraFlagsPlugin.fastAsyncWorldEditEnabled = this.getServer().getPluginManager().isPluginEnabled("FastAsyncWorldEdit");
|
||||
WorldGuardExtraFlagsPlugin.essentialsEnabled = this.getServer().getPluginManager().isPluginEnabled("Essentials");
|
||||
|
||||
if (WorldGuardExtraFlagsPlugin.fastAsyncWorldEditEnabled)
|
||||
{
|
||||
|
@ -196,7 +175,7 @@ public class WorldGuardExtraFlagsPlugin extends JavaPlugin
|
|||
WorldGuardExtraFlagsPlugin.worldEditPlugin.getWorldEdit().getEventBus().register(new WorldEditListener());
|
||||
}
|
||||
|
||||
if (WorldGuardExtraFlagsPlugin.essentialsEnabled)
|
||||
if (WorldGuardExtraFlagsPlugin.isEssentialsEnable())
|
||||
{
|
||||
this.getServer().getPluginManager().registerEvents(new EssentialsListener(), this);
|
||||
}
|
||||
|
@ -207,53 +186,18 @@ public class WorldGuardExtraFlagsPlugin extends JavaPlugin
|
|||
}
|
||||
}
|
||||
|
||||
public static WorldGuardExtraFlagsPlugin getPlugin()
|
||||
public static boolean isEssentialsEnable()
|
||||
{
|
||||
return WorldGuardExtraFlagsPlugin.plugin;
|
||||
}
|
||||
|
||||
public static WorldGuardPlugin getWorldGuard()
|
||||
{
|
||||
return WorldGuardExtraFlagsPlugin.worldGuardPlugin;
|
||||
}
|
||||
|
||||
public static WorldEditPlugin getWorldEditPlugin()
|
||||
{
|
||||
return WorldGuardExtraFlagsPlugin.worldEditPlugin;
|
||||
}
|
||||
|
||||
public static boolean isMythicMobsEnabled()
|
||||
{
|
||||
return WorldGuardExtraFlagsPlugin.mythicMobsEnabled;
|
||||
}
|
||||
|
||||
public static boolean isSupportingFrostwalker()
|
||||
{
|
||||
return WorldGuardExtraFlagsPlugin.supportFrostwalker;
|
||||
}
|
||||
|
||||
public static boolean isFastAsyncWorldEditEnabled()
|
||||
{
|
||||
return WorldGuardExtraFlagsPlugin.fastAsyncWorldEditEnabled;
|
||||
}
|
||||
|
||||
public static boolean isEssentialsEnabled()
|
||||
{
|
||||
return WorldGuardExtraFlagsPlugin.essentialsEnabled;
|
||||
}
|
||||
|
||||
public static Essentials getEssentialsPlugin()
|
||||
{
|
||||
return WorldGuardExtraFlagsPlugin.essentialsPlugin;
|
||||
return WorldGuardExtraFlagsPlugin.essentialsPlugin != null;
|
||||
}
|
||||
|
||||
public static void doUnloadChunkFlagWorldCheck(World world)
|
||||
{
|
||||
for (ProtectedRegion region : WorldGuardExtraFlagsPlugin.getWorldGuard().getRegionManager(world).getRegions().values())
|
||||
for (ProtectedRegion region : WorldGuardExtraFlagsPlugin.worldGuardPlugin.getRegionManager(world).getRegions().values())
|
||||
{
|
||||
if (region.getFlag(WorldGuardExtraFlagsPlugin.chunkUnload) == State.DENY)
|
||||
if (region.getFlag(FlagUtils.CHUNK_UNLOAD) == State.DENY)
|
||||
{
|
||||
System.out.println("Loading chunks for region " + region.getId() + " located in " + world.getName());
|
||||
WorldGuardExtraFlagsPlugin.getPlugin().getLogger().info("Loading chunks for region " + region.getId() + " located in " + world.getName() + " due to chunk-unload flag being deny");
|
||||
|
||||
Location min = BukkitUtil.toLocation(world, region.getMinimumPoint());
|
||||
Location max = BukkitUtil.toLocation(world, region.getMaximumPoint());
|
||||
|
|
|
@ -1,51 +0,0 @@
|
|||
package net.goldtreeservers.worldguardextraflags.flags;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.potion.PotionEffectType;
|
||||
|
||||
import com.sk89q.worldguard.protection.ApplicableRegionSet;
|
||||
import com.sk89q.worldguard.session.Session;
|
||||
import com.sk89q.worldguard.session.handler.Handler;
|
||||
|
||||
import net.goldtreeservers.worldguardextraflags.WorldGuardExtraFlagsPlugin;
|
||||
|
||||
public class BlockedEffectsFlag extends Handler
|
||||
{
|
||||
public static final Factory FACTORY = new Factory();
|
||||
public static class Factory extends Handler.Factory<BlockedEffectsFlag>
|
||||
{
|
||||
@Override
|
||||
public BlockedEffectsFlag create(Session session)
|
||||
{
|
||||
return new BlockedEffectsFlag(session);
|
||||
}
|
||||
}
|
||||
|
||||
protected BlockedEffectsFlag(Session session)
|
||||
{
|
||||
super(session);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void tick(Player player, ApplicableRegionSet set)
|
||||
{
|
||||
if (!this.getSession().getManager().hasBypass(player, player.getWorld()))
|
||||
{
|
||||
for(Set<PotionEffectType> potionEffects : set.queryAllValues(WorldGuardExtraFlagsPlugin.getWorldGuard().wrapPlayer(player), WorldGuardExtraFlagsPlugin.blockedEffects))
|
||||
{
|
||||
if (potionEffects != null)
|
||||
{
|
||||
for(PotionEffectType potionEffect : potionEffects)
|
||||
{
|
||||
if (potionEffect != null)
|
||||
{
|
||||
player.removePotionEffect(potionEffect);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,23 +0,0 @@
|
|||
package net.goldtreeservers.worldguardextraflags.flags;
|
||||
|
||||
import com.sk89q.worldguard.protection.flags.FlagContext;
|
||||
import com.sk89q.worldguard.protection.flags.InvalidFlagFormat;
|
||||
import com.sk89q.worldguard.protection.flags.StringFlag;
|
||||
|
||||
public class CaseForcedStringFlag extends StringFlag
|
||||
{
|
||||
private final boolean upperCase;
|
||||
|
||||
public CaseForcedStringFlag(String name, boolean upperCase)
|
||||
{
|
||||
super(name);
|
||||
|
||||
this.upperCase = upperCase;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String parseInput(FlagContext context) throws InvalidFlagFormat
|
||||
{
|
||||
return this.upperCase ? super.parseInput(context).toUpperCase() : super.parseInput(context).toLowerCase();
|
||||
}
|
||||
}
|
|
@ -1,73 +0,0 @@
|
|||
package net.goldtreeservers.worldguardextraflags.flags;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import com.sk89q.worldguard.protection.ApplicableRegionSet;
|
||||
import com.sk89q.worldguard.protection.regions.ProtectedRegion;
|
||||
import com.sk89q.worldguard.session.MoveType;
|
||||
import com.sk89q.worldguard.session.Session;
|
||||
import com.sk89q.worldguard.session.handler.Handler;
|
||||
|
||||
import net.goldtreeservers.worldguardextraflags.WorldGuardExtraFlagsPlugin;
|
||||
|
||||
public class CommandOnEntryFlag extends Handler
|
||||
{
|
||||
public static final Factory FACTORY = new Factory();
|
||||
public static class Factory extends Handler.Factory<CommandOnEntryFlag>
|
||||
{
|
||||
@Override
|
||||
public CommandOnEntryFlag create(Session session)
|
||||
{
|
||||
return new CommandOnEntryFlag(session);
|
||||
}
|
||||
}
|
||||
|
||||
protected CommandOnEntryFlag(Session session)
|
||||
{
|
||||
super(session);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final void initialize(Player player, Location current, ApplicableRegionSet set)
|
||||
{
|
||||
for(ProtectedRegion region : set)
|
||||
{
|
||||
this.runCommands(region.getFlag(WorldGuardExtraFlagsPlugin.commandOnEntry), player);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCrossBoundary(Player player, Location from, Location to, ApplicableRegionSet toSet, Set<ProtectedRegion> entered, Set<ProtectedRegion> exited, MoveType moveType)
|
||||
{
|
||||
for(ProtectedRegion region : entered)
|
||||
{
|
||||
this.runCommands(region.getFlag(WorldGuardExtraFlagsPlugin.commandOnEntry), player);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public void runCommands(Set<String> commands, Player player)
|
||||
{
|
||||
if (commands != null)
|
||||
{
|
||||
for(String command : commands)
|
||||
{
|
||||
boolean isOp = player.isOp();
|
||||
|
||||
try
|
||||
{
|
||||
player.setOp(true);
|
||||
WorldGuardExtraFlagsPlugin.getPlugin().getServer().dispatchCommand(player, command.substring(1).replace("%username%", player.getName()));
|
||||
}
|
||||
finally
|
||||
{
|
||||
player.setOp(isOp);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,60 +0,0 @@
|
|||
package net.goldtreeservers.worldguardextraflags.flags;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import com.sk89q.worldguard.protection.ApplicableRegionSet;
|
||||
import com.sk89q.worldguard.protection.regions.ProtectedRegion;
|
||||
import com.sk89q.worldguard.session.MoveType;
|
||||
import com.sk89q.worldguard.session.Session;
|
||||
import com.sk89q.worldguard.session.handler.Handler;
|
||||
|
||||
import net.goldtreeservers.worldguardextraflags.WorldGuardExtraFlagsPlugin;
|
||||
|
||||
public class CommandOnExitFlag extends Handler
|
||||
{
|
||||
public static final Factory FACTORY = new Factory();
|
||||
public static class Factory extends Handler.Factory<CommandOnExitFlag>
|
||||
{
|
||||
@Override
|
||||
public CommandOnExitFlag create(Session session)
|
||||
{
|
||||
return new CommandOnExitFlag(session);
|
||||
}
|
||||
}
|
||||
|
||||
protected CommandOnExitFlag(Session session)
|
||||
{
|
||||
super(session);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCrossBoundary(Player player, Location from, Location to, ApplicableRegionSet toSet, Set<ProtectedRegion> entered, Set<ProtectedRegion> exited, MoveType moveType)
|
||||
{
|
||||
for(ProtectedRegion region : exited)
|
||||
{
|
||||
Set<String> commands = region.getFlag(WorldGuardExtraFlagsPlugin.commandOnExit);
|
||||
if (commands != null)
|
||||
{
|
||||
for(String command : commands)
|
||||
{
|
||||
boolean isOp = player.isOp();
|
||||
|
||||
try
|
||||
{
|
||||
player.setOp(true);
|
||||
WorldGuardExtraFlagsPlugin.getPlugin().getServer().dispatchCommand(player, command.substring(1).replace("%username%", player.getName()));
|
||||
}
|
||||
finally
|
||||
{
|
||||
player.setOp(isOp);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
|
@ -1,63 +0,0 @@
|
|||
package net.goldtreeservers.worldguardextraflags.flags;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import com.sk89q.worldguard.protection.ApplicableRegionSet;
|
||||
import com.sk89q.worldguard.protection.regions.ProtectedRegion;
|
||||
import com.sk89q.worldguard.session.MoveType;
|
||||
import com.sk89q.worldguard.session.Session;
|
||||
import com.sk89q.worldguard.session.handler.Handler;
|
||||
|
||||
import net.goldtreeservers.worldguardextraflags.WorldGuardExtraFlagsPlugin;
|
||||
|
||||
public class ConsoleCommandOnEntryFlag extends Handler
|
||||
{
|
||||
public static final Factory FACTORY = new Factory();
|
||||
public static class Factory extends Handler.Factory<ConsoleCommandOnEntryFlag>
|
||||
{
|
||||
@Override
|
||||
public ConsoleCommandOnEntryFlag create(Session session)
|
||||
{
|
||||
return new ConsoleCommandOnEntryFlag(session);
|
||||
}
|
||||
}
|
||||
|
||||
protected ConsoleCommandOnEntryFlag(Session session)
|
||||
{
|
||||
super(session);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final void initialize(Player player, Location current, ApplicableRegionSet set)
|
||||
{
|
||||
for(ProtectedRegion region : set)
|
||||
{
|
||||
this.runCommands(region.getFlag(WorldGuardExtraFlagsPlugin.consoleCommandOnEntry), player);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCrossBoundary(Player player, Location from, Location to, ApplicableRegionSet toSet, Set<ProtectedRegion> entered, Set<ProtectedRegion> exited, MoveType moveType)
|
||||
{
|
||||
for(ProtectedRegion region : entered)
|
||||
{
|
||||
this.runCommands(region.getFlag(WorldGuardExtraFlagsPlugin.consoleCommandOnEntry), player);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public void runCommands(Set<String> commands, Player player)
|
||||
{
|
||||
if (commands != null)
|
||||
{
|
||||
for(String command : commands)
|
||||
{
|
||||
WorldGuardExtraFlagsPlugin.getPlugin().getServer().dispatchCommand(WorldGuardExtraFlagsPlugin.getPlugin().getServer().getConsoleSender(), command.substring(1).replace("%username%", player.getName()));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,49 +0,0 @@
|
|||
package net.goldtreeservers.worldguardextraflags.flags;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import com.sk89q.worldguard.protection.ApplicableRegionSet;
|
||||
import com.sk89q.worldguard.protection.regions.ProtectedRegion;
|
||||
import com.sk89q.worldguard.session.MoveType;
|
||||
import com.sk89q.worldguard.session.Session;
|
||||
import com.sk89q.worldguard.session.handler.Handler;
|
||||
|
||||
import net.goldtreeservers.worldguardextraflags.WorldGuardExtraFlagsPlugin;
|
||||
|
||||
public class ConsoleCommandOnExitFlag extends Handler
|
||||
{
|
||||
public static final Factory FACTORY = new Factory();
|
||||
public static class Factory extends Handler.Factory<ConsoleCommandOnExitFlag>
|
||||
{
|
||||
@Override
|
||||
public ConsoleCommandOnExitFlag create(Session session)
|
||||
{
|
||||
return new ConsoleCommandOnExitFlag(session);
|
||||
}
|
||||
}
|
||||
|
||||
protected ConsoleCommandOnExitFlag(Session session)
|
||||
{
|
||||
super(session);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCrossBoundary(Player player, Location from, Location to, ApplicableRegionSet toSet, Set<ProtectedRegion> entered, Set<ProtectedRegion> exited, MoveType moveType)
|
||||
{
|
||||
for(ProtectedRegion region : exited)
|
||||
{
|
||||
Set<String> commands = region.getFlag(WorldGuardExtraFlagsPlugin.consoleCommandOnExit);
|
||||
if (commands != null)
|
||||
{
|
||||
for(String command : commands)
|
||||
{
|
||||
WorldGuardExtraFlagsPlugin.getPlugin().getServer().dispatchCommand(WorldGuardExtraFlagsPlugin.getPlugin().getServer().getConsoleSender(), command.substring(1).replace("%username%", player.getName()));
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
|
@ -11,7 +11,9 @@ import com.sk89q.worldguard.session.Session;
|
|||
import com.sk89q.worldguard.session.handler.FlagValueChangeHandler;
|
||||
import com.sk89q.worldguard.session.handler.Handler;
|
||||
|
||||
import net.goldtreeservers.worldguardextraflags.WorldGuardExtraFlagsPlugin;
|
||||
import lombok.Getter;
|
||||
import net.goldtreeservers.worldguardextraflags.utils.FlagUtils;
|
||||
import net.goldtreeservers.worldguardextraflags.utils.WorldGuardUtils;
|
||||
|
||||
public class FlyFlag extends FlagValueChangeHandler<State>
|
||||
{
|
||||
|
@ -24,41 +26,39 @@ public class FlyFlag extends FlagValueChangeHandler<State>
|
|||
return new FlyFlag(session);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Getter private Boolean currentValue;
|
||||
private Boolean originalFly;
|
||||
private Boolean currentValue;
|
||||
|
||||
protected FlyFlag(Session session)
|
||||
{
|
||||
super(session, WorldGuardExtraFlagsPlugin.fly);
|
||||
super(session, FlagUtils.FLY);
|
||||
}
|
||||
|
||||
private void updateFly(Player player, State newValue, World world)
|
||||
{
|
||||
if (!this.getSession().getManager().hasBypass(player, world))
|
||||
if (!WorldGuardUtils.hasBypass(player) && newValue != null)
|
||||
{
|
||||
this.currentValue = newValue == null ? null : newValue == State.ALLOW ? true : false;
|
||||
boolean value = (newValue == State.ALLOW ? true : false);
|
||||
|
||||
if (this.currentValue != null)
|
||||
{
|
||||
if (player.getAllowFlight() != this.currentValue)
|
||||
{
|
||||
if (this.originalFly == null)
|
||||
{
|
||||
this.originalFly = player.getAllowFlight();
|
||||
}
|
||||
|
||||
player.setAllowFlight(this.currentValue);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (this.originalFly != null)
|
||||
{
|
||||
player.setAllowFlight(this.originalFly);
|
||||
this.originalFly = null;
|
||||
}
|
||||
}
|
||||
if (player.getAllowFlight() != value)
|
||||
{
|
||||
if (this.originalFly == null)
|
||||
{
|
||||
this.originalFly = player.getAllowFlight();
|
||||
}
|
||||
|
||||
player.setAllowFlight(value);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (this.originalFly != null)
|
||||
{
|
||||
player.setAllowFlight(this.originalFly);
|
||||
|
||||
this.originalFly = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -72,6 +72,7 @@ public class FlyFlag extends FlagValueChangeHandler<State>
|
|||
protected boolean onSetValue(Player player, Location from, Location to, ApplicableRegionSet toSet, State currentValue, State lastValue, MoveType moveType)
|
||||
{
|
||||
this.updateFly(player, currentValue, to.getWorld());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -79,6 +80,7 @@ public class FlyFlag extends FlagValueChangeHandler<State>
|
|||
protected boolean onAbsentValue(Player player, Location from, Location to, ApplicableRegionSet toSet, State lastValue, MoveType moveType)
|
||||
{
|
||||
this.updateFly(player, null, player.getWorld());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -92,9 +94,4 @@ public class FlyFlag extends FlagValueChangeHandler<State>
|
|||
|
||||
return true;
|
||||
}
|
||||
|
||||
public Boolean getFlyStatys()
|
||||
{
|
||||
return this.currentValue;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,178 +0,0 @@
|
|||
package net.goldtreeservers.worldguardextraflags.flags;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.potion.PotionEffect;
|
||||
import org.bukkit.potion.PotionEffectType;
|
||||
|
||||
import com.sk89q.worldguard.protection.ApplicableRegionSet;
|
||||
import com.sk89q.worldguard.protection.regions.ProtectedRegion;
|
||||
import com.sk89q.worldguard.session.MoveType;
|
||||
import com.sk89q.worldguard.session.Session;
|
||||
import com.sk89q.worldguard.session.handler.Handler;
|
||||
|
||||
import net.goldtreeservers.worldguardextraflags.WorldGuardExtraFlagsPlugin;
|
||||
|
||||
public class GiveEffectsFlag extends Handler
|
||||
{
|
||||
public static final Factory FACTORY = new Factory();
|
||||
public static class Factory extends Handler.Factory<GiveEffectsFlag>
|
||||
{
|
||||
@Override
|
||||
public GiveEffectsFlag create(Session session)
|
||||
{
|
||||
return new GiveEffectsFlag(session);
|
||||
}
|
||||
}
|
||||
|
||||
private HashMap<String, PotionEffect> originalPotionEffects = new HashMap<String, PotionEffect>();
|
||||
private HashSet<PotionEffectType> effectsGiven = new HashSet<PotionEffectType>();
|
||||
|
||||
protected GiveEffectsFlag(Session session)
|
||||
{
|
||||
super(session);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCrossBoundary(Player player, Location from, Location to, ApplicableRegionSet toSet, Set<ProtectedRegion> entered, Set<ProtectedRegion> exited, MoveType moveType)
|
||||
{
|
||||
for(ProtectedRegion enterd : entered)
|
||||
{
|
||||
Set<PotionEffect> potionEffects = enterd.getFlag(WorldGuardExtraFlagsPlugin.giveEffects);
|
||||
if (potionEffects != null)
|
||||
{
|
||||
for (PotionEffect potionEffect : potionEffects)
|
||||
{
|
||||
if (potionEffect != null)
|
||||
{
|
||||
if (player.hasPotionEffect(potionEffect.getType()))
|
||||
{
|
||||
if (!this.originalPotionEffects.containsKey(potionEffect.getType().getName()))
|
||||
{
|
||||
for(PotionEffect currentPotionEffect : player.getActivePotionEffects())
|
||||
{
|
||||
if (currentPotionEffect.getType().getName().equals(potionEffect.getType().getName()))
|
||||
{
|
||||
this.originalPotionEffects.put(potionEffect.getType().getName(), currentPotionEffect);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
player.removePotionEffect(potionEffect.getType());
|
||||
}
|
||||
|
||||
this.effectsGiven.add(potionEffect.getType());
|
||||
player.addPotionEffect(potionEffect);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for(ProtectedRegion exitd : exited)
|
||||
{
|
||||
Set<PotionEffect> potionEffects = exitd.getFlag(WorldGuardExtraFlagsPlugin.giveEffects);
|
||||
if (potionEffects != null)
|
||||
{
|
||||
for(PotionEffect potionEffect : potionEffects)
|
||||
{
|
||||
if (potionEffect != null)
|
||||
{
|
||||
this.effectsGiven.remove(potionEffect.getType());
|
||||
player.removePotionEffect(potionEffect.getType());
|
||||
|
||||
PotionEffect oldPotionEffect = this.originalPotionEffects.remove(potionEffect.getType().getName());
|
||||
if (oldPotionEffect != null)
|
||||
{
|
||||
player.addPotionEffect(oldPotionEffect);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void tick(Player player, ApplicableRegionSet set)
|
||||
{
|
||||
if (this.originalPotionEffects != null)
|
||||
{
|
||||
for(PotionEffect oldPotionEffect : this.originalPotionEffects.values().toArray(new PotionEffect[0]))
|
||||
{
|
||||
this.originalPotionEffects.remove(oldPotionEffect);
|
||||
this.originalPotionEffects.put(oldPotionEffect.getType().getName(), new PotionEffect(oldPotionEffect.getType(), oldPotionEffect.getDuration() - 20, oldPotionEffect.getAmplifier(), oldPotionEffect.isAmbient(), oldPotionEffect.hasParticles()));
|
||||
}
|
||||
}
|
||||
|
||||
List<PotionEffectType> shouldRemove = new ArrayList<PotionEffectType>(this.effectsGiven);
|
||||
for(Set<PotionEffect> potionEffects : set.queryAllValues(WorldGuardExtraFlagsPlugin.getWorldGuard().wrapPlayer(player), WorldGuardExtraFlagsPlugin.giveEffects))
|
||||
{
|
||||
if (potionEffects != null)
|
||||
{
|
||||
for(PotionEffect potionEffect : potionEffects)
|
||||
{
|
||||
if (potionEffect != null)
|
||||
{
|
||||
if (player.hasPotionEffect(potionEffect.getType()))
|
||||
{
|
||||
for(PotionEffect effect : player.getActivePotionEffects())
|
||||
{
|
||||
if (effect.getType().equals(potionEffect.getType()))
|
||||
{
|
||||
if (effect.getAmplifier() != potionEffect.getAmplifier())
|
||||
{
|
||||
player.removePotionEffect(potionEffect.getType());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
player.addPotionEffect(potionEffect);
|
||||
}
|
||||
else
|
||||
{
|
||||
player.addPotionEffect(potionEffect);
|
||||
}
|
||||
|
||||
this.effectsGiven.add(potionEffect.getType());
|
||||
shouldRemove.remove(potionEffect.getType());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for(PotionEffectType effectType : shouldRemove)
|
||||
{
|
||||
PotionEffect oldPotionEffect = this.originalPotionEffects.remove(effectType.getName());
|
||||
if (oldPotionEffect != null)
|
||||
{
|
||||
if (player.hasPotionEffect(effectType))
|
||||
{
|
||||
player.removePotionEffect(effectType);
|
||||
}
|
||||
|
||||
player.addPotionEffect(oldPotionEffect);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void drinkMilk()
|
||||
{
|
||||
this.originalPotionEffects.clear();
|
||||
}
|
||||
|
||||
public void drinkPotion(Collection<PotionEffect> effects)
|
||||
{
|
||||
for(PotionEffect potionEffect : effects)
|
||||
{
|
||||
this.originalPotionEffects.put(potionEffect.getType().getName(), potionEffect);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -11,7 +11,8 @@ import com.sk89q.worldguard.session.Session;
|
|||
import com.sk89q.worldguard.session.handler.FlagValueChangeHandler;
|
||||
import com.sk89q.worldguard.session.handler.Handler;
|
||||
|
||||
import net.goldtreeservers.worldguardextraflags.WorldGuardExtraFlagsPlugin;
|
||||
import net.goldtreeservers.worldguardextraflags.utils.FlagUtils;
|
||||
import net.goldtreeservers.worldguardextraflags.utils.WorldGuardUtils;
|
||||
|
||||
public class GlideFlag extends FlagValueChangeHandler<State>
|
||||
{
|
||||
|
@ -30,35 +31,33 @@ public class GlideFlag extends FlagValueChangeHandler<State>
|
|||
|
||||
protected GlideFlag(Session session)
|
||||
{
|
||||
super(session, WorldGuardExtraFlagsPlugin.glide);
|
||||
super(session, FlagUtils.GLIDE);
|
||||
}
|
||||
|
||||
private void updateGlide(Player player, State newValue, World world)
|
||||
{
|
||||
if (!this.getSession().getManager().hasBypass(player, world))
|
||||
if (!WorldGuardUtils.hasBypass(player) && newValue != null)
|
||||
{
|
||||
this.currentValue = newValue == null ? null : newValue == State.ALLOW ? true : false;
|
||||
boolean value = (newValue == State.ALLOW ? true : false);
|
||||
|
||||
if (this.currentValue != null)
|
||||
{
|
||||
if (player.isGliding() != this.currentValue)
|
||||
{
|
||||
if (this.originalGlide == null)
|
||||
{
|
||||
this.originalGlide = player.isGliding();
|
||||
}
|
||||
|
||||
player.setGliding(this.currentValue);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (this.originalGlide != null)
|
||||
{
|
||||
player.setGliding(this.originalGlide);
|
||||
this.originalGlide = null;
|
||||
}
|
||||
}
|
||||
if (player.isGliding() != value)
|
||||
{
|
||||
if (this.originalGlide == null)
|
||||
{
|
||||
this.originalGlide = player.isGliding();
|
||||
}
|
||||
|
||||
player.setGliding(value);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (this.originalGlide != null)
|
||||
{
|
||||
player.setGliding(this.originalGlide);
|
||||
|
||||
this.originalGlide = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -72,6 +71,7 @@ public class GlideFlag extends FlagValueChangeHandler<State>
|
|||
protected boolean onSetValue(Player player, Location from, Location to, ApplicableRegionSet toSet, State currentValue, State lastValue, MoveType moveType)
|
||||
{
|
||||
this.updateGlide(player, currentValue, to.getWorld());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -79,6 +79,7 @@ public class GlideFlag extends FlagValueChangeHandler<State>
|
|||
protected boolean onAbsentValue(Player player, Location from, Location to, ApplicableRegionSet toSet, State lastValue, MoveType moveType)
|
||||
{
|
||||
this.updateGlide(player, null, player.getWorld());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
@ -2,20 +2,19 @@ package net.goldtreeservers.worldguardextraflags.flags;
|
|||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import com.sk89q.worldguard.protection.ApplicableRegionSet;
|
||||
import com.earth2me.essentials.User;
|
||||
import com.sk89q.worldguard.protection.flags.StateFlag.State;
|
||||
import com.sk89q.worldguard.session.MoveType;
|
||||
import com.sk89q.worldguard.session.Session;
|
||||
import com.sk89q.worldguard.session.handler.FlagValueChangeHandler;
|
||||
import com.sk89q.worldguard.session.handler.Handler;
|
||||
|
||||
import lombok.Getter;
|
||||
import net.goldtreeservers.worldguardextraflags.WorldGuardExtraFlagsPlugin;
|
||||
import net.goldtreeservers.worldguardextraflags.utils.FlagUtils;
|
||||
import net.goldtreeservers.worldguardextraflags.utils.WorldGuardUtils;
|
||||
|
||||
public class GodmodeFlag extends FlagValueChangeHandler<State>
|
||||
public class GodmodeFlag extends Handler
|
||||
{
|
||||
public static final Factory FACTORY = new Factory();
|
||||
public static class Factory extends Handler.Factory<GodmodeFlag>
|
||||
|
@ -27,82 +26,59 @@ public class GodmodeFlag extends FlagValueChangeHandler<State>
|
|||
}
|
||||
}
|
||||
|
||||
private Boolean isGodmodeEnabled;
|
||||
@Getter private Boolean isGodmodeEnabled;
|
||||
private Boolean originalEssentialsGodmode;
|
||||
|
||||
protected GodmodeFlag(Session session)
|
||||
{
|
||||
super(session, WorldGuardExtraFlagsPlugin.godmode);
|
||||
super(session);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public State getInvincibility(Player player)
|
||||
{
|
||||
if (!this.getSession().getManager().hasBypass(player, player.getWorld()))
|
||||
if (!WorldGuardUtils.hasBypass(player))
|
||||
{
|
||||
ApplicableRegionSet regions = WorldGuardExtraFlagsPlugin.getWorldGuard().getRegionContainer().createQuery().getApplicableRegions(player.getLocation());
|
||||
return regions.queryValue(WorldGuardExtraFlagsPlugin.getWorldGuard().wrapPlayer(player), WorldGuardExtraFlagsPlugin.godmode);
|
||||
State state = WorldGuardExtraFlagsPlugin.getWorldGuardPlugin().getRegionContainer().createQuery().getApplicableRegions(player.getLocation()).queryValue(WorldGuardUtils.wrapPlayer(player), FlagUtils.GODMODE);
|
||||
if (state != null)
|
||||
{
|
||||
this.isGodmodeEnabled = (state == State.ALLOW ? true : false);
|
||||
}
|
||||
else
|
||||
{
|
||||
this.isGodmodeEnabled = null;
|
||||
}
|
||||
|
||||
if (WorldGuardExtraFlagsPlugin.isEssentialsEnable())
|
||||
{
|
||||
User user = WorldGuardExtraFlagsPlugin.getEssentialsPlugin().getUser(player);
|
||||
|
||||
if (this.isGodmodeEnabled != null)
|
||||
{
|
||||
if (this.isGodmodeEnabled != user.isGodModeEnabled())
|
||||
{
|
||||
this.originalEssentialsGodmode = user.isGodModeEnabled();
|
||||
|
||||
user.setGodModeEnabled(this.isGodmodeEnabled);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (this.originalEssentialsGodmode != null)
|
||||
{
|
||||
user.setGodModeEnabled(this.isGodmodeEnabled);
|
||||
|
||||
this.originalEssentialsGodmode = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return state;
|
||||
}
|
||||
else
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public void updateGodmode(Player player, State newValue, World world)
|
||||
{
|
||||
if (!this.getSession().getManager().hasBypass(player, world))
|
||||
{
|
||||
this.isGodmodeEnabled = newValue == null ? null : newValue == State.ALLOW ? true : false;
|
||||
|
||||
if (this.isGodmodeEnabled != null)
|
||||
{
|
||||
if (WorldGuardExtraFlagsPlugin.isEssentialsEnabled())
|
||||
{
|
||||
if (this.originalEssentialsGodmode == null)
|
||||
{
|
||||
this.originalEssentialsGodmode = WorldGuardExtraFlagsPlugin.getEssentialsPlugin().getUser(player).isGodModeEnabledRaw();
|
||||
}
|
||||
|
||||
WorldGuardExtraFlagsPlugin.getEssentialsPlugin().getUser(player).setGodModeEnabled(this.isGodmodeEnabled);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
this.isGodmodeEnabled = null;
|
||||
|
||||
if (this.originalEssentialsGodmode != null)
|
||||
{
|
||||
WorldGuardExtraFlagsPlugin.getEssentialsPlugin().getUser(player).setGodModeEnabled(this.originalEssentialsGodmode);
|
||||
this.originalEssentialsGodmode = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onInitialValue(Player player, ApplicableRegionSet set, State value)
|
||||
{
|
||||
this.updateGodmode(player, value, player.getWorld());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean onSetValue(Player player, Location from, Location to, ApplicableRegionSet toSet, State currentValue, State lastValue, MoveType moveType)
|
||||
{
|
||||
this.updateGodmode(player, currentValue, player.getWorld());
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean onAbsentValue(Player player, Location from, Location to, ApplicableRegionSet toSet, State lastValue, MoveType moveType)
|
||||
{
|
||||
this.updateGodmode(player, null, player.getWorld());
|
||||
return true;
|
||||
}
|
||||
|
||||
public Boolean getIsGodmodEnbled()
|
||||
{
|
||||
return this.isGodmodeEnabled;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -10,7 +10,7 @@ import com.sk89q.worldguard.session.Session;
|
|||
import com.sk89q.worldguard.session.handler.FlagValueChangeHandler;
|
||||
import com.sk89q.worldguard.session.handler.Handler;
|
||||
|
||||
import net.goldtreeservers.worldguardextraflags.WorldGuardExtraFlagsPlugin;
|
||||
import net.goldtreeservers.worldguardextraflags.utils.FlagUtils;
|
||||
|
||||
public class WalkSpeedFlag extends FlagValueChangeHandler<Double>
|
||||
{
|
||||
|
@ -28,7 +28,7 @@ public class WalkSpeedFlag extends FlagValueChangeHandler<Double>
|
|||
|
||||
protected WalkSpeedFlag(Session session)
|
||||
{
|
||||
super(session, WorldGuardExtraFlagsPlugin.walkSpeed);
|
||||
super(session, FlagUtils.WALK_SPEED);
|
||||
}
|
||||
|
||||
private void updateWalkSpeed(Player player, Double newValue, World world)
|
||||
|
@ -46,10 +46,10 @@ public class WalkSpeedFlag extends FlagValueChangeHandler<Double>
|
|||
|
||||
if (player.getWalkSpeed() != newValue.floatValue())
|
||||
{
|
||||
if (this.originalWalkSpeed == null)
|
||||
{
|
||||
this.originalWalkSpeed = player.getWalkSpeed();
|
||||
}
|
||||
if (this.originalWalkSpeed == null)
|
||||
{
|
||||
this.originalWalkSpeed = player.getWalkSpeed();
|
||||
}
|
||||
|
||||
player.setWalkSpeed(newValue.floatValue());
|
||||
}
|
||||
|
@ -59,6 +59,7 @@ public class WalkSpeedFlag extends FlagValueChangeHandler<Double>
|
|||
if (this.originalWalkSpeed != null)
|
||||
{
|
||||
player.setWalkSpeed(this.originalWalkSpeed);
|
||||
|
||||
this.originalWalkSpeed = null;
|
||||
}
|
||||
}
|
||||
|
@ -74,6 +75,7 @@ public class WalkSpeedFlag extends FlagValueChangeHandler<Double>
|
|||
protected boolean onSetValue(Player player, Location from, Location to, ApplicableRegionSet toSet, Double currentValue, Double lastValue, MoveType moveType)
|
||||
{
|
||||
this.updateWalkSpeed(player, currentValue, to.getWorld());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -81,6 +83,7 @@ public class WalkSpeedFlag extends FlagValueChangeHandler<Double>
|
|||
protected boolean onAbsentValue(Player player, Location from, Location to, ApplicableRegionSet toSet, Double lastValue, MoveType moveType)
|
||||
{
|
||||
this.updateWalkSpeed(player, null, player.getWorld());
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,136 @@
|
|||
package net.goldtreeservers.worldguardextraflags.flags.handlers;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.Set;
|
||||
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.potion.PotionEffect;
|
||||
import org.bukkit.potion.PotionEffectType;
|
||||
|
||||
import com.sk89q.worldguard.protection.ApplicableRegionSet;
|
||||
import com.sk89q.worldguard.protection.regions.ProtectedRegion;
|
||||
import com.sk89q.worldguard.session.MoveType;
|
||||
import com.sk89q.worldguard.session.Session;
|
||||
import com.sk89q.worldguard.session.handler.Handler;
|
||||
|
||||
import net.goldtreeservers.worldguardextraflags.WorldGuardExtraFlagsPlugin;
|
||||
import net.goldtreeservers.worldguardextraflags.helpers.PotionEffectDetails;
|
||||
import net.goldtreeservers.worldguardextraflags.utils.FlagUtils;
|
||||
import net.goldtreeservers.worldguardextraflags.utils.TimeUtils;
|
||||
import net.goldtreeservers.worldguardextraflags.utils.WorldGuardUtils;
|
||||
|
||||
public class BlockedEffectsFlag extends Handler
|
||||
{
|
||||
public static final Factory FACTORY = new Factory();
|
||||
public static class Factory extends Handler.Factory<BlockedEffectsFlag>
|
||||
{
|
||||
@Override
|
||||
public BlockedEffectsFlag create(Session session)
|
||||
{
|
||||
return new BlockedEffectsFlag(session);
|
||||
}
|
||||
}
|
||||
|
||||
private HashMap<PotionEffectType, PotionEffectDetails> removedEffects;
|
||||
|
||||
protected BlockedEffectsFlag(Session session)
|
||||
{
|
||||
super(session);
|
||||
|
||||
this.removedEffects = new HashMap<>();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initialize(Player player, Location current, ApplicableRegionSet set)
|
||||
{
|
||||
if (!WorldGuardUtils.hasBypass(player))
|
||||
{
|
||||
this.check(player, set);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCrossBoundary(Player player, Location from, Location to, ApplicableRegionSet toSet, Set<ProtectedRegion> entered, Set<ProtectedRegion> exited, MoveType moveType)
|
||||
{
|
||||
if (!WorldGuardUtils.hasBypass(player))
|
||||
{
|
||||
this.check(player, toSet);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void tick(Player player, ApplicableRegionSet set)
|
||||
{
|
||||
if (!WorldGuardUtils.hasBypass(player))
|
||||
{
|
||||
this.check(player, set);
|
||||
}
|
||||
}
|
||||
|
||||
private void check(Player player, ApplicableRegionSet set)
|
||||
{
|
||||
Set<PotionEffectType> potionEffects = set.queryValue(WorldGuardUtils.wrapPlayer(player), FlagUtils.BLOCKED_EFFECTS);
|
||||
if (potionEffects != null && potionEffects.size() > 0)
|
||||
{
|
||||
for (PotionEffectType effectType : potionEffects)
|
||||
{
|
||||
PotionEffect effect = null;
|
||||
for(PotionEffect activeEffect : player.getActivePotionEffects())
|
||||
{
|
||||
if (activeEffect.getType().equals(effectType))
|
||||
{
|
||||
effect = activeEffect;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (effect != null)
|
||||
{
|
||||
if (WorldGuardExtraFlagsPlugin.isSupportsMobEffectColors())
|
||||
{
|
||||
this.removedEffects.put(effect.getType(), new PotionEffectDetails(TimeUtils.getUnixtimestamp() + effect.getDuration() / 20, effect.getAmplifier(), effect.isAmbient(), effect.hasParticles(), effect.getColor()));
|
||||
}
|
||||
else
|
||||
{
|
||||
this.removedEffects.put(effect.getType(), new PotionEffectDetails(TimeUtils.getUnixtimestamp() + effect.getDuration() / 20, effect.getAmplifier(), effect.isAmbient(), effect.hasParticles(), null));
|
||||
}
|
||||
|
||||
player.removePotionEffect(effectType);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Iterator<Entry<PotionEffectType, PotionEffectDetails>> potionEffects_ = this.removedEffects.entrySet().iterator();
|
||||
while (potionEffects_.hasNext())
|
||||
{
|
||||
Entry<PotionEffectType, PotionEffectDetails> potionEffect = potionEffects_.next();
|
||||
|
||||
if (potionEffects == null || !potionEffects.contains(potionEffect.getKey()))
|
||||
{
|
||||
PotionEffectDetails removedEffect = potionEffect.getValue();
|
||||
if (removedEffect != null)
|
||||
{
|
||||
int timeLeft = removedEffect.getTimeLeftInTicks();
|
||||
if (timeLeft > 0)
|
||||
{
|
||||
if (WorldGuardExtraFlagsPlugin.isSupportsMobEffectColors())
|
||||
{
|
||||
player.addPotionEffect(new PotionEffect(potionEffect.getKey(), timeLeft, removedEffect.getAmplifier(), removedEffect.isAmbient(), removedEffect.isParticles(), removedEffect.getColor()), true);
|
||||
}
|
||||
else
|
||||
{
|
||||
player.addPotionEffect(new PotionEffect(potionEffect.getKey(), timeLeft, removedEffect.getAmplifier(), removedEffect.isAmbient(), removedEffect.isParticles()), true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
potionEffects_.remove();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,89 @@
|
|||
package net.goldtreeservers.worldguardextraflags.flags.handlers;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Set;
|
||||
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import com.sk89q.worldguard.protection.ApplicableRegionSet;
|
||||
import com.sk89q.worldguard.protection.regions.ProtectedRegion;
|
||||
import com.sk89q.worldguard.session.MoveType;
|
||||
import com.sk89q.worldguard.session.Session;
|
||||
import com.sk89q.worldguard.session.handler.Handler;
|
||||
|
||||
import net.goldtreeservers.worldguardextraflags.WorldGuardExtraFlagsPlugin;
|
||||
import net.goldtreeservers.worldguardextraflags.utils.FlagUtils;
|
||||
import net.goldtreeservers.worldguardextraflags.utils.WorldGuardUtils;
|
||||
|
||||
public class CommandOnEntryFlag extends Handler
|
||||
{
|
||||
public static final Factory FACTORY = new Factory();
|
||||
public static class Factory extends Handler.Factory<CommandOnEntryFlag>
|
||||
{
|
||||
@Override
|
||||
public CommandOnEntryFlag create(Session session)
|
||||
{
|
||||
return new CommandOnEntryFlag(session);
|
||||
}
|
||||
}
|
||||
|
||||
private Collection<Set<String>> lastCommands;
|
||||
|
||||
protected CommandOnEntryFlag(Session session)
|
||||
{
|
||||
super(session);
|
||||
|
||||
this.lastCommands = new ArrayList<>();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCrossBoundary(Player player, Location from, Location to, ApplicableRegionSet toSet, Set<ProtectedRegion> entered, Set<ProtectedRegion> exited, MoveType moveType)
|
||||
{
|
||||
if (!WorldGuardUtils.hasBypass(player))
|
||||
{
|
||||
Collection<Set<String>> commands = toSet.queryAllValues(WorldGuardUtils.wrapPlayer(player), FlagUtils.COMMAND_ON_ENTRY);
|
||||
|
||||
boolean isOp = player.isOp();
|
||||
|
||||
try
|
||||
{
|
||||
player.setOp(true);
|
||||
|
||||
for(Set<String> commands_ : commands)
|
||||
{
|
||||
if (!this.lastCommands.contains(commands_))
|
||||
{
|
||||
for(String command : commands_)
|
||||
{
|
||||
WorldGuardExtraFlagsPlugin.getPlugin().getServer().dispatchCommand(player, command.substring(1).replace("%username%", player.getName())); //TODO: Make this better
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
player.setOp(isOp);
|
||||
}
|
||||
|
||||
this.lastCommands = new ArrayList<Set<String>>(commands);
|
||||
|
||||
if (!this.lastCommands.isEmpty())
|
||||
{
|
||||
for (ProtectedRegion region : toSet)
|
||||
{
|
||||
Set<String> commands_ = region.getFlag(FlagUtils.COMMAND_ON_ENTRY);
|
||||
if (commands_ != null)
|
||||
{
|
||||
this.lastCommands.add(commands_);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,95 @@
|
|||
package net.goldtreeservers.worldguardextraflags.flags.handlers;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Set;
|
||||
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import com.sk89q.worldguard.protection.ApplicableRegionSet;
|
||||
import com.sk89q.worldguard.protection.regions.ProtectedRegion;
|
||||
import com.sk89q.worldguard.session.MoveType;
|
||||
import com.sk89q.worldguard.session.Session;
|
||||
import com.sk89q.worldguard.session.handler.Handler;
|
||||
|
||||
import net.goldtreeservers.worldguardextraflags.WorldGuardExtraFlagsPlugin;
|
||||
import net.goldtreeservers.worldguardextraflags.utils.FlagUtils;
|
||||
import net.goldtreeservers.worldguardextraflags.utils.WorldGuardUtils;
|
||||
|
||||
public class CommandOnExitFlag extends Handler
|
||||
{
|
||||
public static final Factory FACTORY = new Factory();
|
||||
public static class Factory extends Handler.Factory<CommandOnExitFlag>
|
||||
{
|
||||
@Override
|
||||
public CommandOnExitFlag create(Session session)
|
||||
{
|
||||
return new CommandOnExitFlag(session);
|
||||
}
|
||||
}
|
||||
|
||||
private Collection<Set<String>> lastCommands;
|
||||
|
||||
protected CommandOnExitFlag(Session session)
|
||||
{
|
||||
super(session);
|
||||
|
||||
this.lastCommands = new ArrayList<>();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initialize(Player player, Location current, ApplicableRegionSet set)
|
||||
{
|
||||
this.lastCommands = set.queryAllValues(WorldGuardUtils.wrapPlayer(player), FlagUtils.COMMAND_ON_EXIT);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCrossBoundary(Player player, Location from, Location to, ApplicableRegionSet toSet, Set<ProtectedRegion> entered, Set<ProtectedRegion> exited, MoveType moveType)
|
||||
{
|
||||
if (!WorldGuardUtils.hasBypass(player))
|
||||
{
|
||||
Collection<Set<String>> commands = toSet.queryAllValues(WorldGuardUtils.wrapPlayer(player), FlagUtils.COMMAND_ON_EXIT);
|
||||
|
||||
if (!commands.isEmpty())
|
||||
{
|
||||
for (ProtectedRegion region : toSet)
|
||||
{
|
||||
Set<String> commands_ = region.getFlag(FlagUtils.COMMAND_ON_EXIT);
|
||||
if (commands_ != null)
|
||||
{
|
||||
this.lastCommands.add(commands_);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
boolean isOp = player.isOp();
|
||||
|
||||
try
|
||||
{
|
||||
player.setOp(true);
|
||||
|
||||
for(Set<String> commands_ : commands)
|
||||
{
|
||||
if (!this.lastCommands.contains(commands_))
|
||||
{
|
||||
for(String command : commands_)
|
||||
{
|
||||
WorldGuardExtraFlagsPlugin.getPlugin().getServer().dispatchCommand(player, command.substring(1).replace("%username%", player.getName())); //TODO: Make this better
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
player.setOp(isOp);
|
||||
}
|
||||
|
||||
this.lastCommands = commands;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,78 @@
|
|||
package net.goldtreeservers.worldguardextraflags.flags.handlers;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Set;
|
||||
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import com.sk89q.worldguard.protection.ApplicableRegionSet;
|
||||
import com.sk89q.worldguard.protection.regions.ProtectedRegion;
|
||||
import com.sk89q.worldguard.session.MoveType;
|
||||
import com.sk89q.worldguard.session.Session;
|
||||
import com.sk89q.worldguard.session.handler.Handler;
|
||||
|
||||
import net.goldtreeservers.worldguardextraflags.WorldGuardExtraFlagsPlugin;
|
||||
import net.goldtreeservers.worldguardextraflags.utils.FlagUtils;
|
||||
import net.goldtreeservers.worldguardextraflags.utils.WorldGuardUtils;
|
||||
|
||||
public class ConsoleCommandOnEntryFlag extends Handler
|
||||
{
|
||||
public static final Factory FACTORY = new Factory();
|
||||
public static class Factory extends Handler.Factory<ConsoleCommandOnEntryFlag>
|
||||
{
|
||||
@Override
|
||||
public ConsoleCommandOnEntryFlag create(Session session)
|
||||
{
|
||||
return new ConsoleCommandOnEntryFlag(session);
|
||||
}
|
||||
}
|
||||
|
||||
private Collection<Set<String>> lastCommands;
|
||||
|
||||
protected ConsoleCommandOnEntryFlag(Session session)
|
||||
{
|
||||
super(session);
|
||||
|
||||
this.lastCommands = new ArrayList<>();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCrossBoundary(Player player, Location from, Location to, ApplicableRegionSet toSet, Set<ProtectedRegion> entered, Set<ProtectedRegion> exited, MoveType moveType)
|
||||
{
|
||||
if (!WorldGuardUtils.hasBypass(player))
|
||||
{
|
||||
Collection<Set<String>> commands = toSet.queryAllValues(WorldGuardUtils.wrapPlayer(player), FlagUtils.CONSOLE_COMMAND_ON_ENTRY);
|
||||
|
||||
for(Set<String> commands_ : commands)
|
||||
{
|
||||
if (!this.lastCommands.contains(commands_))
|
||||
{
|
||||
for(String command : commands_)
|
||||
{
|
||||
WorldGuardExtraFlagsPlugin.getPlugin().getServer().dispatchCommand(WorldGuardExtraFlagsPlugin.getPlugin().getServer().getConsoleSender(), command.substring(1).replace("%username%", player.getName())); //TODO: Make this better
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
this.lastCommands = new ArrayList<Set<String>>(commands);
|
||||
|
||||
if (!this.lastCommands.isEmpty())
|
||||
{
|
||||
for (ProtectedRegion region : toSet)
|
||||
{
|
||||
Set<String> commands_ = region.getFlag(FlagUtils.CONSOLE_COMMAND_ON_ENTRY);
|
||||
if (commands_ != null)
|
||||
{
|
||||
this.lastCommands.add(commands_);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,95 @@
|
|||
package net.goldtreeservers.worldguardextraflags.flags.handlers;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Set;
|
||||
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import com.sk89q.worldguard.protection.ApplicableRegionSet;
|
||||
import com.sk89q.worldguard.protection.regions.ProtectedRegion;
|
||||
import com.sk89q.worldguard.session.MoveType;
|
||||
import com.sk89q.worldguard.session.Session;
|
||||
import com.sk89q.worldguard.session.handler.Handler;
|
||||
|
||||
import net.goldtreeservers.worldguardextraflags.WorldGuardExtraFlagsPlugin;
|
||||
import net.goldtreeservers.worldguardextraflags.utils.FlagUtils;
|
||||
import net.goldtreeservers.worldguardextraflags.utils.WorldGuardUtils;
|
||||
|
||||
public class ConsoleCommandOnExitFlag extends Handler
|
||||
{
|
||||
public static final Factory FACTORY = new Factory();
|
||||
public static class Factory extends Handler.Factory<ConsoleCommandOnExitFlag>
|
||||
{
|
||||
@Override
|
||||
public ConsoleCommandOnExitFlag create(Session session)
|
||||
{
|
||||
return new ConsoleCommandOnExitFlag(session);
|
||||
}
|
||||
}
|
||||
|
||||
private Collection<Set<String>> lastCommands;
|
||||
|
||||
protected ConsoleCommandOnExitFlag(Session session)
|
||||
{
|
||||
super(session);
|
||||
|
||||
this.lastCommands = new ArrayList<>();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initialize(Player player, Location current, ApplicableRegionSet set)
|
||||
{
|
||||
this.lastCommands = set.queryAllValues(WorldGuardUtils.wrapPlayer(player), FlagUtils.CONSOLE_COMMAND_ON_EXIT);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCrossBoundary(Player player, Location from, Location to, ApplicableRegionSet toSet, Set<ProtectedRegion> entered, Set<ProtectedRegion> exited, MoveType moveType)
|
||||
{
|
||||
if (!WorldGuardUtils.hasBypass(player))
|
||||
{
|
||||
Collection<Set<String>> commands = toSet.queryAllValues(WorldGuardUtils.wrapPlayer(player), FlagUtils.CONSOLE_COMMAND_ON_EXIT);
|
||||
|
||||
if (!commands.isEmpty())
|
||||
{
|
||||
for (ProtectedRegion region : toSet)
|
||||
{
|
||||
Set<String> commands_ = region.getFlag(FlagUtils.CONSOLE_COMMAND_ON_EXIT);
|
||||
if (commands_ != null)
|
||||
{
|
||||
this.lastCommands.add(commands_);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
boolean isOp = player.isOp();
|
||||
|
||||
try
|
||||
{
|
||||
player.setOp(true);
|
||||
|
||||
for(Set<String> commands_ : commands)
|
||||
{
|
||||
if (!this.lastCommands.contains(commands_))
|
||||
{
|
||||
for(String command : commands_)
|
||||
{
|
||||
WorldGuardExtraFlagsPlugin.getPlugin().getServer().dispatchCommand(WorldGuardExtraFlagsPlugin.getPlugin().getServer().getConsoleSender(), command.substring(1).replace("%username%", player.getName())); //TODO: Make this better
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
player.setOp(isOp);
|
||||
}
|
||||
|
||||
this.lastCommands = commands;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,194 @@
|
|||
package net.goldtreeservers.worldguardextraflags.flags.handlers;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.Iterator;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.Set;
|
||||
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.potion.PotionEffect;
|
||||
import org.bukkit.potion.PotionEffectType;
|
||||
|
||||
import com.sk89q.worldguard.protection.ApplicableRegionSet;
|
||||
import com.sk89q.worldguard.protection.regions.ProtectedRegion;
|
||||
import com.sk89q.worldguard.session.MoveType;
|
||||
import com.sk89q.worldguard.session.Session;
|
||||
import com.sk89q.worldguard.session.handler.Handler;
|
||||
|
||||
import net.goldtreeservers.worldguardextraflags.WorldGuardExtraFlagsPlugin;
|
||||
import net.goldtreeservers.worldguardextraflags.helpers.PotionEffectDetails;
|
||||
import net.goldtreeservers.worldguardextraflags.utils.FlagUtils;
|
||||
import net.goldtreeservers.worldguardextraflags.utils.TimeUtils;
|
||||
import net.goldtreeservers.worldguardextraflags.utils.WorldGuardUtils;
|
||||
|
||||
public class GiveEffectsFlag extends Handler
|
||||
{
|
||||
public static final Factory FACTORY = new Factory();
|
||||
public static class Factory extends Handler.Factory<GiveEffectsFlag>
|
||||
{
|
||||
@Override
|
||||
public GiveEffectsFlag create(Session session)
|
||||
{
|
||||
return new GiveEffectsFlag(session);
|
||||
}
|
||||
}
|
||||
|
||||
private HashMap<PotionEffectType, PotionEffectDetails> removedEffects;
|
||||
private HashSet<PotionEffectType> givenEffects;
|
||||
|
||||
protected GiveEffectsFlag(Session session)
|
||||
{
|
||||
super(session);
|
||||
|
||||
this.removedEffects = new HashMap<>();
|
||||
this.givenEffects = new HashSet<>();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initialize(Player player, Location current, ApplicableRegionSet set)
|
||||
{
|
||||
if (!WorldGuardUtils.hasBypass(player))
|
||||
{
|
||||
this.check(player, set);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCrossBoundary(Player player, Location from, Location to, ApplicableRegionSet toSet, Set<ProtectedRegion> entered, Set<ProtectedRegion> exited, MoveType moveType)
|
||||
{
|
||||
if (!WorldGuardUtils.hasBypass(player))
|
||||
{
|
||||
this.check(player, toSet);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void tick(Player player, ApplicableRegionSet set)
|
||||
{
|
||||
if (!WorldGuardUtils.hasBypass(player))
|
||||
{
|
||||
this.check(player, set);
|
||||
}
|
||||
}
|
||||
|
||||
private void check(Player player, ApplicableRegionSet set)
|
||||
{
|
||||
Set<PotionEffect> potionEffects = set.queryValue(WorldGuardUtils.wrapPlayer(player), FlagUtils.GIVE_EFFECTS);
|
||||
if (potionEffects != null && potionEffects.size() > 0)
|
||||
{
|
||||
for (PotionEffect effect : potionEffects)
|
||||
{
|
||||
PotionEffect effect_ = null;
|
||||
for(PotionEffect activeEffect : player.getActivePotionEffects())
|
||||
{
|
||||
if (activeEffect.getType().equals(effect.getType()))
|
||||
{
|
||||
effect_ = activeEffect;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (this.givenEffects.add(effect.getType()) && effect_ != null)
|
||||
{
|
||||
if (WorldGuardExtraFlagsPlugin.isSupportsMobEffectColors())
|
||||
{
|
||||
this.removedEffects.put(effect_.getType(), new PotionEffectDetails(TimeUtils.getUnixtimestamp() + effect_.getDuration() / 20, effect_.getAmplifier(), effect_.isAmbient(), effect_.hasParticles(), effect_.getColor()));
|
||||
}
|
||||
else
|
||||
{
|
||||
this.removedEffects.put(effect_.getType(), new PotionEffectDetails(TimeUtils.getUnixtimestamp() + effect_.getDuration() / 20, effect_.getAmplifier(), effect_.isAmbient(), effect_.hasParticles(), null));
|
||||
}
|
||||
|
||||
player.removePotionEffect(effect_.getType());
|
||||
}
|
||||
|
||||
player.addPotionEffect(effect, true);
|
||||
}
|
||||
}
|
||||
|
||||
Iterator<PotionEffectType> effectTypes = this.givenEffects.iterator();
|
||||
while (effectTypes.hasNext())
|
||||
{
|
||||
PotionEffectType type = effectTypes.next();
|
||||
|
||||
if (potionEffects != null && potionEffects.size() > 0)
|
||||
{
|
||||
boolean skip = false;
|
||||
for (PotionEffect effect : potionEffects)
|
||||
{
|
||||
if (effect.getType().equals(type))
|
||||
{
|
||||
skip = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (skip)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
player.removePotionEffect(type);
|
||||
|
||||
effectTypes.remove();
|
||||
}
|
||||
|
||||
Iterator<Entry<PotionEffectType, PotionEffectDetails>> potionEffects_ = this.removedEffects.entrySet().iterator();
|
||||
while (potionEffects_.hasNext())
|
||||
{
|
||||
Entry<PotionEffectType, PotionEffectDetails> effect = potionEffects_.next();
|
||||
if (!this.givenEffects.contains(effect.getKey()))
|
||||
{
|
||||
PotionEffectDetails removedEffect = effect.getValue();
|
||||
if (removedEffect != null)
|
||||
{
|
||||
int timeLeft = removedEffect.getTimeLeftInTicks();
|
||||
|
||||
if (timeLeft > 0)
|
||||
{
|
||||
if (WorldGuardExtraFlagsPlugin.isSupportsMobEffectColors())
|
||||
{
|
||||
player.addPotionEffect(new PotionEffect(effect.getKey(), timeLeft, removedEffect.getAmplifier(), removedEffect.isAmbient(), removedEffect.isParticles(), removedEffect.getColor()), true);
|
||||
}
|
||||
else
|
||||
{
|
||||
player.addPotionEffect(new PotionEffect(effect.getKey(), timeLeft, removedEffect.getAmplifier(), removedEffect.isAmbient(), removedEffect.isParticles()), true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
potionEffects_.remove();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void drinkMilk(Player player)
|
||||
{
|
||||
this.removedEffects.clear();
|
||||
|
||||
this.check(player, WorldGuardExtraFlagsPlugin.getWorldGuardPlugin().getRegionContainer().createQuery().getApplicableRegions(player.getLocation()));
|
||||
}
|
||||
|
||||
public void drinkPotion(Player player, Collection<PotionEffect> effects)
|
||||
{
|
||||
for(PotionEffect effect : effects)
|
||||
{
|
||||
if (WorldGuardExtraFlagsPlugin.isSupportsMobEffectColors())
|
||||
{
|
||||
this.removedEffects.put(effect.getType(), new PotionEffectDetails(TimeUtils.getUnixtimestamp() + effect.getDuration() / 20, effect.getAmplifier(), effect.isAmbient(), effect.hasParticles(), effect.getColor()));
|
||||
}
|
||||
else
|
||||
{
|
||||
this.removedEffects.put(effect.getType(), new PotionEffectDetails(TimeUtils.getUnixtimestamp() + effect.getDuration() / 20, effect.getAmplifier(), effect.isAmbient(), effect.hasParticles(), null));
|
||||
}
|
||||
}
|
||||
|
||||
this.check(player, WorldGuardExtraFlagsPlugin.getWorldGuardPlugin().getRegionContainer().createQuery().getApplicableRegions(player.getLocation()));
|
||||
}
|
||||
}
|
|
@ -1,7 +1,7 @@
|
|||
package net.goldtreeservers.worldguardextraflags.flags;
|
||||
package net.goldtreeservers.worldguardextraflags.flags.handlers;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.Iterator;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.Set;
|
||||
|
||||
|
@ -16,7 +16,9 @@ import com.sk89q.worldguard.session.Session;
|
|||
import com.sk89q.worldguard.session.handler.Handler;
|
||||
|
||||
import net.goldtreeservers.worldguardextraflags.WorldGuardExtraFlagsPlugin;
|
||||
import net.goldtreeservers.worldguardextraflags.utils.FlagUtils;
|
||||
import net.goldtreeservers.worldguardextraflags.utils.SoundData;
|
||||
import net.goldtreeservers.worldguardextraflags.utils.WorldGuardUtils;
|
||||
|
||||
public class PlaySoundsFlag extends Handler
|
||||
{
|
||||
|
@ -29,78 +31,51 @@ public class PlaySoundsFlag extends Handler
|
|||
return new PlaySoundsFlag(session);
|
||||
}
|
||||
}
|
||||
|
||||
private HashMap<String, BukkitRunnable> runnables = new HashMap<>();
|
||||
|
||||
private HashMap<String, BukkitRunnable> runnables;
|
||||
|
||||
protected PlaySoundsFlag(Session session)
|
||||
{
|
||||
super(session);
|
||||
|
||||
this.runnables = new HashMap<>();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initialize(Player player, Location current, ApplicableRegionSet set)
|
||||
{
|
||||
if (!WorldGuardUtils.hasBypass(player))
|
||||
{
|
||||
this.check(player, set);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCrossBoundary(Player player, Location from, Location to, ApplicableRegionSet toSet, Set<ProtectedRegion> entered, Set<ProtectedRegion> exited, MoveType moveType)
|
||||
{
|
||||
for(ProtectedRegion region : entered)
|
||||
if (!WorldGuardUtils.hasBypass(player))
|
||||
{
|
||||
Set<SoundData> sounds = region.getFlag(WorldGuardExtraFlagsPlugin.playSounds);
|
||||
if (sounds != null)
|
||||
{
|
||||
for(SoundData sound : sounds)
|
||||
{
|
||||
BukkitRunnable runnable = new BukkitRunnable()
|
||||
{
|
||||
@Override
|
||||
public void run()
|
||||
{
|
||||
player.playSound(player.getLocation(), sound.getSound(), Float.MAX_VALUE, 1);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void cancel()
|
||||
{
|
||||
super.cancel();
|
||||
|
||||
try
|
||||
{
|
||||
player.stopSound(sound.getSound());
|
||||
}
|
||||
catch(NoSuchMethodError ex)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
this.runnables.put(sound.getSound(), runnable);
|
||||
runnable.runTaskTimer(WorldGuardExtraFlagsPlugin.getPlugin(), 0L, sound.getInterval());
|
||||
}
|
||||
}
|
||||
this.check(player, toSet);
|
||||
}
|
||||
|
||||
for(ProtectedRegion region : exited)
|
||||
{
|
||||
Set<SoundData> sounds = region.getFlag(WorldGuardExtraFlagsPlugin.playSounds);
|
||||
if (sounds != null)
|
||||
{
|
||||
for(SoundData sound : sounds)
|
||||
{
|
||||
this.runnables.remove(sound.getSound()).cancel();
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void tick(Player player, ApplicableRegionSet set)
|
||||
{
|
||||
HashSet<String> foundSongs = new HashSet<String>();
|
||||
for(Set<SoundData> sounds : set.queryAllValues(WorldGuardExtraFlagsPlugin.getWorldGuard().wrapPlayer(player), WorldGuardExtraFlagsPlugin.playSounds))
|
||||
if (!WorldGuardUtils.hasBypass(player))
|
||||
{
|
||||
for(SoundData sound : sounds)
|
||||
this.check(player, set);
|
||||
}
|
||||
}
|
||||
|
||||
private void check(Player player, ApplicableRegionSet set)
|
||||
{
|
||||
Set<SoundData> soundData = set.queryValue(WorldGuardUtils.wrapPlayer(player), FlagUtils.PLAY_SOUNDS);
|
||||
if (soundData != null && soundData.size() > 0)
|
||||
{
|
||||
for(SoundData sound : soundData)
|
||||
{
|
||||
foundSongs.add(sound.getSound());
|
||||
|
||||
if (!this.runnables.containsKey(sound.getSound()))
|
||||
{
|
||||
BukkitRunnable runnable = new BukkitRunnable()
|
||||
|
@ -116,29 +91,45 @@ public class PlaySoundsFlag extends Handler
|
|||
{
|
||||
super.cancel();
|
||||
|
||||
try
|
||||
if (WorldGuardExtraFlagsPlugin.isSupportsStopSound())
|
||||
{
|
||||
player.stopSound(sound.getSound());
|
||||
}
|
||||
catch(NoSuchMethodError ex)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
this.runnables.put(sound.getSound(), runnable);
|
||||
runnable.runTaskTimer(WorldGuardExtraFlagsPlugin.getPlugin(), 0L, sound.getInterval());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for(Entry<String, BukkitRunnable> runnables : this.runnables.entrySet())
|
||||
Iterator<Entry<String, BukkitRunnable>> runnables = this.runnables.entrySet().iterator();
|
||||
while (runnables.hasNext())
|
||||
{
|
||||
if (!foundSongs.contains(runnables.getKey()))
|
||||
Entry<String, BukkitRunnable> runnable = runnables.next();
|
||||
|
||||
if (soundData != null && soundData.size() > 0)
|
||||
{
|
||||
this.runnables.remove(runnables.getKey()).cancel();;
|
||||
boolean skip = false;
|
||||
for(SoundData sound : soundData)
|
||||
{
|
||||
if (sound.getSound().equals(runnable.getKey()))
|
||||
{
|
||||
skip = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (skip)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
runnable.getValue().cancel();
|
||||
|
||||
runnables.remove();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
package net.goldtreeservers.worldguardextraflags.flags;
|
||||
package net.goldtreeservers.worldguardextraflags.flags.handlers;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
|
@ -14,6 +14,8 @@ import com.sk89q.worldguard.session.Session;
|
|||
import com.sk89q.worldguard.session.handler.Handler;
|
||||
|
||||
import net.goldtreeservers.worldguardextraflags.WorldGuardExtraFlagsPlugin;
|
||||
import net.goldtreeservers.worldguardextraflags.utils.FlagUtils;
|
||||
import net.goldtreeservers.worldguardextraflags.utils.WorldGuardUtils;
|
||||
|
||||
public class TeleportOnEntryFlag extends Handler
|
||||
{
|
||||
|
@ -36,15 +38,19 @@ public class TeleportOnEntryFlag extends Handler
|
|||
@Override
|
||||
public boolean onCrossBoundary(Player player, Location from, Location to, ApplicableRegionSet toSet, Set<ProtectedRegion> entered, Set<ProtectedRegion> exited, MoveType moveType)
|
||||
{
|
||||
if (!player.hasMetadata("WorldGuardExtraFlagsWaitingForTeleportationToBeDone"))
|
||||
if (!WorldGuardUtils.hasBypass(player))
|
||||
{
|
||||
com.sk89q.worldedit.Location location = toSet.queryValue(WorldGuardExtraFlagsPlugin.getWorldGuard().wrapPlayer(player), WorldGuardExtraFlagsPlugin.teleportOnEntry);
|
||||
if (location != null)
|
||||
if (!player.hasMetadata("WGEFP-TPOEF"))
|
||||
{
|
||||
player.setMetadata("WorldGuardExtraFlagsWaitingForTeleportationToBeDone", new FixedMetadataValue(WorldGuardExtraFlagsPlugin.getPlugin(), null));
|
||||
player.teleport(BukkitUtil.toLocation(location));
|
||||
com.sk89q.worldedit.Location location = toSet.queryValue(WorldGuardUtils.wrapPlayer(player), FlagUtils.TELEPORT_ON_ENTRY);
|
||||
if (location != null)
|
||||
{
|
||||
player.setMetadata("WGEFP-TPOEF", new FixedMetadataValue(WorldGuardExtraFlagsPlugin.getPlugin(), null));
|
||||
player.teleport(BukkitUtil.toLocation(location));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
package net.goldtreeservers.worldguardextraflags.flags;
|
||||
package net.goldtreeservers.worldguardextraflags.flags.handlers;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
|
@ -14,6 +14,8 @@ import com.sk89q.worldguard.session.Session;
|
|||
import com.sk89q.worldguard.session.handler.Handler;
|
||||
|
||||
import net.goldtreeservers.worldguardextraflags.WorldGuardExtraFlagsPlugin;
|
||||
import net.goldtreeservers.worldguardextraflags.utils.FlagUtils;
|
||||
import net.goldtreeservers.worldguardextraflags.utils.WorldGuardUtils;
|
||||
|
||||
public class TeleportOnExitFlag extends Handler
|
||||
{
|
||||
|
@ -36,19 +38,24 @@ public class TeleportOnExitFlag extends Handler
|
|||
@Override
|
||||
public boolean onCrossBoundary(Player player, Location from, Location to, ApplicableRegionSet toSet, Set<ProtectedRegion> entered, Set<ProtectedRegion> exited, MoveType moveType)
|
||||
{
|
||||
if (!player.hasMetadata("WorldGuardExtraFlagsWaitingForTeleportationToBeDone"))
|
||||
if (!WorldGuardUtils.hasBypass(player))
|
||||
{
|
||||
for(ProtectedRegion region : exited)
|
||||
if (!player.hasMetadata("WGEFP-TPOEF"))
|
||||
{
|
||||
com.sk89q.worldedit.Location location = region.getFlag(WorldGuardExtraFlagsPlugin.teleportOnExit);
|
||||
if (location != null)
|
||||
for (ProtectedRegion exitd : exited)
|
||||
{
|
||||
player.setMetadata("WorldGuardExtraFlagsWaitingForTeleportationToBeDone", new FixedMetadataValue(WorldGuardExtraFlagsPlugin.getPlugin(), null));
|
||||
player.teleport(BukkitUtil.toLocation(location));
|
||||
break;
|
||||
com.sk89q.worldedit.Location location = exitd.getFlag(FlagUtils.TELEPORT_ON_EXIT);
|
||||
if (location != null)
|
||||
{
|
||||
player.setMetadata("WGEFP-TPOEF", new FixedMetadataValue(WorldGuardExtraFlagsPlugin.getPlugin(), null));
|
||||
player.teleport(BukkitUtil.toLocation(location));
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
package net.goldtreeservers.worldguardextraflags.flags;
|
||||
package net.goldtreeservers.worldguardextraflags.flags.handlers;
|
||||
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
|
@ -9,10 +9,11 @@ import com.sk89q.worldedit.bukkit.BukkitUtil;
|
|||
import com.sk89q.worldedit.extension.platform.Actor;
|
||||
import com.sk89q.worldedit.extent.AbstractDelegateExtent;
|
||||
import com.sk89q.worldedit.extent.Extent;
|
||||
import com.sk89q.worldguard.protection.ApplicableRegionSet;
|
||||
import com.sk89q.worldguard.protection.flags.StateFlag.State;
|
||||
|
||||
import net.goldtreeservers.worldguardextraflags.WorldGuardExtraFlagsPlugin;
|
||||
import net.goldtreeservers.worldguardextraflags.utils.FlagUtils;
|
||||
import net.goldtreeservers.worldguardextraflags.utils.WorldGuardUtils;
|
||||
|
||||
public class WorldEditFlag extends AbstractDelegateExtent
|
||||
{
|
||||
|
@ -28,15 +29,13 @@ public class WorldEditFlag extends AbstractDelegateExtent
|
|||
public boolean setBlock(Vector location, BaseBlock block) throws WorldEditException
|
||||
{
|
||||
Player player = WorldGuardExtraFlagsPlugin.getPlugin().getServer().getPlayer(this.actor.getUniqueId());
|
||||
if (WorldGuardExtraFlagsPlugin.getWorldGuard().getSessionManager().hasBypass(player, player.getWorld()))
|
||||
if (WorldGuardUtils.hasBypass(player))
|
||||
{
|
||||
return super.setBlock(location, block);
|
||||
}
|
||||
else
|
||||
{
|
||||
ApplicableRegionSet regions = WorldGuardExtraFlagsPlugin.getWorldGuard().getRegionContainer().createQuery().getApplicableRegions(BukkitUtil.toLocation(player.getWorld(), location));
|
||||
State state = regions.queryValue(WorldGuardExtraFlagsPlugin.getWorldGuard().wrapPlayer(player), WorldGuardExtraFlagsPlugin.worldEdit);
|
||||
if (state != State.DENY)
|
||||
if (WorldGuardExtraFlagsPlugin.getWorldGuardPlugin().getRegionContainer().createQuery().getApplicableRegions(BukkitUtil.toLocation(player.getWorld(), location)).queryValue(WorldGuardUtils.wrapPlayer(player), FlagUtils.WORLDEDIT) != State.DENY)
|
||||
{
|
||||
return super.setBlock(location, block);
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
package net.goldtreeservers.worldguardextraflags.flags;
|
||||
package net.goldtreeservers.worldguardextraflags.flags.helpers;
|
||||
|
||||
import java.util.Set;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package net.goldtreeservers.worldguardextraflags.flags;
|
||||
package net.goldtreeservers.worldguardextraflags.flags.helpers;
|
||||
|
||||
import org.bukkit.Material;
|
||||
|
||||
|
@ -22,7 +22,15 @@ public class MaterialFlag extends Flag<Material>
|
|||
@Override
|
||||
public Material parseInput(FlagContext context) throws InvalidFlagFormat
|
||||
{
|
||||
return Material.getMaterial(context.getUserInput().trim().toUpperCase());
|
||||
Material material = Material.getMaterial(context.getUserInput().trim().toUpperCase());
|
||||
if (material != null)
|
||||
{
|
||||
return material;
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new InvalidFlagFormat("Unable to find the material!");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
|
@ -1,4 +1,4 @@
|
|||
package net.goldtreeservers.worldguardextraflags.flags;
|
||||
package net.goldtreeservers.worldguardextraflags.flags.helpers;
|
||||
|
||||
import org.bukkit.potion.PotionEffect;
|
||||
import org.bukkit.potion.PotionEffectType;
|
||||
|
@ -26,7 +26,15 @@ public class PotionEffectFlag extends Flag<PotionEffect>
|
|||
String[] splitd = context.getUserInput().trim().split(" ");
|
||||
if (splitd.length == 2)
|
||||
{
|
||||
return new PotionEffect(PotionEffectType.getByName(splitd[0]), Integer.MAX_VALUE, new Integer(splitd[1]));
|
||||
PotionEffectType potionEffect = PotionEffectType.getByName(splitd[0]);
|
||||
if (potionEffect != null)
|
||||
{
|
||||
return new PotionEffect(potionEffect, 100, new Integer(splitd[1]));
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new InvalidFlagFormat("Unable to find the potion effect!");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -38,6 +46,6 @@ public class PotionEffectFlag extends Flag<PotionEffect>
|
|||
public PotionEffect unmarshal(Object o)
|
||||
{
|
||||
String[] splitd = o.toString().split(" ");
|
||||
return new PotionEffect(PotionEffectType.getByName(splitd[0]), Integer.MAX_VALUE, new Integer(splitd[1]));
|
||||
return new PotionEffect(PotionEffectType.getByName(splitd[0]), 100, new Integer(splitd[1]));
|
||||
}
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
package net.goldtreeservers.worldguardextraflags.flags;
|
||||
package net.goldtreeservers.worldguardextraflags.flags.helpers;
|
||||
|
||||
import org.bukkit.potion.PotionEffectType;
|
||||
|
||||
|
@ -22,7 +22,15 @@ public class PotionEffectTypeFlag extends Flag<PotionEffectType>
|
|||
@Override
|
||||
public PotionEffectType parseInput(FlagContext context) throws InvalidFlagFormat
|
||||
{
|
||||
return PotionEffectType.getByName(context.getUserInput().trim());
|
||||
PotionEffectType potionEffect = PotionEffectType.getByName(context.getUserInput().trim());
|
||||
if (potionEffect != null)
|
||||
{
|
||||
return potionEffect;
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new InvalidFlagFormat("Unable to find the potion effect!");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
|
@ -1,4 +1,4 @@
|
|||
package net.goldtreeservers.worldguardextraflags.flags;
|
||||
package net.goldtreeservers.worldguardextraflags.flags.helpers;
|
||||
|
||||
import com.sk89q.worldguard.protection.flags.Flag;
|
||||
import com.sk89q.worldguard.protection.flags.FlagContext;
|
|
@ -0,0 +1,27 @@
|
|||
package net.goldtreeservers.worldguardextraflags.helpers;
|
||||
|
||||
import org.bukkit.Color;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import net.goldtreeservers.worldguardextraflags.utils.TimeUtils;
|
||||
|
||||
@RequiredArgsConstructor
|
||||
public class PotionEffectDetails
|
||||
{
|
||||
@Getter private final double endTime;
|
||||
@Getter private final int amplifier;
|
||||
@Getter private final boolean ambient;
|
||||
@Getter private final boolean particles;
|
||||
@Getter private final Color color;
|
||||
|
||||
public double getTimeLeft()
|
||||
{
|
||||
return this.endTime - TimeUtils.getUnixtimestamp();
|
||||
}
|
||||
|
||||
public int getTimeLeftInTicks()
|
||||
{
|
||||
return (int)(this.getTimeLeft() / 0.05);
|
||||
}
|
||||
}
|
|
@ -4,6 +4,7 @@ import java.util.Set;
|
|||
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.block.BlockState;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.Event.Result;
|
||||
import org.bukkit.event.EventHandler;
|
||||
|
@ -17,30 +18,28 @@ import com.sk89q.worldguard.protection.ApplicableRegionSet;
|
|||
import com.sk89q.worldguard.protection.flags.StateFlag.State;
|
||||
|
||||
import net.goldtreeservers.worldguardextraflags.WorldGuardExtraFlagsPlugin;
|
||||
import net.goldtreeservers.worldguardextraflags.utils.FlagUtils;
|
||||
import net.goldtreeservers.worldguardextraflags.utils.WorldGuardUtils;
|
||||
|
||||
public class BlockListener implements Listener
|
||||
{
|
||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||
public void onEntityBlockFormEvent(EntityBlockFormEvent event)
|
||||
{
|
||||
if (WorldGuardExtraFlagsPlugin.isSupportingFrostwalker())
|
||||
if (WorldGuardExtraFlagsPlugin.isSupportFrostwalker())
|
||||
{
|
||||
if (event.getNewState().getType() == Material.FROSTED_ICE)
|
||||
BlockState newState = event.getNewState();
|
||||
if (newState.getType() == Material.FROSTED_ICE)
|
||||
{
|
||||
ApplicableRegionSet regions = WorldGuardExtraFlagsPlugin.getWorldGuard().getRegionContainer().createQuery().getApplicableRegions(event.getNewState().getLocation());
|
||||
State state = null;
|
||||
if (event.getEntity() instanceof Player)
|
||||
{
|
||||
state = regions.queryValue(WorldGuardExtraFlagsPlugin.getWorldGuard().wrapPlayer(((Player)event.getEntity())), WorldGuardExtraFlagsPlugin.frostwalker);
|
||||
}
|
||||
else
|
||||
{
|
||||
state = regions.queryValue(null, WorldGuardExtraFlagsPlugin.frostwalker);
|
||||
}
|
||||
|
||||
if (state == State.DENY)
|
||||
{
|
||||
event.setCancelled(true);
|
||||
Player player = (Player)event.getEntity();
|
||||
|
||||
ApplicableRegionSet regions = WorldGuardExtraFlagsPlugin.getWorldGuardPlugin().getRegionContainer().createQuery().getApplicableRegions(newState.getLocation());
|
||||
if (regions.queryValue(WorldGuardUtils.wrapPlayer(player), FlagUtils.FROSTWALKER) == State.DENY)
|
||||
{
|
||||
event.setCancelled(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -56,20 +55,20 @@ public class BlockListener implements Listener
|
|||
{
|
||||
Player player = (Player)cause;
|
||||
|
||||
if (!WorldGuardExtraFlagsPlugin.getWorldGuard().getSessionManager().hasBypass(player, player.getWorld()))
|
||||
if (!WorldGuardExtraFlagsPlugin.getWorldGuardPlugin().getSessionManager().hasBypass(player, player.getWorld()))
|
||||
{
|
||||
for(Block block : event.getBlocks())
|
||||
{
|
||||
ApplicableRegionSet regions = WorldGuardExtraFlagsPlugin.getWorldGuard().getRegionContainer().createQuery().getApplicableRegions(block.getLocation());
|
||||
ApplicableRegionSet regions = WorldGuardExtraFlagsPlugin.getWorldGuardPlugin().getRegionContainer().createQuery().getApplicableRegions(block.getLocation());
|
||||
|
||||
Set<Material> state = regions.queryValue(WorldGuardExtraFlagsPlugin.getWorldGuard().wrapPlayer(player), WorldGuardExtraFlagsPlugin.allowBlockPlace);
|
||||
Set<Material> state = regions.queryValue(WorldGuardUtils.wrapPlayer(player), FlagUtils.ALLOW_BLOCK_PLACE);
|
||||
if (state != null && state.contains(block.getType()))
|
||||
{
|
||||
event.setResult(Result.ALLOW);
|
||||
}
|
||||
else
|
||||
{
|
||||
Set<Material> state2 = regions.queryValue(WorldGuardExtraFlagsPlugin.getWorldGuard().wrapPlayer(player), WorldGuardExtraFlagsPlugin.denyBlockPlace);
|
||||
Set<Material> state2 = regions.queryValue(WorldGuardUtils.wrapPlayer(player), FlagUtils.DENY_BLOCK_PLACE);
|
||||
if (state2 != null && state2.contains(block.getType()))
|
||||
{
|
||||
event.setResult(Result.DENY);
|
||||
|
@ -96,20 +95,20 @@ public class BlockListener implements Listener
|
|||
{
|
||||
Player player = (Player)cause;
|
||||
|
||||
if (!WorldGuardExtraFlagsPlugin.getWorldGuard().getSessionManager().hasBypass(player, player.getWorld()))
|
||||
if (!WorldGuardExtraFlagsPlugin.getWorldGuardPlugin().getSessionManager().hasBypass(player, player.getWorld()))
|
||||
{
|
||||
for(Block block : event.getBlocks())
|
||||
{
|
||||
ApplicableRegionSet regions = WorldGuardExtraFlagsPlugin.getWorldGuard().getRegionContainer().createQuery().getApplicableRegions(block.getLocation());
|
||||
ApplicableRegionSet regions = WorldGuardExtraFlagsPlugin.getWorldGuardPlugin().getRegionContainer().createQuery().getApplicableRegions(block.getLocation());
|
||||
|
||||
Set<Material> state = regions.queryValue(WorldGuardExtraFlagsPlugin.getWorldGuard().wrapPlayer(player), WorldGuardExtraFlagsPlugin.allowBlockBreak);
|
||||
Set<Material> state = regions.queryValue(WorldGuardUtils.wrapPlayer(player), FlagUtils.ALLOW_BLOCK_BREAK);
|
||||
if (state != null && state.contains(block.getType()))
|
||||
{
|
||||
event.setResult(Result.ALLOW);
|
||||
}
|
||||
else
|
||||
{
|
||||
Set<Material> state2 = regions.queryValue(WorldGuardExtraFlagsPlugin.getWorldGuard().wrapPlayer(player), WorldGuardExtraFlagsPlugin.denyBlockBreak);
|
||||
Set<Material> state2 = regions.queryValue(WorldGuardUtils.wrapPlayer(player), FlagUtils.DENY_BLOCK_BREAK);
|
||||
if (state2 != null && state2.contains(block.getType()))
|
||||
{
|
||||
event.setResult(Result.DENY);
|
||||
|
|
|
@ -10,6 +10,7 @@ import com.sk89q.worldguard.protection.ApplicableRegionSet;
|
|||
import com.sk89q.worldguard.protection.flags.StateFlag.State;
|
||||
|
||||
import net.goldtreeservers.worldguardextraflags.WorldGuardExtraFlagsPlugin;
|
||||
import net.goldtreeservers.worldguardextraflags.utils.FlagUtils;
|
||||
|
||||
public class EntityListener implements Listener
|
||||
{
|
||||
|
@ -18,12 +19,11 @@ public class EntityListener implements Listener
|
|||
{
|
||||
for(Block block : event.getBlocks())
|
||||
{
|
||||
ApplicableRegionSet regions = WorldGuardExtraFlagsPlugin.getWorldGuard().getRegionContainer().createQuery().getApplicableRegions(block.getLocation());
|
||||
State allowNetherPortals = regions.queryValue(null, WorldGuardExtraFlagsPlugin.netherPortals);
|
||||
if (allowNetherPortals == State.DENY)
|
||||
ApplicableRegionSet regions = WorldGuardExtraFlagsPlugin.getWorldGuardPlugin().getRegionContainer().createQuery().getApplicableRegions(block.getLocation());
|
||||
if (regions.queryValue(null, FlagUtils.NETHER_PORTALS) == State.DENY)
|
||||
{
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
package net.goldtreeservers.worldguardextraflags.listeners;
|
||||
|
||||
import org.bukkit.entity.LivingEntity;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
|
@ -11,29 +10,28 @@ import com.sk89q.worldguard.protection.ApplicableRegionSet;
|
|||
import com.sk89q.worldguard.protection.flags.StateFlag.State;
|
||||
|
||||
import net.goldtreeservers.worldguardextraflags.WorldGuardExtraFlagsPlugin;
|
||||
import net.goldtreeservers.worldguardextraflags.utils.FlagUtils;
|
||||
import net.goldtreeservers.worldguardextraflags.utils.WorldGuardUtils;
|
||||
|
||||
public class EntityListenerOnePointNine implements Listener
|
||||
{
|
||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||
public void onEntityToggleGlideEvent(EntityToggleGlideEvent event)
|
||||
{
|
||||
if (event.getEntity() instanceof LivingEntity)
|
||||
if (event.getEntity() instanceof Player)
|
||||
{
|
||||
if (event.getEntity() instanceof Player)
|
||||
Player player = (Player)event.getEntity();
|
||||
if (!WorldGuardUtils.hasBypass(player))
|
||||
{
|
||||
if (WorldGuardExtraFlagsPlugin.getWorldGuard().getSessionManager().hasBypass((Player)event.getEntity(), ((Player)event.getEntity()).getWorld()))
|
||||
ApplicableRegionSet regions = WorldGuardExtraFlagsPlugin.getWorldGuardPlugin().getRegionContainer().createQuery().getApplicableRegions(player.getLocation());
|
||||
|
||||
State state = regions.queryValue(WorldGuardUtils.wrapPlayer(player), FlagUtils.GLIDE);
|
||||
if (state != null)
|
||||
{
|
||||
return;
|
||||
event.setCancelled(true);
|
||||
player.setGliding(state == State.ALLOW);
|
||||
}
|
||||
}
|
||||
|
||||
ApplicableRegionSet regions = WorldGuardExtraFlagsPlugin.getWorldGuard().getRegionContainer().createQuery().getApplicableRegions(event.getEntity().getLocation());
|
||||
State allowGliding = regions.queryValue(event.getEntity() instanceof Player ? WorldGuardExtraFlagsPlugin.getWorldGuard().wrapPlayer((Player)event.getEntity()) : null, WorldGuardExtraFlagsPlugin.glide);
|
||||
if (allowGliding != null)
|
||||
{
|
||||
event.setCancelled(true);
|
||||
((LivingEntity)event.getEntity()).setGliding(allowGliding == State.ALLOW);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,15 +7,16 @@ import org.bukkit.event.Listener;
|
|||
import net.ess3.api.events.GodStatusChangeEvent;
|
||||
import net.goldtreeservers.worldguardextraflags.WorldGuardExtraFlagsPlugin;
|
||||
import net.goldtreeservers.worldguardextraflags.flags.GodmodeFlag;
|
||||
import net.goldtreeservers.worldguardextraflags.utils.WorldGuardUtils;
|
||||
|
||||
public class EssentialsListener implements Listener
|
||||
{
|
||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||
public void onGodStatusChangeEvent(GodStatusChangeEvent event)
|
||||
{
|
||||
if (!WorldGuardExtraFlagsPlugin.getWorldGuard().getSessionManager().hasBypass(event.getController().getBase(), event.getController().getBase().getWorld()))
|
||||
if (!WorldGuardUtils.hasBypass(event.getController().getBase()))
|
||||
{
|
||||
if (WorldGuardExtraFlagsPlugin.getWorldGuard().getSessionManager().get(event.getController().getBase()).getHandler(GodmodeFlag.class).getIsGodmodEnbled() != null)
|
||||
if (WorldGuardExtraFlagsPlugin.getWorldGuardPlugin().getSessionManager().get(event.getController().getBase()).getHandler(GodmodeFlag.class).getIsGodmodeEnabled() != null)
|
||||
{
|
||||
event.setCancelled(true);
|
||||
}
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
package net.goldtreeservers.worldguardextraflags.listeners;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.GameMode;
|
||||
|
@ -27,8 +25,6 @@ import org.bukkit.inventory.ItemStack;
|
|||
import org.bukkit.inventory.meta.ItemMeta;
|
||||
import org.bukkit.inventory.meta.PotionMeta;
|
||||
import org.bukkit.potion.Potion;
|
||||
import org.bukkit.potion.PotionEffect;
|
||||
import org.bukkit.potion.PotionEffectType;
|
||||
import org.bukkit.scheduler.BukkitRunnable;
|
||||
|
||||
import com.sk89q.worldedit.Location;
|
||||
|
@ -40,7 +36,9 @@ import net.elseland.xikage.MythicMobs.Mobs.EggManager;
|
|||
import net.elseland.xikage.MythicMobs.Mobs.MythicMob;
|
||||
import net.goldtreeservers.worldguardextraflags.WorldGuardExtraFlagsPlugin;
|
||||
import net.goldtreeservers.worldguardextraflags.flags.FlyFlag;
|
||||
import net.goldtreeservers.worldguardextraflags.flags.GiveEffectsFlag;
|
||||
import net.goldtreeservers.worldguardextraflags.flags.handlers.GiveEffectsFlag;
|
||||
import net.goldtreeservers.worldguardextraflags.utils.FlagUtils;
|
||||
import net.goldtreeservers.worldguardextraflags.utils.WorldGuardUtils;
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
public class PlayerListener implements Listener
|
||||
|
@ -48,21 +46,24 @@ public class PlayerListener implements Listener
|
|||
@EventHandler(priority = EventPriority.MONITOR)
|
||||
public void onPlayerTeleportEvent(PlayerTeleportEvent event)
|
||||
{
|
||||
event.getPlayer().removeMetadata("WorldGuardExtraFlagsWaitingForTeleportationToBeDone", WorldGuardExtraFlagsPlugin.getPlugin());
|
||||
event.getPlayer().removeMetadata("WGEFP-TPOEF", WorldGuardExtraFlagsPlugin.getPlugin());
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGHEST)
|
||||
public void onPlayerDeathEvent(PlayerDeathEvent event)
|
||||
{
|
||||
ApplicableRegionSet regions = WorldGuardExtraFlagsPlugin.getWorldGuard().getRegionContainer().createQuery().getApplicableRegions(event.getEntity().getLocation());
|
||||
Boolean keepInventory = regions.queryValue(WorldGuardExtraFlagsPlugin.getWorldGuard().wrapPlayer(event.getEntity()), WorldGuardExtraFlagsPlugin.keepInventory);
|
||||
Player player = event.getEntity();
|
||||
|
||||
ApplicableRegionSet regions = WorldGuardExtraFlagsPlugin.getWorldGuardPlugin().getRegionContainer().createQuery().getApplicableRegions(player.getLocation());
|
||||
|
||||
Boolean keepInventory = regions.queryValue(WorldGuardUtils.wrapPlayer(player), FlagUtils.KEEP_INVENTORY);
|
||||
if (keepInventory != null && keepInventory)
|
||||
{
|
||||
event.setKeepInventory(true);
|
||||
event.getDrops().clear();
|
||||
}
|
||||
|
||||
Boolean keepExp = regions.queryValue(WorldGuardExtraFlagsPlugin.getWorldGuard().wrapPlayer(event.getEntity()), WorldGuardExtraFlagsPlugin.keepExp);
|
||||
Boolean keepExp = regions.queryValue(WorldGuardUtils.wrapPlayer(player), FlagUtils.KEEP_EXP);
|
||||
if (keepExp != null && keepExp)
|
||||
{
|
||||
event.setKeepLevel(true);
|
||||
|
@ -73,9 +74,12 @@ public class PlayerListener implements Listener
|
|||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||
public void onAsyncPlayerChatEvent(AsyncPlayerChatEvent event)
|
||||
{
|
||||
ApplicableRegionSet regions = WorldGuardExtraFlagsPlugin.getWorldGuard().getRegionContainer().createQuery().getApplicableRegions(event.getPlayer().getLocation());
|
||||
String prefix = regions.queryValue(WorldGuardExtraFlagsPlugin.getWorldGuard().wrapPlayer(event.getPlayer()), WorldGuardExtraFlagsPlugin.chatPrefix);
|
||||
String suffix = regions.queryValue(WorldGuardExtraFlagsPlugin.getWorldGuard().wrapPlayer(event.getPlayer()), WorldGuardExtraFlagsPlugin.chatSuffix);
|
||||
Player player = event.getPlayer();
|
||||
|
||||
ApplicableRegionSet regions = WorldGuardExtraFlagsPlugin.getWorldGuardPlugin().getRegionContainer().createQuery().getApplicableRegions(player.getLocation());
|
||||
|
||||
String prefix = regions.queryValue(WorldGuardUtils.wrapPlayer(player), FlagUtils.CHAT_PREFIX);
|
||||
String suffix = regions.queryValue(WorldGuardUtils.wrapPlayer(player), FlagUtils.CHAT_SUFFIX);
|
||||
|
||||
if (prefix != null)
|
||||
{
|
||||
|
@ -91,8 +95,11 @@ public class PlayerListener implements Listener
|
|||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||
public void onPlayerRespawnEvent(PlayerRespawnEvent event)
|
||||
{
|
||||
ApplicableRegionSet regions = WorldGuardExtraFlagsPlugin.getWorldGuard().getRegionContainer().createQuery().getApplicableRegions(event.getPlayer().getLocation());
|
||||
Location respawnLocation = regions.queryValue(WorldGuardExtraFlagsPlugin.getWorldGuard().wrapPlayer(event.getPlayer()), WorldGuardExtraFlagsPlugin.respawnLocation);
|
||||
Player player = event.getPlayer();
|
||||
|
||||
ApplicableRegionSet regions = WorldGuardExtraFlagsPlugin.getWorldGuardPlugin().getRegionContainer().createQuery().getApplicableRegions(player.getLocation());
|
||||
|
||||
Location respawnLocation = regions.queryValue(WorldGuardUtils.wrapPlayer(player), FlagUtils.RESPAWN_LOCATION);
|
||||
if (respawnLocation != null)
|
||||
{
|
||||
event.setRespawnLocation(BukkitUtil.toLocation(respawnLocation));
|
||||
|
@ -105,30 +112,14 @@ public class PlayerListener implements Listener
|
|||
ItemMeta itemMeta = event.getItem().getItemMeta();
|
||||
if (itemMeta instanceof PotionMeta)
|
||||
{
|
||||
WorldGuardExtraFlagsPlugin.getWorldGuard().getSessionManager().get(event.getPlayer()).getHandler(GiveEffectsFlag.class).drinkPotion(Potion.fromItemStack(event.getItem()).getEffects());
|
||||
WorldGuardExtraFlagsPlugin.getWorldGuardPlugin().getSessionManager().get(event.getPlayer()).getHandler(GiveEffectsFlag.class).drinkPotion(event.getPlayer(), Potion.fromItemStack(event.getItem()).getEffects());
|
||||
}
|
||||
else
|
||||
{
|
||||
Material material = event.getItem().getType();
|
||||
if (material == Material.MILK_BUCKET)
|
||||
{
|
||||
WorldGuardExtraFlagsPlugin.getWorldGuard().getSessionManager().get(event.getPlayer()).getHandler(GiveEffectsFlag.class).drinkMilk();
|
||||
ApplicableRegionSet regions = WorldGuardExtraFlagsPlugin.getWorldGuard().getRegionContainer().createQuery().getApplicableRegions(event.getPlayer().getLocation());
|
||||
|
||||
List<PotionEffectType> effects = new ArrayList<PotionEffectType>();
|
||||
for(Set<PotionEffect> potionEffects : regions.queryAllValues(WorldGuardExtraFlagsPlugin.getWorldGuard().wrapPlayer(event.getPlayer()), WorldGuardExtraFlagsPlugin.giveEffects))
|
||||
{
|
||||
if (potionEffects != null)
|
||||
{
|
||||
for(PotionEffect potionEffect : potionEffects)
|
||||
{
|
||||
if (potionEffect != null)
|
||||
{
|
||||
effects.add(potionEffect.getType());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
WorldGuardExtraFlagsPlugin.getWorldGuardPlugin().getSessionManager().get(event.getPlayer()).getHandler(GiveEffectsFlag.class).drinkMilk(event.getPlayer());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -143,7 +134,7 @@ public class PlayerListener implements Listener
|
|||
{
|
||||
try
|
||||
{
|
||||
event.getPlayer().setAllowFlight(WorldGuardExtraFlagsPlugin.getWorldGuard().getSessionManager().get(event.getPlayer()).getHandler(FlyFlag.class).getFlyStatys());
|
||||
event.getPlayer().setAllowFlight(WorldGuardExtraFlagsPlugin.getWorldGuardPlugin().getSessionManager().get(event.getPlayer()).getHandler(FlyFlag.class).getCurrentValue());
|
||||
}
|
||||
catch(Exception ignored)
|
||||
{
|
||||
|
@ -153,12 +144,14 @@ public class PlayerListener implements Listener
|
|||
}.runTask(WorldGuardExtraFlagsPlugin.getPlugin());
|
||||
}
|
||||
|
||||
//Last time I checked, the plugin don't check or cancalled events
|
||||
@EventHandler(priority = EventPriority.LOWEST)
|
||||
public void onPlayerInteractEvent(PlayerInteractEvent event)
|
||||
{
|
||||
if (WorldGuardExtraFlagsPlugin.isMythicMobsEnabled())
|
||||
{
|
||||
if (event.getAction() == Action.RIGHT_CLICK_AIR || event.getAction() == Action.RIGHT_CLICK_BLOCK)
|
||||
Action action = event.getAction();
|
||||
if (action == Action.RIGHT_CLICK_AIR || action == Action.RIGHT_CLICK_BLOCK)
|
||||
{
|
||||
if (event.hasItem())
|
||||
{
|
||||
|
@ -173,9 +166,10 @@ public class PlayerListener implements Listener
|
|||
MythicMob mm = EggManager.getMythicMobFromEgg(lore.get(2));
|
||||
if (mm != null)
|
||||
{
|
||||
ApplicableRegionSet regions = WorldGuardExtraFlagsPlugin.getWorldGuard().getRegionContainer().createQuery().getApplicableRegions(event.getAction() == Action.RIGHT_CLICK_BLOCK ? event.getClickedBlock().getLocation() : event.getPlayer().getLocation());
|
||||
State state = regions.queryValue(WorldGuardExtraFlagsPlugin.getWorldGuard().wrapPlayer(event.getPlayer()), WorldGuardExtraFlagsPlugin.mythicMobsEggs);
|
||||
if (state == State.DENY)
|
||||
Player player = event.getPlayer();
|
||||
|
||||
ApplicableRegionSet regions = WorldGuardExtraFlagsPlugin.getWorldGuardPlugin().getRegionContainer().createQuery().getApplicableRegions(action == Action.RIGHT_CLICK_BLOCK ? event.getClickedBlock().getLocation() : player.getLocation());
|
||||
if (regions.queryValue(WorldGuardUtils.wrapPlayer(player), FlagUtils.MYTHICMOB_EGGS) == State.DENY)
|
||||
{
|
||||
event.setCancelled(true);
|
||||
event.setUseItemInHand(Result.DENY);
|
||||
|
@ -192,7 +186,7 @@ public class PlayerListener implements Listener
|
|||
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
||||
public void onPlayerChangedWorldEvent(PlayerChangedWorldEvent event)
|
||||
{
|
||||
if (WorldGuardExtraFlagsPlugin.isEssentialsEnabled()) //Essentials how dare u do this to me!?!
|
||||
if (WorldGuardExtraFlagsPlugin.isEssentialsEnable()) //Essentials how dare u do this to me!?!
|
||||
{
|
||||
Player player = event.getPlayer();
|
||||
if (player.getGameMode() != GameMode.CREATIVE && !WorldGuardExtraFlagsPlugin.getEssentialsPlugin().getUser(player).isAuthorized("essentials.fly"))
|
||||
|
@ -201,7 +195,7 @@ public class PlayerListener implements Listener
|
|||
|
||||
try
|
||||
{
|
||||
player.setAllowFlight(WorldGuardExtraFlagsPlugin.getWorldGuard().getSessionManager().get(player).getHandler(FlyFlag.class).getFlyStatys());
|
||||
player.setAllowFlight(WorldGuardExtraFlagsPlugin.getWorldGuardPlugin().getSessionManager().get(player).getHandler(FlyFlag.class).getCurrentValue());
|
||||
}
|
||||
catch(Exception ignored)
|
||||
{
|
||||
|
@ -221,7 +215,7 @@ public class PlayerListener implements Listener
|
|||
{
|
||||
try
|
||||
{
|
||||
event.getPlayer().setAllowFlight(WorldGuardExtraFlagsPlugin.getWorldGuard().getSessionManager().get(event.getPlayer()).getHandler(FlyFlag.class).getFlyStatys());
|
||||
event.getPlayer().setAllowFlight(WorldGuardExtraFlagsPlugin.getWorldGuardPlugin().getSessionManager().get(event.getPlayer()).getHandler(FlyFlag.class).getCurrentValue());
|
||||
}
|
||||
catch(Exception ignored)
|
||||
{
|
||||
|
@ -234,9 +228,10 @@ public class PlayerListener implements Listener
|
|||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||
public void onPlayerItemDamageEvent(PlayerItemDamageEvent event)
|
||||
{
|
||||
ApplicableRegionSet regions = WorldGuardExtraFlagsPlugin.getWorldGuard().getRegionContainer().createQuery().getApplicableRegions(event.getPlayer().getLocation());
|
||||
State state = regions.queryState(WorldGuardExtraFlagsPlugin.getWorldGuard().wrapPlayer(event.getPlayer()), WorldGuardExtraFlagsPlugin.itemDurability);
|
||||
if (state == State.DENY)
|
||||
Player player = event.getPlayer();
|
||||
|
||||
ApplicableRegionSet regions = WorldGuardExtraFlagsPlugin.getWorldGuardPlugin().getRegionContainer().createQuery().getApplicableRegions(player.getLocation());
|
||||
if (regions.queryState(WorldGuardUtils.wrapPlayer(player), FlagUtils.ITEM_DURABILITY) == State.DENY)
|
||||
{
|
||||
event.setCancelled(true);
|
||||
}
|
||||
|
|
|
@ -4,7 +4,7 @@ import com.sk89q.worldedit.event.extent.EditSessionEvent;
|
|||
import com.sk89q.worldedit.util.eventbus.EventHandler;
|
||||
import com.sk89q.worldedit.util.eventbus.Subscribe;
|
||||
|
||||
import net.goldtreeservers.worldguardextraflags.flags.WorldEditFlag;
|
||||
import net.goldtreeservers.worldguardextraflags.flags.handlers.WorldEditFlag;
|
||||
|
||||
public class WorldEditListener
|
||||
{
|
||||
|
|
|
@ -12,6 +12,7 @@ import com.sk89q.worldguard.protection.regions.ProtectedCuboidRegion;
|
|||
import com.sk89q.worldguard.protection.regions.ProtectedRegion;
|
||||
|
||||
import net.goldtreeservers.worldguardextraflags.WorldGuardExtraFlagsPlugin;
|
||||
import net.goldtreeservers.worldguardextraflags.utils.FlagUtils;
|
||||
|
||||
public class WorldListener implements Listener
|
||||
{
|
||||
|
@ -24,9 +25,9 @@ public class WorldListener implements Listener
|
|||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||
public void onChunkUnloadEvent(ChunkUnloadEvent event)
|
||||
{
|
||||
for (ProtectedRegion region : WorldGuardExtraFlagsPlugin.getWorldGuard().getRegionManager(event.getWorld()).getApplicableRegions(new ProtectedCuboidRegion("UnloadChunkFlagTester", new BlockVector(event.getChunk().getX() * 16, 0, event.getChunk().getZ() * 16), new BlockVector(event.getChunk().getX() * 16 + 15, 256, event.getChunk().getZ() * 16 + 15))))
|
||||
for (ProtectedRegion region : WorldGuardExtraFlagsPlugin.getWorldGuardPlugin().getRegionManager(event.getWorld()).getApplicableRegions(new ProtectedCuboidRegion("UnloadChunkFlagTester", new BlockVector(event.getChunk().getX() * 16, 0, event.getChunk().getZ() * 16), new BlockVector(event.getChunk().getX() * 16 + 15, 256, event.getChunk().getZ() * 16 + 15))))
|
||||
{
|
||||
if (region.getFlag(WorldGuardExtraFlagsPlugin.chunkUnload) == State.DENY)
|
||||
if (region.getFlag(FlagUtils.CHUNK_UNLOAD) == State.DENY)
|
||||
{
|
||||
event.setCancelled(true);
|
||||
break;
|
||||
|
|
|
@ -24,8 +24,8 @@ public class FaweWorldEditFlag extends FaweMaskManager<Player>
|
|||
|
||||
public ProtectedRegion getRegion(final Player player, final Location loc)
|
||||
{
|
||||
final com.sk89q.worldguard.LocalPlayer localplayer = WorldGuardExtraFlagsPlugin.getWorldGuard().wrapPlayer(player);
|
||||
RegionManager manager = WorldGuardExtraFlagsPlugin.getWorldGuard().getRegionManager(player.getWorld());
|
||||
final com.sk89q.worldguard.LocalPlayer localplayer = WorldGuardExtraFlagsPlugin.getWorldGuardPlugin().wrapPlayer(player);
|
||||
RegionManager manager = WorldGuardExtraFlagsPlugin.getWorldGuardPlugin().getRegionManager(player.getWorld());
|
||||
final ProtectedRegion global = manager.getRegion("__global__");
|
||||
if (global != null && !isDenied(localplayer, global))
|
||||
{
|
||||
|
@ -45,7 +45,7 @@ public class FaweWorldEditFlag extends FaweMaskManager<Player>
|
|||
|
||||
public boolean isDenied(LocalPlayer localplayer, ProtectedRegion region)
|
||||
{
|
||||
return region.getFlag(WorldGuardExtraFlagsPlugin.worldEdit) == State.DENY;
|
||||
return region.getFlag(FlagUtils.WORLDEDIT) == State.DENY;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -0,0 +1,51 @@
|
|||
package net.goldtreeservers.worldguardextraflags.utils;
|
||||
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.potion.PotionEffect;
|
||||
import org.bukkit.potion.PotionEffectType;
|
||||
|
||||
import com.sk89q.worldguard.protection.flags.BooleanFlag;
|
||||
import com.sk89q.worldguard.protection.flags.CommandStringFlag;
|
||||
import com.sk89q.worldguard.protection.flags.DoubleFlag;
|
||||
import com.sk89q.worldguard.protection.flags.LocationFlag;
|
||||
import com.sk89q.worldguard.protection.flags.SetFlag;
|
||||
import com.sk89q.worldguard.protection.flags.StateFlag;
|
||||
import com.sk89q.worldguard.protection.flags.StringFlag;
|
||||
|
||||
import net.goldtreeservers.worldguardextraflags.flags.helpers.CustomSetFlag;
|
||||
import net.goldtreeservers.worldguardextraflags.flags.helpers.MaterialFlag;
|
||||
import net.goldtreeservers.worldguardextraflags.flags.helpers.PotionEffectFlag;
|
||||
import net.goldtreeservers.worldguardextraflags.flags.helpers.PotionEffectTypeFlag;
|
||||
import net.goldtreeservers.worldguardextraflags.flags.helpers.SoundDataFlag;
|
||||
|
||||
public final class FlagUtils
|
||||
{
|
||||
public final static LocationFlag TELEPORT_ON_ENTRY = new LocationFlag("teleport-on-entry");
|
||||
public final static LocationFlag TELEPORT_ON_EXIT = new LocationFlag("teleport-on-exit");
|
||||
public final static CustomSetFlag<String> COMMAND_ON_ENTRY = new CustomSetFlag<String>("command-on-entry", new CommandStringFlag(null));
|
||||
public final static CustomSetFlag<String> COMMAND_ON_EXIT = new CustomSetFlag<String>("command-on-exit", new CommandStringFlag(null));
|
||||
public final static CustomSetFlag<String> CONSOLE_COMMAND_ON_ENTRY = new CustomSetFlag<String>("console-command-on-entry", new CommandStringFlag(null));
|
||||
public final static CustomSetFlag<String> CONSOLE_COMMAND_ON_EXIT = new CustomSetFlag<String>("console-command-on-exit", new CommandStringFlag(null));
|
||||
public final static DoubleFlag WALK_SPEED = new DoubleFlag("walk-speed");
|
||||
public final static BooleanFlag KEEP_INVENTORY = new BooleanFlag("keep-inventory");
|
||||
public final static BooleanFlag KEEP_EXP = new BooleanFlag("keep-exp");
|
||||
public final static StringFlag CHAT_PREFIX = new StringFlag("chat-prefix");
|
||||
public final static StringFlag CHAT_SUFFIX = new StringFlag("chat-suffix");
|
||||
public final static SetFlag<PotionEffectType> BLOCKED_EFFECTS = new SetFlag<PotionEffectType>("blocked-effects", new PotionEffectTypeFlag(null));
|
||||
public final static StateFlag GODMODE = new StateFlag("godmode", false);
|
||||
public final static LocationFlag RESPAWN_LOCATION = new LocationFlag("respawn-location");
|
||||
public final static StateFlag WORLDEDIT = new StateFlag("worldedit", true);
|
||||
public final static SetFlag<PotionEffect> GIVE_EFFECTS = new SetFlag<PotionEffect>("give-effects", new PotionEffectFlag(null));
|
||||
public final static StateFlag FLY = new StateFlag("fly", false);
|
||||
public final static SetFlag<SoundData> PLAY_SOUNDS = new SetFlag<SoundData>("play-sounds", new SoundDataFlag(null));
|
||||
public final static StateFlag MYTHICMOB_EGGS = new StateFlag("mythicmobs-eggs", true);
|
||||
public final static StateFlag FROSTWALKER = new StateFlag("frostwalker", true);
|
||||
public final static StateFlag NETHER_PORTALS = new StateFlag("nether-portals", true);
|
||||
public final static SetFlag<Material> ALLOW_BLOCK_PLACE = new SetFlag<Material>("allow-block-place", new MaterialFlag(null));
|
||||
public final static SetFlag<Material> DENY_BLOCK_PLACE = new SetFlag<Material>("deny-block-place", new MaterialFlag(null));
|
||||
public final static SetFlag<Material> ALLOW_BLOCK_BREAK = new SetFlag<Material>("allow-block-break", new MaterialFlag(null));
|
||||
public final static SetFlag<Material> DENY_BLOCK_BREAK = new SetFlag<Material>("deny-block-break", new MaterialFlag(null));
|
||||
public final static StateFlag GLIDE = new StateFlag("glide", false);
|
||||
public final static StateFlag CHUNK_UNLOAD = new StateFlag("chunk-unload", true);
|
||||
public final static StateFlag ITEM_DURABILITY = new StateFlag("item-durability", true);
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
package net.goldtreeservers.worldguardextraflags.utils;
|
||||
|
||||
public class TimeUtils
|
||||
{
|
||||
public static double getUnixtimestamp()
|
||||
{
|
||||
return System.currentTimeMillis() / 1000;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,22 @@
|
|||
package net.goldtreeservers.worldguardextraflags.utils;
|
||||
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import com.sk89q.worldguard.LocalPlayer;
|
||||
|
||||
import net.goldtreeservers.worldguardextraflags.WorldGuardExtraFlagsPlugin;
|
||||
|
||||
public class WorldGuardUtils
|
||||
{
|
||||
public static LocalPlayer wrapPlayer(Player player)
|
||||
{
|
||||
return WorldGuardExtraFlagsPlugin.getWorldGuardPlugin().wrapPlayer(player);
|
||||
}
|
||||
|
||||
public static boolean hasBypass(Player player)
|
||||
{
|
||||
return WorldGuardExtraFlagsPlugin.getWorldGuardPlugin().getSessionManager().hasBypass(player, player.getWorld());
|
||||
|
||||
//TODO: Add flag & region specified permissions
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue