From 633f2a63e2e29c19861d8a1536faf31cdcf5a523 Mon Sep 17 00:00:00 2001 From: tastybento Date: Thu, 22 Aug 2019 12:53:38 -0700 Subject: [PATCH] Adds an API to request data from the WarpSignsManager class https://github.com/BentoBoxWorld/Warps/issues/39 --- pom.xml | 2 +- src/main/java/world/bentobox/warps/Warp.java | 45 ++++++++++++++++++++ 2 files changed, 46 insertions(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 9319e4d..6b13689 100644 --- a/pom.xml +++ b/pom.xml @@ -66,7 +66,7 @@ -LOCAL - 1.6.1 + 1.6.2 diff --git a/src/main/java/world/bentobox/warps/Warp.java b/src/main/java/world/bentobox/warps/Warp.java index af4f085..5cfab4f 100644 --- a/src/main/java/world/bentobox/warps/Warp.java +++ b/src/main/java/world/bentobox/warps/Warp.java @@ -2,9 +2,11 @@ package world.bentobox.warps; import java.util.HashSet; +import java.util.Map; import java.util.Set; import java.util.UUID; +import org.bukkit.Bukkit; import org.bukkit.World; import world.bentobox.bentobox.api.addons.Addon; @@ -192,4 +194,47 @@ public class Warp extends Addon { return this.getPlugin().getAddonsManager().getAddonByName(LEVEL_ADDON_NAME).map(l -> ((Level) l).getIslandLevel(world, uniqueId)).orElse(null); } + /* (non-Javadoc) + * @see world.bentobox.bentobox.api.addons.Addon#request(java.lang.String, java.util.Map) + * + * This API enables plugins to request data from the WarpSignsManager + * + */ + @Override + public Object request(String requestLabel, Map metaData) { + if (metaData.isEmpty()) return null; + World world = null; + UUID uuid = null; + // Parse keys + if (metaData.containsKey("world")) { + world = Bukkit.getWorld((String)metaData.get("world")); + if (world == null) return null; + } + if (metaData.containsKey("uuid")) { + try { + uuid = UUID.fromString((String)metaData.get("uuid")); + } catch (Exception e) { + logError("Requested UUID is invalid"); + return null; + } + } + switch(requestLabel) { + case "getSignInfo": + return getWarpSignsManager().getSignInfo(world, uuid); + case "getSortedWarps": + return getWarpSignsManager().getSortedWarps(world); + case "getWarp": + return getWarpSignsManager().getWarp(world, uuid); + case "getWarpMap": + return getWarpSignsManager().getWarpMap(world); + case "hasWarp": + return getWarpSignsManager().hasWarp(world, uuid); + case "listWarps": + return getWarpSignsManager().listWarps(world); + default: + return null; + } + + } + }