aboutsummaryrefslogtreecommitdiff
path: root/spark-bukkit/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'spark-bukkit/src/main/java')
-rw-r--r--spark-bukkit/src/main/java/me/lucko/spark/bukkit/BukkitSparkPlugin.java3
-rw-r--r--spark-bukkit/src/main/java/me/lucko/spark/bukkit/BukkitWorldInfoProvider.java29
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;