diff --git a/pom.xml b/pom.xml index df3a80ab8..821761b76 100644 --- a/pom.xml +++ b/pom.xml @@ -22,10 +22,6 @@ onarandombox http://repo.onarandombox.com/content/groups/public - - spigot - https://hub.spigotmc.org/nexus/content/groups/public/ - vault-repo http://nexus.hc.to/content/repositories/pub_releases @@ -279,10 +275,10 @@ - org.bukkit - bukkit - 1.13.2-R0.1-SNAPSHOT - provided + org.spigotmc + spigot-api + 1.16.5-R0.1-SNAPSHOT + provided @@ -311,6 +307,12 @@ CommandHandler 11 + + + net.minidev + json-smart + 2.3 + com.dumptruckman.minecraft buscript diff --git a/src/main/java/com/onarandombox/MultiverseCore/MVWorld.java b/src/main/java/com/onarandombox/MultiverseCore/MVWorld.java index d7367ad20..bbda63101 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/MVWorld.java +++ b/src/main/java/com/onarandombox/MultiverseCore/MVWorld.java @@ -20,28 +20,20 @@ import me.main__.util.SerializationConfig.ChangeDeniedException; import me.main__.util.SerializationConfig.NoSuchPropertyException; import me.main__.util.SerializationConfig.VirtualProperty; -import org.bukkit.ChatColor; -import org.bukkit.Difficulty; -import org.bukkit.GameMode; -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.World; +import net.minidev.json.JSONObject; +import org.bukkit.*; import org.bukkit.World.Environment; -import org.bukkit.WorldType; -import org.bukkit.command.CommandSender; import org.bukkit.configuration.serialization.SerializableAs; import org.bukkit.entity.Player; import org.bukkit.permissions.Permission; import org.bukkit.permissions.PermissionDefault; import org.bukkit.util.Vector; import org.jetbrains.annotations.Nullable; -import org.json.simple.JSONObject; import java.util.Collections; import java.util.List; import java.util.Map; import java.util.UUID; -import java.util.logging.Level; /** * The implementation of a Multiverse handled world. diff --git a/src/main/java/com/onarandombox/MultiverseCore/MultiverseCore.java b/src/main/java/com/onarandombox/MultiverseCore/MultiverseCore.java index 4af01ad61..8c9c307a4 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/MultiverseCore.java +++ b/src/main/java/com/onarandombox/MultiverseCore/MultiverseCore.java @@ -383,7 +383,6 @@ private void registerEvents() { pm.registerEvents(this.entityListener, this); pm.registerEvents(this.weatherListener, this); pm.registerEvents(this.portalListener, this); - Logging.info(ChatColor.GREEN + "We are aware of the warning about the deprecated event. There is no alternative that allows us to do what we need to do and performance impact is negligible. It is safe to ignore."); pm.registerEvents(this.worldListener, this); pm.registerEvents(new MVMapListener(this), this); } diff --git a/src/main/java/com/onarandombox/MultiverseCore/listeners/MVPlayerListener.java b/src/main/java/com/onarandombox/MultiverseCore/listeners/MVPlayerListener.java index 853ed55dd..334d7a786 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/listeners/MVPlayerListener.java +++ b/src/main/java/com/onarandombox/MultiverseCore/listeners/MVPlayerListener.java @@ -305,15 +305,7 @@ public void playerPortal(PlayerPortalEvent event) { + "' because enforceaccess is off."); } if (!plugin.getMVConfig().isUsingDefaultPortalSearch()) { - try { - Class.forName("org.bukkit.TravelAgent"); - if (event.getPortalTravelAgent() != null) { - event.getPortalTravelAgent().setSearchRadius(plugin.getMVConfig().getPortalSearchRadius()); - } - } catch (ClassNotFoundException ignore) { - Logging.fine("TravelAgent not available for PlayerPortalEvent for " + event.getPlayer().getName()); - } - + event.setSearchRadius(this.plugin.getMVConfig().getPortalSearchRadius()); } } diff --git a/src/main/java/com/onarandombox/MultiverseCore/listeners/MVPortalListener.java b/src/main/java/com/onarandombox/MultiverseCore/listeners/MVPortalListener.java index c348ac3da..55fd91ede 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/listeners/MVPortalListener.java +++ b/src/main/java/com/onarandombox/MultiverseCore/listeners/MVPortalListener.java @@ -12,6 +12,7 @@ import com.onarandombox.MultiverseCore.api.MultiverseWorld; import org.bukkit.Material; import org.bukkit.PortalType; +import org.bukkit.block.BlockState; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.block.Action; @@ -33,31 +34,48 @@ public MVPortalListener(MultiverseCore core) { } /** - * This is called when an entity creates a portal. - * - * @param event The event where an entity created a portal. + * This is called when a portal is formed. + * @param event The event where a portal was create or formed due to a world link */ - @EventHandler - public void entityPortalCreate(EntityCreatePortalEvent event) { - if (event.isCancelled() || event.getBlocks().size() == 0) { + @EventHandler(ignoreCancelled = true) + public void portalForm(PortalCreateEvent event) { + Logging.fine("Attempting to create portal at '%s' with reason: %s", event.getWorld().getName(), event.getReason()); + + MultiverseWorld world = this.plugin.getMVWorldManager().getMVWorld(event.getWorld()); + if (world == null) { + Logging.fine("World '%s' is not managed by Multiverse! Ignoring at PortalCreateEvent.", event.getWorld().getName()); return; } - MultiverseWorld world = this.plugin.getMVWorldManager().getMVWorld(event.getEntity().getWorld()); - // We have to do it like this due to a bug in 1.1-R3 - if (world != null && !world.getAllowedPortals().isPortalAllowed(event.getPortalType())) { - event.setCancelled(true); + + PortalType targetType; + switch (event.getReason()) { + case FIRE: + // Ensure portal by flint and steel actually creates nether + boolean isNether = false; + for (BlockState block : event.getBlocks()) { + if (block.getType() == Material.NETHER_PORTAL) { + isNether = true; + break; + } + } + if (!isNether) { + return; + } + targetType = PortalType.NETHER; + break; + case NETHER_PAIR: + targetType = PortalType.NETHER; + break; + case END_PLATFORM: + targetType = PortalType.ENDER; + break; + default: + Logging.fine("Portal created is not NETHER or ENDER type. Ignoring..."); + return; } - } - /** - * This is called when a portal is created as the result of another world being linked. - * @param event The event where a portal was formed due to a world link - */ - @EventHandler(ignoreCancelled = true) - public void portalForm(PortalCreateEvent event) { - MultiverseWorld world = this.plugin.getMVWorldManager().getMVWorld(event.getWorld()); - if (world != null && !world.getAllowedPortals().isPortalAllowed(PortalType.NETHER)) { - Logging.fine("Cancelling creation of nether portal because portalForm disallows."); + if (!world.getAllowedPortals().isPortalAllowed(targetType)) { + Logging.fine("Cancelling creation of %s portal because portalForm disallows.", targetType); event.setCancelled(true); } } @@ -72,15 +90,21 @@ public void portalForm(PlayerInteractEvent event) { if (event.getAction() != Action.RIGHT_CLICK_BLOCK) { return; } - if (event.getClickedBlock().getType() != Material.END_PORTAL_FRAME) { + if (event.getClickedBlock() == null || event.getClickedBlock().getType() != Material.END_PORTAL_FRAME) { return; } if (event.getItem() == null || event.getItem().getType() != Material.ENDER_EYE) { return; } + MultiverseWorld world = this.plugin.getMVWorldManager().getMVWorld(event.getPlayer().getWorld()); - if (world != null && !world.getAllowedPortals().isPortalAllowed(PortalType.ENDER)) { - Logging.fine("Cancelling creation of ender portal because portalForm disallows."); + if (world == null) { + Logging.fine("World '%s' is not managed by Multiverse! Ignoring at PlayerInteractEvent.", event.getPlayer().getWorld().getName()); + return; + } + + if (!world.getAllowedPortals().isPortalAllowed(PortalType.ENDER)) { + Logging.fine("Cancelling creation of ENDER portal because portalForm disallows."); event.setCancelled(true); } } diff --git a/src/main/java/com/onarandombox/MultiverseCore/utils/BukkitTravelAgent.java b/src/main/java/com/onarandombox/MultiverseCore/utils/BukkitTravelAgent.java deleted file mode 100644 index e2f658fa5..000000000 --- a/src/main/java/com/onarandombox/MultiverseCore/utils/BukkitTravelAgent.java +++ /dev/null @@ -1,111 +0,0 @@ -package com.onarandombox.MultiverseCore.utils; - -import java.util.logging.Level; - -import com.dumptruckman.minecraft.util.Logging; -import com.onarandombox.MultiverseCore.api.SafeTTeleporter; -import com.onarandombox.MultiverseCore.destination.CannonDestination; -import org.bukkit.Location; -import org.bukkit.TravelAgent; -import org.bukkit.event.player.PlayerPortalEvent; - -public class BukkitTravelAgent implements TravelAgent { - private final MVTravelAgent agent; - - public BukkitTravelAgent(MVTravelAgent agent) { - this.agent = agent; - } - - /** - * {@inheritDoc} - */ - @Override - public BukkitTravelAgent setSearchRadius(int radius) { - return this; - } - - /** - * {@inheritDoc} - */ - @Override - public int getSearchRadius() { - return 0; - } - - /** - * {@inheritDoc} - */ - @Override - public BukkitTravelAgent setCreationRadius(int radius) { - return this; - } - - /** - * {@inheritDoc} - */ - @Override - public int getCreationRadius() { - return 0; - } - - /** - * {@inheritDoc} - */ - @Override - public boolean getCanCreatePortal() { - return false; - } - - /** - * {@inheritDoc} - */ - @Override - public void setCanCreatePortal(boolean create) { - } - - /** - * {@inheritDoc} - */ - @Override - public Location findOrCreate(Location location) { - return this.getSafeLocation(); - } - - /** - * {@inheritDoc} - */ - @Override - public Location findPortal(Location location) { - return this.getSafeLocation(); - } - - /** - * {@inheritDoc} - */ - @Override - public boolean createPortal(Location location) { - return false; - } - - private Location getSafeLocation() { - // At this time, these can never use the velocity. - if (agent.destination instanceof CannonDestination) { - Logging.fine("Using Stock TP method. This cannon will have 0 velocity"); - } - SafeTTeleporter teleporter = agent.core.getSafeTTeleporter(); - Location newLoc = agent.destination.getLocation(agent.player); - if (agent.destination.useSafeTeleporter()) { - newLoc = teleporter.getSafeLocation(agent.player, agent.destination); - } - if (newLoc == null) { - return agent.player.getLocation(); - } - return newLoc; - - } - - public void setPortalEventTravelAgent(PlayerPortalEvent event) { - event.setPortalTravelAgent(this); - event.useTravelAgent(true); - } -} diff --git a/src/main/java/com/onarandombox/MultiverseCore/utils/MVTravelAgent.java b/src/main/java/com/onarandombox/MultiverseCore/utils/MVTravelAgent.java deleted file mode 100644 index a86def8a5..000000000 --- a/src/main/java/com/onarandombox/MultiverseCore/utils/MVTravelAgent.java +++ /dev/null @@ -1,27 +0,0 @@ -/****************************************************************************** - * Multiverse 2 Copyright (c) the Multiverse Team 2011. * - * Multiverse 2 is licensed under the BSD License. * - * For more information please check the README.md file included * - * with this project. * - ******************************************************************************/ - -package com.onarandombox.MultiverseCore.utils; - -import com.onarandombox.MultiverseCore.MultiverseCore; -import com.onarandombox.MultiverseCore.api.MVDestination; -import org.bukkit.entity.Player; - -/** - * The Multiverse TravelAgent. - */ -public class MVTravelAgent { - protected MVDestination destination; - protected MultiverseCore core; - protected Player player; - - public MVTravelAgent(MultiverseCore multiverseCore, MVDestination d, Player p) { - this.destination = d; - this.core = multiverseCore; - this.player = p; - } -} diff --git a/src/main/java/com/onarandombox/MultiverseCore/utils/webpaste/BitlyURLShortener.java b/src/main/java/com/onarandombox/MultiverseCore/utils/webpaste/BitlyURLShortener.java index aa7d29d75..7606cd186 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/utils/webpaste/BitlyURLShortener.java +++ b/src/main/java/com/onarandombox/MultiverseCore/utils/webpaste/BitlyURLShortener.java @@ -1,8 +1,8 @@ package com.onarandombox.MultiverseCore.utils.webpaste; -import org.json.simple.JSONObject; -import org.json.simple.parser.JSONParser; -import org.json.simple.parser.ParseException; +import net.minidev.json.JSONObject; +import net.minidev.json.parser.JSONParser; +import net.minidev.json.parser.ParseException; import java.io.IOException; import java.util.Map; diff --git a/src/main/java/com/onarandombox/MultiverseCore/utils/webpaste/GitHubPasteService.java b/src/main/java/com/onarandombox/MultiverseCore/utils/webpaste/GitHubPasteService.java index bee098dfe..e96801831 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/utils/webpaste/GitHubPasteService.java +++ b/src/main/java/com/onarandombox/MultiverseCore/utils/webpaste/GitHubPasteService.java @@ -1,8 +1,8 @@ package com.onarandombox.MultiverseCore.utils.webpaste; -import org.json.simple.JSONObject; -import org.json.simple.parser.JSONParser; -import org.json.simple.parser.ParseException; +import net.minidev.json.JSONObject; +import net.minidev.json.parser.JSONParser; +import net.minidev.json.parser.ParseException; import java.io.IOException; import java.util.HashMap; diff --git a/src/main/java/com/onarandombox/MultiverseCore/utils/webpaste/HastebinPasteService.java b/src/main/java/com/onarandombox/MultiverseCore/utils/webpaste/HastebinPasteService.java index e1fa7272c..aa53fc572 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/utils/webpaste/HastebinPasteService.java +++ b/src/main/java/com/onarandombox/MultiverseCore/utils/webpaste/HastebinPasteService.java @@ -1,8 +1,9 @@ package com.onarandombox.MultiverseCore.utils.webpaste; -import org.json.simple.JSONObject; -import org.json.simple.parser.JSONParser; -import org.json.simple.parser.ParseException; + +import net.minidev.json.JSONObject; +import net.minidev.json.parser.JSONParser; +import net.minidev.json.parser.ParseException; import java.io.IOException; import java.util.Map; diff --git a/src/main/java/com/onarandombox/MultiverseCore/utils/webpaste/PasteGGPasteService.java b/src/main/java/com/onarandombox/MultiverseCore/utils/webpaste/PasteGGPasteService.java index 956d71c1c..6c7c08e9a 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/utils/webpaste/PasteGGPasteService.java +++ b/src/main/java/com/onarandombox/MultiverseCore/utils/webpaste/PasteGGPasteService.java @@ -1,9 +1,9 @@ package com.onarandombox.MultiverseCore.utils.webpaste; -import org.json.simple.JSONArray; -import org.json.simple.JSONObject; -import org.json.simple.parser.JSONParser; -import org.json.simple.parser.ParseException; +import net.minidev.json.JSONArray; +import net.minidev.json.JSONObject; +import net.minidev.json.parser.JSONParser; +import net.minidev.json.parser.ParseException; import java.io.IOException; import java.util.HashMap;