diff options
Diffstat (limited to 'spark-bukkit/src')
-rw-r--r-- | spark-bukkit/src/main/java/me/lucko/spark/bukkit/BukkitSparkPlugin.java | 3 | ||||
-rw-r--r-- | spark-bukkit/src/main/java/me/lucko/spark/bukkit/BukkitWorldInfoProvider.java | 29 |
2 files changed, 31 insertions, 1 deletions
diff --git a/spark-bukkit/src/main/java/me/lucko/spark/bukkit/BukkitSparkPlugin.java b/spark-bukkit/src/main/java/me/lucko/spark/bukkit/BukkitSparkPlugin.java index dc87fce..afab555 100644 --- a/spark-bukkit/src/main/java/me/lucko/spark/bukkit/BukkitSparkPlugin.java +++ b/spark-bukkit/src/main/java/me/lucko/spark/bukkit/BukkitSparkPlugin.java @@ -188,7 +188,8 @@ public class BukkitSparkPlugin extends JavaPlugin implements SparkPlugin { Arrays.asList(getServer().getPluginManager().getPlugins()), Plugin::getName, plugin -> plugin.getDescription().getVersion(), - plugin -> String.join(", ", plugin.getDescription().getAuthors()) + plugin -> String.join(", ", plugin.getDescription().getAuthors()), + plugin -> plugin.getDescription().getDescription() ); } diff --git a/spark-bukkit/src/main/java/me/lucko/spark/bukkit/BukkitWorldInfoProvider.java b/spark-bukkit/src/main/java/me/lucko/spark/bukkit/BukkitWorldInfoProvider.java index be04640..303cc3e 100644 --- a/spark-bukkit/src/main/java/me/lucko/spark/bukkit/BukkitWorldInfoProvider.java +++ b/spark-bukkit/src/main/java/me/lucko/spark/bukkit/BukkitWorldInfoProvider.java @@ -32,12 +32,16 @@ import org.bukkit.entity.Entity; import org.bukkit.entity.EntityType; import java.util.ArrayList; +import java.util.Collection; import java.util.List; +import java.util.Locale; import java.util.Objects; +import java.util.stream.Collectors; public class BukkitWorldInfoProvider implements WorldInfoProvider { private static final boolean SUPPORTS_PAPER_COUNT_METHODS; private static final boolean SUPPORTS_GAMERULES; + private static final boolean SUPPORTS_DATAPACKS; static { boolean supportsPaperCountMethods = false; @@ -59,8 +63,17 @@ public class BukkitWorldInfoProvider implements WorldInfoProvider { // ignored } + boolean supportsDataPacks = false; + try { + Server.class.getMethod("getDataPackManager"); + supportsDataPacks = true; + } catch (Exception e) { + // ignored + } + SUPPORTS_PAPER_COUNT_METHODS = supportsPaperCountMethods; SUPPORTS_GAMERULES = supportsGameRules; + SUPPORTS_DATAPACKS = supportsDataPacks; } private final Server server; @@ -155,6 +168,22 @@ public class BukkitWorldInfoProvider implements WorldInfoProvider { return data; } + @SuppressWarnings("removal") + @Override + public Collection<DataPackInfo> pollDataPacks() { + if (!SUPPORTS_DATAPACKS) { + return null; + } + + return this.server.getDataPackManager().getDataPacks().stream() + .map(pack -> new DataPackInfo( + pack.getTitle(), + pack.getDescription(), + pack.getSource().name().toLowerCase(Locale.ROOT).replace("_", "") + )) + .collect(Collectors.toList()); + } + static final class BukkitChunkInfo extends AbstractChunkInfo<EntityType> { private final CountMap<EntityType> entityCounts; |