From 78add0a96f6b236718529e220ba7e9cfda81226c Mon Sep 17 00:00:00 2001 From: isokissa3 Date: Mon, 5 Aug 2019 22:17:40 +0300 Subject: [PATCH] Fixed nether-portals flag on 1.14 This needs clean up later... --- Common/pom.xml | 65 +--------------- Spigot-1_14/pom.xml | 74 +++++++++++++++++++ .../spigot1_14/EntityListener.java | 34 +++++++++ Spigot/pom.xml | 68 ++++++++++++++++- .../WorldGuardExtraFlagsPlugin.java | 28 +++++-- .../essentials/EssentialsHelper.java | 0 .../worldguardextraflags/fawe/FAWEHelper.java | 0 .../fawe/FaweWorldEditFlagMaskManager.java | 0 .../listeners/BlockListener.java | 0 .../listeners/EntityListener.java | 0 .../listeners/EntityListenerOnePointNine.java | 0 .../EntityPotionEffectEventListener.java | 0 .../listeners/EssentialsListener.java | 0 .../listeners/PlayerListener.java | 0 .../listeners/WorldEditListener.java | 0 .../listeners/WorldListener.java | 0 .../protocollib/ProtocolLibHelper.java | 0 .../RemoveEffectPacketListener.java | 0 pom.xml | 1 + 19 files changed, 201 insertions(+), 69 deletions(-) create mode 100644 Spigot-1_14/pom.xml create mode 100644 Spigot-1_14/src/main/java/net/goldtreeservers/worldguardextraflags/spigot1_14/EntityListener.java rename {Common => Spigot}/src/main/java/net/goldtreeservers/worldguardextraflags/WorldGuardExtraFlagsPlugin.java (87%) rename {Common => Spigot}/src/main/java/net/goldtreeservers/worldguardextraflags/essentials/EssentialsHelper.java (100%) rename {Common => Spigot}/src/main/java/net/goldtreeservers/worldguardextraflags/fawe/FAWEHelper.java (100%) rename {Common => Spigot}/src/main/java/net/goldtreeservers/worldguardextraflags/fawe/FaweWorldEditFlagMaskManager.java (100%) rename {Common => Spigot}/src/main/java/net/goldtreeservers/worldguardextraflags/listeners/BlockListener.java (100%) rename {Common => Spigot}/src/main/java/net/goldtreeservers/worldguardextraflags/listeners/EntityListener.java (100%) rename {Common => Spigot}/src/main/java/net/goldtreeservers/worldguardextraflags/listeners/EntityListenerOnePointNine.java (100%) rename {Common => Spigot}/src/main/java/net/goldtreeservers/worldguardextraflags/listeners/EntityPotionEffectEventListener.java (100%) rename {Common => Spigot}/src/main/java/net/goldtreeservers/worldguardextraflags/listeners/EssentialsListener.java (100%) rename {Common => Spigot}/src/main/java/net/goldtreeservers/worldguardextraflags/listeners/PlayerListener.java (100%) rename {Common => Spigot}/src/main/java/net/goldtreeservers/worldguardextraflags/listeners/WorldEditListener.java (100%) rename {Common => Spigot}/src/main/java/net/goldtreeservers/worldguardextraflags/listeners/WorldListener.java (100%) rename {Common => Spigot}/src/main/java/net/goldtreeservers/worldguardextraflags/protocollib/ProtocolLibHelper.java (100%) rename {Common => Spigot}/src/main/java/net/goldtreeservers/worldguardextraflags/protocollib/RemoveEffectPacketListener.java (100%) diff --git a/Common/pom.xml b/Common/pom.xml index fa23e2b..c945fd5 100644 --- a/Common/pom.xml +++ b/Common/pom.xml @@ -14,80 +14,21 @@ spigot-repo https://hub.spigotmc.org/nexus/content/repositories/snapshots/ - - sk89q-repo - https://maven.sk89q.com/repo/ - - - ess-repo - http://repo.ess3.net/content/groups/essentials - - - empcraft - http://ci.athion.net/job/FastAsyncWorldEdit/ws/mvn/ - - - dmulloy2-repo - http://repo.dmulloy2.net/nexus/repository/public/ - - - + net.goldtreeservers.worldguardextraflags wg ${project.version} - provided + compile - - net.goldtreeservers.worldguardextraflags - wg6 - ${project.version} - provided - - - net.goldtreeservers.worldguardextraflags - wg7 - ${project.version} - provided - - + org.spigotmc spigot-api 1.13-R0.1-SNAPSHOT provided - - com.sk89q.worldedit - worldedit-bukkit - 7.0.0-SNAPSHOT - provided - - - com.sk89q.worldguard - worldguard-legacy - 7.0.0-SNAPSHOT - provided - - - net.ess3 - Essentials - 2.13-SNAPSHOT - provided - - - com.boydti - fawe-api - 18.07.27-3ed2e57-1163-20.5.2 - provided - - - com.comphenix.protocol - ProtocolLib-API - 4.4.0 - provided - \ No newline at end of file diff --git a/Spigot-1_14/pom.xml b/Spigot-1_14/pom.xml new file mode 100644 index 0000000..ab1bc70 --- /dev/null +++ b/Spigot-1_14/pom.xml @@ -0,0 +1,74 @@ + + 4.0.0 + + net.goldtreeservers + worldguardextraflags + 4.1.2 + + + net.goldtreeservers.worldguardextraflags + spigot-1_14 + + + + spigot-repo + https://hub.spigotmc.org/nexus/content/repositories/snapshots/ + + + sk89q-repo + https://maven.sk89q.com/repo/ + + + ess-repo + http://repo.ess3.net/content/groups/essentials + + + empcraft + http://ci.athion.net/job/FastAsyncWorldEdit/ws/mvn/ + + + dmulloy2-repo + http://repo.dmulloy2.net/nexus/repository/public/ + + + + + + net.goldtreeservers.worldguardextraflags + wg + ${project.version} + provided + + + net.goldtreeservers.worldguardextraflags + wg6 + ${project.version} + provided + + + net.goldtreeservers.worldguardextraflags + wg7 + ${project.version} + provided + + + net.goldtreeservers.worldguardextraflags + common + ${project.version} + provided + + + + org.spigotmc + spigot-api + 1.14.4-R0.1-SNAPSHOT + provided + + + com.sk89q.worldguard + worldguard-legacy + 7.0.0-SNAPSHOT + provided + + + \ No newline at end of file diff --git a/Spigot-1_14/src/main/java/net/goldtreeservers/worldguardextraflags/spigot1_14/EntityListener.java b/Spigot-1_14/src/main/java/net/goldtreeservers/worldguardextraflags/spigot1_14/EntityListener.java new file mode 100644 index 0000000..b92a3e2 --- /dev/null +++ b/Spigot-1_14/src/main/java/net/goldtreeservers/worldguardextraflags/spigot1_14/EntityListener.java @@ -0,0 +1,34 @@ +package net.goldtreeservers.worldguardextraflags.spigot1_14; + +import org.bukkit.block.BlockState; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.world.PortalCreateEvent; + +import com.sk89q.worldguard.protection.ApplicableRegionSet; +import com.sk89q.worldguard.protection.flags.StateFlag.State; + +import lombok.Getter; +import lombok.RequiredArgsConstructor; +import net.goldtreeservers.worldguardextraflags.AbstractWorldGuardExtraFlagsPlugin; +import net.goldtreeservers.worldguardextraflags.flags.Flags; + +@RequiredArgsConstructor +public class EntityListener implements Listener +{ + @Getter private final AbstractWorldGuardExtraFlagsPlugin plugin; + + @EventHandler(ignoreCancelled = true) + public void onPortalCreateEvent(PortalCreateEvent event) + { + for(BlockState block : event.getBlocks()) + { + ApplicableRegionSet regions = this.plugin.getWorldGuardCommunicator().getRegionContainer().createQuery().getApplicableRegions(block.getLocation()); + if (regions.queryValue(null, Flags.NETHER_PORTALS) == State.DENY) + { + event.setCancelled(true); + break; + } + } + } +} diff --git a/Spigot/pom.xml b/Spigot/pom.xml index 8f2ffbf..b367e40 100644 --- a/Spigot/pom.xml +++ b/Spigot/pom.xml @@ -39,8 +39,29 @@ - - + + + + spigot-repo + https://hub.spigotmc.org/nexus/content/repositories/snapshots/ + + + sk89q-repo + https://maven.sk89q.com/repo/ + + + ess-repo + http://repo.ess3.net/content/groups/essentials + + + empcraft + http://ci.athion.net/job/FastAsyncWorldEdit/ws/mvn/ + + + dmulloy2-repo + http://repo.dmulloy2.net/nexus/repository/public/ + + @@ -67,5 +88,48 @@ ${project.version} compile + + net.goldtreeservers.worldguardextraflags + spigot-1_14 + ${project.version} + compile + + + + org.spigotmc + spigot-api + 1.13-R0.1-SNAPSHOT + provided + + + com.sk89q.worldedit + worldedit-bukkit + 7.0.0-SNAPSHOT + provided + + + com.sk89q.worldguard + worldguard-legacy + 7.0.0-SNAPSHOT + provided + + + net.ess3 + Essentials + 2.13-SNAPSHOT + provided + + + com.boydti + fawe-api + 18.07.27-3ed2e57-1163-20.5.2 + provided + + + com.comphenix.protocol + ProtocolLib-API + 4.4.0 + provided + \ No newline at end of file diff --git a/Common/src/main/java/net/goldtreeservers/worldguardextraflags/WorldGuardExtraFlagsPlugin.java b/Spigot/src/main/java/net/goldtreeservers/worldguardextraflags/WorldGuardExtraFlagsPlugin.java similarity index 87% rename from Common/src/main/java/net/goldtreeservers/worldguardextraflags/WorldGuardExtraFlagsPlugin.java rename to Spigot/src/main/java/net/goldtreeservers/worldguardextraflags/WorldGuardExtraFlagsPlugin.java index 8330c14..e3558a8 100644 --- a/Common/src/main/java/net/goldtreeservers/worldguardextraflags/WorldGuardExtraFlagsPlugin.java +++ b/Spigot/src/main/java/net/goldtreeservers/worldguardextraflags/WorldGuardExtraFlagsPlugin.java @@ -1,9 +1,12 @@ package net.goldtreeservers.worldguardextraflags; +import java.lang.reflect.ParameterizedType; + import org.bukkit.World; +import org.bukkit.block.BlockState; import org.bukkit.event.entity.EntityToggleGlideEvent; +import org.bukkit.event.world.PortalCreateEvent; import org.bukkit.plugin.Plugin; -import org.bukkit.plugin.java.JavaPlugin; import com.sk89q.worldedit.bukkit.WorldEditPlugin; import com.sk89q.worldguard.bukkit.WorldGuardPlugin; @@ -25,14 +28,12 @@ import net.goldtreeservers.worldguardextraflags.wg.wrappers.WorldGuardCommunicat import net.goldtreeservers.worldguardextraflags.wg.wrappers.v6.WorldGuardSixCommunicator; import net.goldtreeservers.worldguardextraflags.wg.wrappers.v7.WorldGuardSevenCommunicator; -public class WorldGuardExtraFlagsPlugin extends JavaPlugin +public class WorldGuardExtraFlagsPlugin extends AbstractWorldGuardExtraFlagsPlugin { @Getter private static WorldGuardExtraFlagsPlugin plugin; @Getter private WorldGuardPlugin worldGuardPlugin; @Getter private WorldEditPlugin worldEditPlugin; - - @Getter private WorldGuardCommunicator worldGuardCommunicator; @Getter private EssentialsHelper essentialsHelper; @Getter private FAWEHelper faweHelper; @@ -132,7 +133,6 @@ public class WorldGuardExtraFlagsPlugin extends JavaPlugin this.getServer().getPluginManager().registerEvents(new PlayerListener(this), this); this.getServer().getPluginManager().registerEvents(new BlockListener(this), this); - this.getServer().getPluginManager().registerEvents(new EntityListener(this), this); this.getServer().getPluginManager().registerEvents(new WorldListener(this), this); try @@ -147,6 +147,24 @@ public class WorldGuardExtraFlagsPlugin extends JavaPlugin } + try + { + ParameterizedType type = (ParameterizedType)PortalCreateEvent.class.getDeclaredField("blocks").getGenericType(); + Class clazz = (Class)type.getActualTypeArguments()[0]; + if (clazz == BlockState.class) + { + this.getServer().getPluginManager().registerEvents(new net.goldtreeservers.worldguardextraflags.spigot1_14.EntityListener(this), this); + } + else + { + this.getServer().getPluginManager().registerEvents(new EntityListener(this), this); + } + } + catch(Throwable ignored) + { + this.getServer().getPluginManager().registerEvents(new EntityListener(this), this); + } + if (this.faweHelper != null) { this.faweHelper.onEnable(); diff --git a/Common/src/main/java/net/goldtreeservers/worldguardextraflags/essentials/EssentialsHelper.java b/Spigot/src/main/java/net/goldtreeservers/worldguardextraflags/essentials/EssentialsHelper.java similarity index 100% rename from Common/src/main/java/net/goldtreeservers/worldguardextraflags/essentials/EssentialsHelper.java rename to Spigot/src/main/java/net/goldtreeservers/worldguardextraflags/essentials/EssentialsHelper.java diff --git a/Common/src/main/java/net/goldtreeservers/worldguardextraflags/fawe/FAWEHelper.java b/Spigot/src/main/java/net/goldtreeservers/worldguardextraflags/fawe/FAWEHelper.java similarity index 100% rename from Common/src/main/java/net/goldtreeservers/worldguardextraflags/fawe/FAWEHelper.java rename to Spigot/src/main/java/net/goldtreeservers/worldguardextraflags/fawe/FAWEHelper.java diff --git a/Common/src/main/java/net/goldtreeservers/worldguardextraflags/fawe/FaweWorldEditFlagMaskManager.java b/Spigot/src/main/java/net/goldtreeservers/worldguardextraflags/fawe/FaweWorldEditFlagMaskManager.java similarity index 100% rename from Common/src/main/java/net/goldtreeservers/worldguardextraflags/fawe/FaweWorldEditFlagMaskManager.java rename to Spigot/src/main/java/net/goldtreeservers/worldguardextraflags/fawe/FaweWorldEditFlagMaskManager.java diff --git a/Common/src/main/java/net/goldtreeservers/worldguardextraflags/listeners/BlockListener.java b/Spigot/src/main/java/net/goldtreeservers/worldguardextraflags/listeners/BlockListener.java similarity index 100% rename from Common/src/main/java/net/goldtreeservers/worldguardextraflags/listeners/BlockListener.java rename to Spigot/src/main/java/net/goldtreeservers/worldguardextraflags/listeners/BlockListener.java diff --git a/Common/src/main/java/net/goldtreeservers/worldguardextraflags/listeners/EntityListener.java b/Spigot/src/main/java/net/goldtreeservers/worldguardextraflags/listeners/EntityListener.java similarity index 100% rename from Common/src/main/java/net/goldtreeservers/worldguardextraflags/listeners/EntityListener.java rename to Spigot/src/main/java/net/goldtreeservers/worldguardextraflags/listeners/EntityListener.java diff --git a/Common/src/main/java/net/goldtreeservers/worldguardextraflags/listeners/EntityListenerOnePointNine.java b/Spigot/src/main/java/net/goldtreeservers/worldguardextraflags/listeners/EntityListenerOnePointNine.java similarity index 100% rename from Common/src/main/java/net/goldtreeservers/worldguardextraflags/listeners/EntityListenerOnePointNine.java rename to Spigot/src/main/java/net/goldtreeservers/worldguardextraflags/listeners/EntityListenerOnePointNine.java diff --git a/Common/src/main/java/net/goldtreeservers/worldguardextraflags/listeners/EntityPotionEffectEventListener.java b/Spigot/src/main/java/net/goldtreeservers/worldguardextraflags/listeners/EntityPotionEffectEventListener.java similarity index 100% rename from Common/src/main/java/net/goldtreeservers/worldguardextraflags/listeners/EntityPotionEffectEventListener.java rename to Spigot/src/main/java/net/goldtreeservers/worldguardextraflags/listeners/EntityPotionEffectEventListener.java diff --git a/Common/src/main/java/net/goldtreeservers/worldguardextraflags/listeners/EssentialsListener.java b/Spigot/src/main/java/net/goldtreeservers/worldguardextraflags/listeners/EssentialsListener.java similarity index 100% rename from Common/src/main/java/net/goldtreeservers/worldguardextraflags/listeners/EssentialsListener.java rename to Spigot/src/main/java/net/goldtreeservers/worldguardextraflags/listeners/EssentialsListener.java diff --git a/Common/src/main/java/net/goldtreeservers/worldguardextraflags/listeners/PlayerListener.java b/Spigot/src/main/java/net/goldtreeservers/worldguardextraflags/listeners/PlayerListener.java similarity index 100% rename from Common/src/main/java/net/goldtreeservers/worldguardextraflags/listeners/PlayerListener.java rename to Spigot/src/main/java/net/goldtreeservers/worldguardextraflags/listeners/PlayerListener.java diff --git a/Common/src/main/java/net/goldtreeservers/worldguardextraflags/listeners/WorldEditListener.java b/Spigot/src/main/java/net/goldtreeservers/worldguardextraflags/listeners/WorldEditListener.java similarity index 100% rename from Common/src/main/java/net/goldtreeservers/worldguardextraflags/listeners/WorldEditListener.java rename to Spigot/src/main/java/net/goldtreeservers/worldguardextraflags/listeners/WorldEditListener.java diff --git a/Common/src/main/java/net/goldtreeservers/worldguardextraflags/listeners/WorldListener.java b/Spigot/src/main/java/net/goldtreeservers/worldguardextraflags/listeners/WorldListener.java similarity index 100% rename from Common/src/main/java/net/goldtreeservers/worldguardextraflags/listeners/WorldListener.java rename to Spigot/src/main/java/net/goldtreeservers/worldguardextraflags/listeners/WorldListener.java diff --git a/Common/src/main/java/net/goldtreeservers/worldguardextraflags/protocollib/ProtocolLibHelper.java b/Spigot/src/main/java/net/goldtreeservers/worldguardextraflags/protocollib/ProtocolLibHelper.java similarity index 100% rename from Common/src/main/java/net/goldtreeservers/worldguardextraflags/protocollib/ProtocolLibHelper.java rename to Spigot/src/main/java/net/goldtreeservers/worldguardextraflags/protocollib/ProtocolLibHelper.java diff --git a/Common/src/main/java/net/goldtreeservers/worldguardextraflags/protocollib/RemoveEffectPacketListener.java b/Spigot/src/main/java/net/goldtreeservers/worldguardextraflags/protocollib/RemoveEffectPacketListener.java similarity index 100% rename from Common/src/main/java/net/goldtreeservers/worldguardextraflags/protocollib/RemoveEffectPacketListener.java rename to Spigot/src/main/java/net/goldtreeservers/worldguardextraflags/protocollib/RemoveEffectPacketListener.java diff --git a/pom.xml b/pom.xml index 1dce5f0..9a6a195 100644 --- a/pom.xml +++ b/pom.xml @@ -37,5 +37,6 @@ WG WG7 Spigot + Spigot-1_14 \ No newline at end of file