2021-06-11 14:02:28 +02:00
|
|
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
|
|
From: Connor Linfoot <connorlinfoot@me.com>
|
|
|
|
Date: Sun, 16 May 2021 15:07:34 +0100
|
|
|
|
Subject: [PATCH] Add basic Datapack API
|
|
|
|
|
|
|
|
|
|
|
|
diff --git a/src/main/java/io/papermc/paper/datapack/Datapack.java b/src/main/java/io/papermc/paper/datapack/Datapack.java
|
|
|
|
new file mode 100644
|
|
|
|
index 0000000000000000000000000000000000000000..7b2ab0be10a21e0496ad1d485ff8cb2c0b92a2cb
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/src/main/java/io/papermc/paper/datapack/Datapack.java
|
|
|
|
@@ -0,0 +1,32 @@
|
|
|
|
+package io.papermc.paper.datapack;
|
|
|
|
+
|
|
|
|
+import org.checkerframework.checker.nullness.qual.NonNull;
|
|
|
|
+
|
|
|
|
+public interface Datapack {
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * @return the name of the pack
|
|
|
|
+ */
|
|
|
|
+ @NonNull
|
|
|
|
+ String getName();
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * @return the compatibility of the pack
|
|
|
|
+ */
|
|
|
|
+ @NonNull
|
|
|
|
+ Compatibility getCompatibility();
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * @return whether or not the pack is currently enabled
|
|
|
|
+ */
|
|
|
|
+ boolean isEnabled();
|
|
|
|
+
|
|
|
|
+ void setEnabled(boolean enabled);
|
|
|
|
+
|
|
|
|
+ enum Compatibility {
|
|
|
|
+ TOO_OLD,
|
|
|
|
+ TOO_NEW,
|
|
|
|
+ COMPATIBLE,
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+}
|
|
|
|
diff --git a/src/main/java/io/papermc/paper/datapack/DatapackManager.java b/src/main/java/io/papermc/paper/datapack/DatapackManager.java
|
|
|
|
new file mode 100644
|
|
|
|
index 0000000000000000000000000000000000000000..58f78d5e91beacaf710f62461cf869f70d08b2a2
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/src/main/java/io/papermc/paper/datapack/DatapackManager.java
|
|
|
|
@@ -0,0 +1,21 @@
|
|
|
|
+package io.papermc.paper.datapack;
|
|
|
|
+
|
|
|
|
+import org.checkerframework.checker.nullness.qual.NonNull;
|
|
|
|
+
|
|
|
|
+import java.util.Collection;
|
|
|
|
+
|
|
|
|
+public interface DatapackManager {
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * @return all the packs known to the server
|
|
|
|
+ */
|
|
|
|
+ @NonNull
|
|
|
|
+ Collection<Datapack> getPacks();
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * @return all the packs which are currently enabled
|
|
|
|
+ */
|
|
|
|
+ @NonNull
|
|
|
|
+ Collection<Datapack> getEnabledPacks();
|
|
|
|
+
|
|
|
|
+}
|
|
|
|
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
|
2024-04-06 23:20:29 +02:00
|
|
|
index 4b3c91575f2609ad1b1177384f6f21151a535054..6ac4c0c6c2245e6bee9575ff4804994648112d78 100644
|
2021-06-11 14:02:28 +02:00
|
|
|
--- a/src/main/java/org/bukkit/Bukkit.java
|
|
|
|
+++ b/src/main/java/org/bukkit/Bukkit.java
|
Updated Upstream (Bukkit/CraftBukkit) (#10242)
* Updated Upstream (Bukkit/CraftBukkit)
Upstream has released updates that appear to apply and compile correctly.
This update has not been tested by PaperMC and as with ANY update, please do your own testing
Bukkit Changes:
a6a9d2a4 Remove some old ApiStatus.Experimental annotations
be72314c SPIGOT-7300, PR-829: Add new DamageSource API providing enhanced information about entity damage
b252cf05 SPIGOT-7576, PR-970: Add methods in MushroomCow to change stew effects
b1c689bd PR-902: Add Server#isLoggingIPs to get log-ips configuration
08f86d1c PR-971: Add Player methods for client-side potion effects
2e3024a9 PR-963: Add API for in-world structures
a23292a7 SPIGOT-7530, PR-948: Improve Resource Pack API with new 1.20.3 functionality
1851857b SPIGOT-3071, PR-969: Add entity spawn method with spawn reason
cde4c52a SPIGOT-5553, PR-964: Add EntityKnockbackEvent
CraftBukkit Changes:
38fd4bd50 Fix accidentally renamed internal damage method
80f0ce4be SPIGOT-7300, PR-1180: Add new DamageSource API providing enhanced information about entity damage
7e43f3b16 SPIGOT-7581: Fix typo in BlockMushroom
ea14b7d90 SPIGOT-7576, PR-1347: Add methods in MushroomCow to change stew effects
4c687f243 PR-1259: Add Server#isLoggingIPs to get log-ips configuration
22a541a29 Improve support for per-world game rules
cb7dccce2 PR-1348: Add Player methods for client-side potion effects
b8d6109f0 PR-1335: Add API for in-world structures
4398a1b5b SPIGOT-7577: Make CraftWindCharge#explode discard the entity
e74107678 Fix Crafter maximum stack size
0bb0f4f6a SPIGOT-7530, PR-1314: Improve Resource Pack API with new 1.20.3 functionality
4949f556d SPIGOT-3071, PR-1345: Add entity spawn method with spawn reason
20ac73ca2 PR-1353: Fix Structure#place not working as documented with 0 palette
3c1b77871 SPIGOT-6911, PR-1349: Change max book length in CraftMetaBook
333701839 SPIGOT-7572: Bee nests generated without bees
f48f4174c SPIGOT-5553, PR-1336: Add EntityKnockbackEvent
2024-02-11 22:28:00 +01:00
|
|
|
@@ -328,9 +328,11 @@ public final class Bukkit {
|
2023-06-06 11:09:19 +02:00
|
|
|
/**
|
|
|
|
* Get the DataPack Manager.
|
|
|
|
*
|
|
|
|
+ * @deprecated use {@link #getDatapackManager()}
|
|
|
|
* @return the manager
|
|
|
|
*/
|
|
|
|
@NotNull
|
|
|
|
+ @Deprecated(forRemoval = true)
|
|
|
|
public static DataPackManager getDataPackManager() {
|
|
|
|
return server.getDataPackManager();
|
|
|
|
}
|
2024-04-06 23:20:29 +02:00
|
|
|
@@ -2562,6 +2564,14 @@ public final class Bukkit {
|
2021-06-11 14:02:28 +02:00
|
|
|
public static com.destroystokyo.paper.entity.ai.MobGoals getMobGoals() {
|
|
|
|
return server.getMobGoals();
|
|
|
|
}
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * @return the datapack manager
|
|
|
|
+ */
|
|
|
|
+ @NotNull
|
|
|
|
+ public static io.papermc.paper.datapack.DatapackManager getDatapackManager() {
|
|
|
|
+ return server.getDatapackManager();
|
|
|
|
+ }
|
|
|
|
// Paper end
|
|
|
|
|
|
|
|
@NotNull
|
|
|
|
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
|
2024-04-06 23:20:29 +02:00
|
|
|
index 5bb94245c33105e57131b3d0867ef707c4aed79c..052d0e420f2631ff925bb5df4a41a1cecc2d7e16 100644
|
2021-06-11 14:02:28 +02:00
|
|
|
--- a/src/main/java/org/bukkit/Server.java
|
|
|
|
+++ b/src/main/java/org/bukkit/Server.java
|
Updated Upstream (Bukkit/CraftBukkit) (#10242)
* Updated Upstream (Bukkit/CraftBukkit)
Upstream has released updates that appear to apply and compile correctly.
This update has not been tested by PaperMC and as with ANY update, please do your own testing
Bukkit Changes:
a6a9d2a4 Remove some old ApiStatus.Experimental annotations
be72314c SPIGOT-7300, PR-829: Add new DamageSource API providing enhanced information about entity damage
b252cf05 SPIGOT-7576, PR-970: Add methods in MushroomCow to change stew effects
b1c689bd PR-902: Add Server#isLoggingIPs to get log-ips configuration
08f86d1c PR-971: Add Player methods for client-side potion effects
2e3024a9 PR-963: Add API for in-world structures
a23292a7 SPIGOT-7530, PR-948: Improve Resource Pack API with new 1.20.3 functionality
1851857b SPIGOT-3071, PR-969: Add entity spawn method with spawn reason
cde4c52a SPIGOT-5553, PR-964: Add EntityKnockbackEvent
CraftBukkit Changes:
38fd4bd50 Fix accidentally renamed internal damage method
80f0ce4be SPIGOT-7300, PR-1180: Add new DamageSource API providing enhanced information about entity damage
7e43f3b16 SPIGOT-7581: Fix typo in BlockMushroom
ea14b7d90 SPIGOT-7576, PR-1347: Add methods in MushroomCow to change stew effects
4c687f243 PR-1259: Add Server#isLoggingIPs to get log-ips configuration
22a541a29 Improve support for per-world game rules
cb7dccce2 PR-1348: Add Player methods for client-side potion effects
b8d6109f0 PR-1335: Add API for in-world structures
4398a1b5b SPIGOT-7577: Make CraftWindCharge#explode discard the entity
e74107678 Fix Crafter maximum stack size
0bb0f4f6a SPIGOT-7530, PR-1314: Improve Resource Pack API with new 1.20.3 functionality
4949f556d SPIGOT-3071, PR-1345: Add entity spawn method with spawn reason
20ac73ca2 PR-1353: Fix Structure#place not working as documented with 0 palette
3c1b77871 SPIGOT-6911, PR-1349: Change max book length in CraftMetaBook
333701839 SPIGOT-7572: Bee nests generated without bees
f48f4174c SPIGOT-5553, PR-1336: Add EntityKnockbackEvent
2024-02-11 22:28:00 +01:00
|
|
|
@@ -264,9 +264,11 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
|
2023-06-06 11:09:19 +02:00
|
|
|
/**
|
|
|
|
* Get the DataPack Manager.
|
|
|
|
*
|
|
|
|
+ * @deprecated use {@link #getDatapackManager()}
|
|
|
|
* @return the manager
|
|
|
|
*/
|
|
|
|
@NotNull
|
|
|
|
+ @Deprecated(forRemoval = true) // Paper
|
|
|
|
public DataPackManager getDataPackManager();
|
|
|
|
|
|
|
|
/**
|
2024-04-06 23:20:29 +02:00
|
|
|
@@ -2232,5 +2234,11 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
|
2021-06-11 14:02:28 +02:00
|
|
|
*/
|
|
|
|
@NotNull
|
|
|
|
com.destroystokyo.paper.entity.ai.MobGoals getMobGoals();
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * @return the datapack manager
|
|
|
|
+ */
|
|
|
|
+ @NotNull
|
|
|
|
+ io.papermc.paper.datapack.DatapackManager getDatapackManager();
|
|
|
|
// Paper end
|
|
|
|
}
|
2023-06-06 11:09:19 +02:00
|
|
|
diff --git a/src/main/java/org/bukkit/packs/DataPack.java b/src/main/java/org/bukkit/packs/DataPack.java
|
2023-09-29 02:28:26 +02:00
|
|
|
index 3d5af25a399589f1bdf95b77f584ae0ae5c26f02..ab512c7ee9d2442055b719d02d0d0ecc7ea8d992 100644
|
2023-06-06 11:09:19 +02:00
|
|
|
--- a/src/main/java/org/bukkit/packs/DataPack.java
|
|
|
|
+++ b/src/main/java/org/bukkit/packs/DataPack.java
|
2023-09-29 02:28:26 +02:00
|
|
|
@@ -10,8 +10,10 @@ import org.jetbrains.annotations.NotNull;
|
2023-06-06 11:09:19 +02:00
|
|
|
* Represents a data pack.
|
2023-09-29 02:28:26 +02:00
|
|
|
*
|
|
|
|
* @see <a href="https://minecraft.wiki/w/Data_pack">Minecraft wiki</a>
|
2023-06-06 11:09:19 +02:00
|
|
|
+ * @deprecated use {@link io.papermc.paper.datapack.Datapack}
|
|
|
|
*/
|
|
|
|
@ApiStatus.Experimental
|
|
|
|
+@Deprecated(forRemoval = true) // Paper
|
|
|
|
public interface DataPack extends Keyed {
|
|
|
|
|
|
|
|
/**
|
|
|
|
diff --git a/src/main/java/org/bukkit/packs/DataPackManager.java b/src/main/java/org/bukkit/packs/DataPackManager.java
|
|
|
|
index d7fb6310e6b1050c496d748388310bc6f8d78e23..2cd505046277febe010e9476539b064321d8b2ec 100644
|
|
|
|
--- a/src/main/java/org/bukkit/packs/DataPackManager.java
|
|
|
|
+++ b/src/main/java/org/bukkit/packs/DataPackManager.java
|
|
|
|
@@ -11,8 +11,10 @@ import org.jetbrains.annotations.Nullable;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Manager of data packs.
|
|
|
|
+ * @deprecated use {@link io.papermc.paper.datapack.DatapackManager}
|
|
|
|
*/
|
|
|
|
@ApiStatus.Experimental
|
|
|
|
+@Deprecated(forRemoval = true) // Paper
|
|
|
|
public interface DataPackManager {
|
|
|
|
|
|
|
|
/**
|