aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/api/0282-Add-basic-Datapack-API.patch
blob: 0582d74ff994af701d4cd4880fd047413d410f6b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
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
index be32ddb8ad5d6290b76cb520d159d456ed16f1b1..a6fef51a8435eced8c2981588ae98046c42d8ed4 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
@@ -316,9 +316,11 @@ public final class Bukkit {
     /**
      * Get the DataPack Manager.
      *
+     * @deprecated use {@link #getDatapackManager()}
      * @return the manager
      */
     @NotNull
+    @Deprecated(forRemoval = true)
     public static DataPackManager getDataPackManager() {
         return server.getDataPackManager();
     }
@@ -2423,6 +2425,14 @@ public final class Bukkit {
     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
index d1d035ee86264b38b6bb50135d031946daf25a00..529054834865813520ebe6784894e759c22ec4f4 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
@@ -254,9 +254,11 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
     /**
      * Get the DataPack Manager.
      *
+     * @deprecated use {@link #getDatapackManager()}
      * @return the manager
      */
     @NotNull
+    @Deprecated(forRemoval = true) // Paper
     public DataPackManager getDataPackManager();
 
     /**
@@ -2110,5 +2112,11 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
      */
     @NotNull
     com.destroystokyo.paper.entity.ai.MobGoals getMobGoals();
+
+    /**
+     * @return the datapack manager
+     */
+    @NotNull
+    io.papermc.paper.datapack.DatapackManager getDatapackManager();
     // Paper end
 }
diff --git a/src/main/java/org/bukkit/packs/DataPack.java b/src/main/java/org/bukkit/packs/DataPack.java
index 744d8c055b0e643e2e0d12218af4ef856f56340f..2ac72913e2a5b70eb98a4f25f865855b48b01ed3 100644
--- a/src/main/java/org/bukkit/packs/DataPack.java
+++ b/src/main/java/org/bukkit/packs/DataPack.java
@@ -8,8 +8,10 @@ import org.jetbrains.annotations.NotNull;
 
 /**
  * Represents a data pack.
+ * @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 {
 
     /**