diff --git a/pom.xml b/pom.xml index 4ac7981..b2c84ce 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 de.butzlabben.world WorldSystem - 2.4.4.1 + 2.4.4.2 UTF-8 - @@ -101,6 +101,10 @@ https://libraries.minecraft.net/ + + placeholderapi + http://repo.extendedclip.com/content/repositories/placeholderapi/ + @@ -157,5 +161,12 @@ 1.6 provided + + + me.clip + placeholderapi + LATEST + provided + \ No newline at end of file diff --git a/src/main/java/de/butzlabben/world/WorldSystem.java b/src/main/java/de/butzlabben/world/WorldSystem.java index a82c1bf..ac367c8 100644 --- a/src/main/java/de/butzlabben/world/WorldSystem.java +++ b/src/main/java/de/butzlabben/world/WorldSystem.java @@ -4,6 +4,7 @@ import de.butzlabben.autoupdater.AutoUpdater; import de.butzlabben.world.command.*; import de.butzlabben.world.config.*; import de.butzlabben.world.listener.*; +import de.butzlabben.world.util.PapiExtension; import de.butzlabben.world.wrapper.AsyncCreatorAdapter; import de.butzlabben.world.wrapper.CreatorAdapter; import de.butzlabben.world.wrapper.SystemWorld; @@ -113,6 +114,9 @@ public class WorldSystem extends JavaPlugin { DependenceConfig.checkWorlds(); } + if(Bukkit.getPluginManager().isPluginEnabled("PlaceholderAPI")) + new PapiExtension().register(); + Bukkit.getConsoleSender().sendMessage(PluginConfig.getPrefix() + "Succesfully enabled WorldSystem v" + version); } diff --git a/src/main/java/de/butzlabben/world/util/PapiExtension.java b/src/main/java/de/butzlabben/world/util/PapiExtension.java new file mode 100644 index 0000000..e419380 --- /dev/null +++ b/src/main/java/de/butzlabben/world/util/PapiExtension.java @@ -0,0 +1,57 @@ +package de.butzlabben.world.util; + +import de.butzlabben.world.WorldSystem; +import de.butzlabben.world.config.DependenceConfig; +import de.butzlabben.world.wrapper.SystemWorld; +import de.butzlabben.world.wrapper.WorldPlayer; +import me.clip.placeholderapi.expansion.PlaceholderExpansion; +import org.bukkit.Bukkit; +import org.bukkit.OfflinePlayer; +import org.bukkit.World; + +import java.util.Objects; + +public class PapiExtension extends PlaceholderExpansion { + + WorldSystem worldSystem = WorldSystem.getInstance(); + + @Override + public String getIdentifier() { + return "worldsystem"; + } + + @Override + public String getAuthor() { + return "Butzlabben"; + } + + @Override + public String getVersion() { + return worldSystem.getDescription().getVersion(); + } + + @Override + public String onRequest(OfflinePlayer p, String params) { + DependenceConfig config = new DependenceConfig(p); + switch (params) { + case "has_world": + return new DependenceConfig(p).hasWorld() + ""; + case "is_creator": + WorldPlayer player = new WorldPlayer(Objects.requireNonNull(Bukkit.getPlayer(p.getUniqueId()))); + if(!player.isOnSystemWorld()) + return "false"; + return player.isOwnerofWorld() + ""; + case "world_name_of_player": + if(!config.hasWorld()) + return "none"; + else + return config.getWorldname(); + case "world_of_player_loaded": + if(!config.hasWorld()) + return "none"; + return SystemWorld.getSystemWorld(config.getWorldname()).isLoaded() + ""; + + } + return super.onRequest(p, params); + } +}