This commit is contained in:
Blast-MC
2024-11-24 18:05:29 -05:00
parent b6152ed60d
commit 7f2307cc5f
42 changed files with 353 additions and 603 deletions

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Build changes
diff --git a/build.gradle.kts b/build.gradle.kts
index fd39ed209b20c927054b8482c400beeeeab460a3..f7786d4034afae1926bb249e282f3f204e09ba1a 100644
index e29e5024fa693baae469d47fe77b57118f14627c..7dab3328c111b9d4e06a37f25f03708870f4bab9 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -14,6 +14,9 @@ val bungeeCordChatVersion = "1.20-R0.2"
@@ -18,8 +18,8 @@ index fd39ed209b20c927054b8482c400beeeeab460a3..f7786d4034afae1926bb249e282f3f20
val apiAndDocs: Configuration by configurations.creating {
attributes {
attribute(Category.CATEGORY_ATTRIBUTE, objects.named(Category.DOCUMENTATION))
@@ -27,6 +30,7 @@ configurations.api {
}
@@ -39,6 +42,7 @@ abstract class MockitoAgentProvider : CommandLineArgumentProvider {
// Paper end - configure mockito agent that is needed in newer java versions
dependencies {
+ api("gg.projecteden:eden-interfaces:$edenVersion") // Parchment

View File

@@ -8,118 +8,78 @@ Creates new interfaces for objects that have a reference to a player, offlinepla
Also creates interfaces for objects that are like players in that they use all other interfaces and can receive Adventure messages.
diff --git a/src/main/java/com/destroystokyo/paper/event/block/BeaconEffectEvent.java b/src/main/java/com/destroystokyo/paper/event/block/BeaconEffectEvent.java
index 7270c1feece2dc15a4a0503c4bca93a1288f8f13..a941a1e1a9e0c5047ad9f7976e65338ac3f87f68 100644
index 741d0e73bc635a545c94c4b1254cee8f41ba8925..24dfa7fb8d9f86626f48fdc40775f5bb7f05f3f0 100644
--- a/src/main/java/com/destroystokyo/paper/event/block/BeaconEffectEvent.java
+++ b/src/main/java/com/destroystokyo/paper/event/block/BeaconEffectEvent.java
@@ -12,7 +12,7 @@ import org.jetbrains.annotations.NotNull;
/**
@@ -13,7 +13,7 @@ import org.jspecify.annotations.NullMarked;
* Called when a beacon effect is being applied to a player.
*/
@NullMarked
-public class BeaconEffectEvent extends BlockEvent implements Cancellable {
+public class BeaconEffectEvent extends BlockEvent implements Cancellable, gg.projecteden.parchment.HasPlayer { // Parchment
private static final HandlerList HANDLER_LIST = new HandlerList();
diff --git a/src/main/java/com/destroystokyo/paper/event/entity/EndermanAttackPlayerEvent.java b/src/main/java/com/destroystokyo/paper/event/entity/EndermanAttackPlayerEvent.java
index ae34e679723a2ef436da04c116038272743a8f35..420842d6882c37c64e0f2e9fd41ba9b289fe7690 100644
index 34adc77de2d1f06b2b10cc26b60240c6a3ef259c..2e3dd13143e7af0b3aaa8307909fe14cee402eb3 100644
--- a/src/main/java/com/destroystokyo/paper/event/entity/EndermanAttackPlayerEvent.java
+++ b/src/main/java/com/destroystokyo/paper/event/entity/EndermanAttackPlayerEvent.java
@@ -37,7 +37,7 @@ import org.jetbrains.annotations.NotNull;
* Starts off cancelled if the player is wearing a pumpkin head or is not looking
@@ -38,7 +38,7 @@ import org.jspecify.annotations.NullMarked;
* at the Enderman, according to Vanilla rules.
*/
@NullMarked
-public class EndermanAttackPlayerEvent extends EntityEvent implements Cancellable {
+public class EndermanAttackPlayerEvent extends EntityEvent implements Cancellable, gg.projecteden.parchment.HasPlayer { // Parchment
private static final HandlerList HANDLER_LIST = new HandlerList();
diff --git a/src/main/java/com/destroystokyo/paper/event/entity/TurtleLayEggEvent.java b/src/main/java/com/destroystokyo/paper/event/entity/TurtleLayEggEvent.java
index 3029e406cd684efb5645e38711dff9c0bb7b01e4..7ce5cdb02c2b8dc46d01892f495bf06e59d11641 100644
index 1492d168aa1dc538b732b0ff262074cc7c9900e6..4ec22bb3dd6674a9d56173d9abb5762a4fcfe584 100644
--- a/src/main/java/com/destroystokyo/paper/event/entity/TurtleLayEggEvent.java
+++ b/src/main/java/com/destroystokyo/paper/event/entity/TurtleLayEggEvent.java
@@ -11,7 +11,7 @@ import org.jetbrains.annotations.NotNull;
/**
@@ -12,7 +12,7 @@ import org.jspecify.annotations.NullMarked;
* Fired when a Turtle lays eggs
*/
@NullMarked
-public class TurtleLayEggEvent extends EntityEvent implements Cancellable {
+public class TurtleLayEggEvent extends EntityEvent implements Cancellable, gg.projecteden.parchment.HasLocation { // Parchment
private static final HandlerList HANDLER_LIST = new HandlerList();
diff --git a/src/main/java/com/destroystokyo/paper/event/entity/TurtleStartDiggingEvent.java b/src/main/java/com/destroystokyo/paper/event/entity/TurtleStartDiggingEvent.java
index 7a2fa4a11b47e4982d1644830d7e28f12b4378ec..0cb8e6b174ab62899068ab2a0fcc9e63834e6efd 100644
index a84101fb1b478f3018f283bc47d3e73a7ae5bbc8..ea24db70e9b83b8fb626840a2c1387407ffdc256 100644
--- a/src/main/java/com/destroystokyo/paper/event/entity/TurtleStartDiggingEvent.java
+++ b/src/main/java/com/destroystokyo/paper/event/entity/TurtleStartDiggingEvent.java
@@ -11,7 +11,7 @@ import org.jetbrains.annotations.NotNull;
/**
@@ -12,7 +12,7 @@ import org.jspecify.annotations.NullMarked;
* Fired when a Turtle starts digging to lay eggs
*/
@NullMarked
-public class TurtleStartDiggingEvent extends EntityEvent implements Cancellable {
+public class TurtleStartDiggingEvent extends EntityEvent implements Cancellable, gg.projecteden.parchment.HasLocation { // Parchment
private static final HandlerList HANDLER_LIST = new HandlerList();
diff --git a/src/main/java/com/destroystokyo/paper/event/player/PlayerHandshakeEvent.java b/src/main/java/com/destroystokyo/paper/event/player/PlayerHandshakeEvent.java
index 7c049bad187b94331f42f96833d1cf4ce03ef477..72c36b9ebd668750598a5bf1146fea8043126e05 100644
index aea04fb357f5728195fd9c9bdcd6304a0b953c45..18c6e8b1865a958a10fc2ae4234979f1adfaedc3 100644
--- a/src/main/java/com/destroystokyo/paper/event/player/PlayerHandshakeEvent.java
+++ b/src/main/java/com/destroystokyo/paper/event/player/PlayerHandshakeEvent.java
@@ -21,7 +21,7 @@ import java.util.UUID;
*
@@ -21,7 +21,7 @@ import org.jspecify.annotations.Nullable;
* <p>WARNING: TAMPERING WITH THIS EVENT CAN BE DANGEROUS</p>
*/
@NullMarked
-public class PlayerHandshakeEvent extends Event implements Cancellable {
+public class PlayerHandshakeEvent extends Event implements Cancellable, gg.projecteden.api.interfaces.OptionalUniqueId { // Parchment
private static final HandlerList HANDLER_LIST = new HandlerList();
diff --git a/src/main/java/com/destroystokyo/paper/event/profile/PreLookupProfileEvent.java b/src/main/java/com/destroystokyo/paper/event/profile/PreLookupProfileEvent.java
index 3f73ec52f9b581001bef3a19a5f1533dfa474356..92a38938ab76d5ae873a1d82b8d53250912ced06 100644
--- a/src/main/java/com/destroystokyo/paper/event/profile/PreLookupProfileEvent.java
+++ b/src/main/java/com/destroystokyo/paper/event/profile/PreLookupProfileEvent.java
@@ -22,7 +22,7 @@ import org.jetbrains.annotations.Nullable;
* No guarantees are made about thread execution context for this event. If you need to know, check
* {@link Event#isAsynchronous()}
*/
-public class PreLookupProfileEvent extends Event {
+public class PreLookupProfileEvent extends Event implements gg.projecteden.api.interfaces.OptionalUniqueId { // Parchment
private static final HandlerList HANDLER_LIST = new HandlerList();
@@ -52,11 +52,26 @@ public class PreLookupProfileEvent extends Event {
*
* @return The UUID of the profile if it has already been provided by a plugin
*/
+ // Parchment start
+ @Deprecated
@Nullable
public UUID getUUID() {
return this.uuid;
}
+ /**
+ * If this value is left null by the completion of the event call, then the server will
+ * trigger a call to the Mojang API to look up the UUID (Network Request), and subsequently, fire a
+ * {@link LookupProfileEvent}
+ *
+ * @return The UUID of the profile if it has already been provided by a plugin
+ */
+ @Override
+ public @Nullable UUID getUniqueId() {
+ return uuid;
+ }
+ // Parchment end
+
/**
* Sets the UUID for this player name. This will skip the initial API call to find the players UUID.
* <p>
diff --git a/src/main/java/com/destroystokyo/paper/event/server/AsyncTabCompleteEvent.java b/src/main/java/com/destroystokyo/paper/event/server/AsyncTabCompleteEvent.java
index 8965974988ad20fbe1d45885f20a3a98d2e9595f..a19e23e55737bdb7ee9909e02ca6414aaf66830f 100644
index 0482ecf5b84ba8e0260679049f384f3449bbe7b5..b8ef784ec3b61d78ddb0f1aa6bb9712b4df9892d 100644
--- a/src/main/java/com/destroystokyo/paper/event/server/AsyncTabCompleteEvent.java
+++ b/src/main/java/com/destroystokyo/paper/event/server/AsyncTabCompleteEvent.java
@@ -53,7 +53,7 @@ import org.jetbrains.annotations.Nullable;
* <p>
@@ -53,7 +53,7 @@ import org.jspecify.annotations.Nullable;
* Only 1 process will be allowed to provide completions, the Async Event, or the standard process.
*/
@NullMarked
-public class AsyncTabCompleteEvent extends Event implements Cancellable {
+public class AsyncTabCompleteEvent extends Event implements Cancellable, gg.projecteden.parchment.OptionalLocation { // Parchment
@@ -398,33 +358,33 @@ index 0000000000000000000000000000000000000000..c70ddc6f92d62d2d5baa001c9009ddd3
+ }
+}
diff --git a/src/main/java/io/papermc/paper/event/packet/PlayerChunkLoadEvent.java b/src/main/java/io/papermc/paper/event/packet/PlayerChunkLoadEvent.java
index 3ddbc099a13df939b3912f30b54e7635840ba5a4..cf34f788b732037713d9a0ab29636de1820afd0a 100644
index 2815c5802eb38e5a48f9db42b9247e24c27db134..df0a4c29e7fdb019907d47da09f0e1e2db4c9613 100644
--- a/src/main/java/io/papermc/paper/event/packet/PlayerChunkLoadEvent.java
+++ b/src/main/java/io/papermc/paper/event/packet/PlayerChunkLoadEvent.java
@@ -15,7 +15,7 @@ import org.jetbrains.annotations.NotNull;
* Should only be used for packet/clientside related stuff.
@@ -16,7 +16,7 @@ import org.jspecify.annotations.NullMarked;
* Not intended for modifying server side state.
*/
@NullMarked
-public class PlayerChunkLoadEvent extends ChunkEvent {
+public class PlayerChunkLoadEvent extends ChunkEvent implements gg.projecteden.parchment.HasPlayer { // Parchment
private static final HandlerList HANDLER_LIST = new HandlerList();
diff --git a/src/main/java/io/papermc/paper/event/packet/PlayerChunkUnloadEvent.java b/src/main/java/io/papermc/paper/event/packet/PlayerChunkUnloadEvent.java
index 2cac7e27991c04a9ced261f2dd8ad8657ccddf6b..2dc9666fac98e3ff8b569f9510fa0db3ba0eb681 100644
index 3ebb35b680193109cc751398675e935eed746750..6f162e907e31496ac8a1470d3fa3b844a7f4615a 100644
--- a/src/main/java/io/papermc/paper/event/packet/PlayerChunkUnloadEvent.java
+++ b/src/main/java/io/papermc/paper/event/packet/PlayerChunkUnloadEvent.java
@@ -13,7 +13,7 @@ import org.jetbrains.annotations.NotNull;
* Should only be used for packet/clientside related stuff.
@@ -14,7 +14,7 @@ import org.jspecify.annotations.NullMarked;
* Not intended for modifying server side.
*/
@NullMarked
-public class PlayerChunkUnloadEvent extends ChunkEvent {
+public class PlayerChunkUnloadEvent extends ChunkEvent implements gg.projecteden.parchment.HasPlayer { // Parchment
private static final HandlerList HANDLER_LIST = new HandlerList();
diff --git a/src/main/java/org/bukkit/Location.java b/src/main/java/org/bukkit/Location.java
index 65618b6b3c950fb27707f243a766511d6cd3aab4..cccf6f315e2aae9d67afe726c7bad4f619e47860 100644
index bdc065a486306236c7f0960718bea53bc0b0a9b6..c99fde4d0c8dc12a89015f4cccdccfe8e3dfb8f6 100644
--- a/src/main/java/org/bukkit/Location.java
+++ b/src/main/java/org/bukkit/Location.java
@@ -30,7 +30,7 @@ import org.bukkit.entity.Player;
@@ -451,15 +411,15 @@ index 65618b6b3c950fb27707f243a766511d6cd3aab4..cccf6f315e2aae9d67afe726c7bad4f6
* Constructs a new Location with the given coordinates
*
diff --git a/src/main/java/org/bukkit/OfflinePlayer.java b/src/main/java/org/bukkit/OfflinePlayer.java
index 3993fecec5b4c2bbd77e175a168afcad571ce4d1..f2a98e4e25262c452d20e27a9617bf7cfbee9e77 100644
index a028f2fe541491729856051780b33dba07832fb6..5a6aa86fda316b8591fb1653a09d9e2ff729b33f 100644
--- a/src/main/java/org/bukkit/OfflinePlayer.java
+++ b/src/main/java/org/bukkit/OfflinePlayer.java
@@ -19,7 +19,14 @@ import org.jetbrains.annotations.Nullable;
* player that is stored on the disk and can, thus, be retrieved without the
* player needing to be online.
*/
-public interface OfflinePlayer extends ServerOperator, AnimalTamer, ConfigurationSerializable {
+public interface OfflinePlayer extends ServerOperator, AnimalTamer, ConfigurationSerializable, gg.projecteden.parchment.HasOfflinePlayer, gg.projecteden.parchment.OptionalPlayer { // Parchment
-public interface OfflinePlayer extends ServerOperator, AnimalTamer, ConfigurationSerializable, io.papermc.paper.persistence.PersistentDataViewHolder { // Paper - Add Offline PDC API
+public interface OfflinePlayer extends ServerOperator, AnimalTamer, ConfigurationSerializable, io.papermc.paper.persistence.PersistentDataViewHolder, gg.projecteden.parchment.HasOfflinePlayer, gg.projecteden.parchment.OptionalPlayer { // Parchment
+
+ // Parchment start
+ @Override
@@ -484,33 +444,34 @@ index fa98599e3eee37bf68f0e9813497c718f457485c..7af5afbef7b1559221ab6c28131ae698
/**
* Get whether this raid started.
diff --git a/src/main/java/org/bukkit/Vibration.java b/src/main/java/org/bukkit/Vibration.java
index bbc01e7c192ae6689c301670047ff114306c57cb..2a83ba61686caffb247f17a67af474299dae6be4 100644
index bbc01e7c192ae6689c301670047ff114306c57cb..0b2a6ed4407817df4421ae8edf46d7876864a618 100644
--- a/src/main/java/org/bukkit/Vibration.java
+++ b/src/main/java/org/bukkit/Vibration.java
@@ -74,7 +74,7 @@ public class Vibration {
@@ -74,7 +74,8 @@ public class Vibration {
}
}
- public static class BlockDestination implements Destination {
+ public static class BlockDestination implements Destination, gg.projecteden.parchment.HasLocation { // Parchment
+
private final Location block;
diff --git a/src/main/java/org/bukkit/attribute/AttributeModifier.java b/src/main/java/org/bukkit/attribute/AttributeModifier.java
index bfa378fe3d074bafbc0af2c4d858e2a34d3126bd..f6b6a75dc9ae2b8c391025221f151e2169d62913 100644
index 027a7d3b6feb52f6c3424edc0820d29fdaf6ebae..fe33bdfd98c3a96af766cbbe5a267f4710cbff52 100644
--- a/src/main/java/org/bukkit/attribute/AttributeModifier.java
+++ b/src/main/java/org/bukkit/attribute/AttributeModifier.java
@@ -18,7 +18,7 @@ import org.jetbrains.annotations.Nullable;
@@ -20,7 +20,7 @@ import org.jetbrains.annotations.Nullable;
/**
* Concrete implementation of an attribute modifier.
*/
-public class AttributeModifier implements ConfigurationSerializable, Keyed {
+public class AttributeModifier implements ConfigurationSerializable, Keyed, gg.projecteden.api.interfaces.HasUniqueId { // Parchment
private static final Pattern UUID_PATTERN = Pattern.compile("^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$");
private final NamespacedKey key;
private final double amount;
diff --git a/src/main/java/org/bukkit/block/Block.java b/src/main/java/org/bukkit/block/Block.java
index a13c8ddd4a1222e7a16debb61769af3758502d7c..6672aaad187bb4ac23d9a3397fc0ef2ae3708bb2 100644
index 0efd8bb70ebdb86372022c9e12ec89f229ab3b52..ec7bb05c4fc2f0f1eb42c77dbe5e3eb6c340bdef 100644
--- a/src/main/java/org/bukkit/block/Block.java
+++ b/src/main/java/org/bukkit/block/Block.java
@@ -32,7 +32,7 @@ import org.jetbrains.annotations.Nullable;
@@ -549,20 +510,21 @@ index a39d2f1acbbd84ae0e2cf29f85594e09e55e9355..4348b8961afe7a57350856622aff8c98
public DoubleChest(@NotNull DoubleChestInventory chest) {
diff --git a/src/main/java/org/bukkit/entity/AnimalTamer.java b/src/main/java/org/bukkit/entity/AnimalTamer.java
index 2e17b2d4f759531fbe9ee8e9b00c839186af09ca..8f4a293c131cb8b63c31b410ffa211bdb42b3338 100644
index 2e17b2d4f759531fbe9ee8e9b00c839186af09ca..0cd8961afbe2e04132ec5d40dc9bbc6cab7a0f0f 100644
--- a/src/main/java/org/bukkit/entity/AnimalTamer.java
+++ b/src/main/java/org/bukkit/entity/AnimalTamer.java
@@ -4,7 +4,7 @@ import java.util.UUID;
@@ -4,7 +4,8 @@ import java.util.UUID;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
-public interface AnimalTamer {
+public interface AnimalTamer extends gg.projecteden.api.interfaces.HasUniqueId { // Parchment
+
/**
* This is the name of the specified AnimalTamer.
diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java
index 725ef320f929d5e3d141c1ed3246d73a7d741f31..93506536af557bc9972c295ee3957fe0e3c22053 100644
index d0ae8a94db20281d3664d74718c65234eb2e5f83..87cea10a668d3040906a4dd1fd135c2162d9617f 100644
--- a/src/main/java/org/bukkit/entity/Entity.java
+++ b/src/main/java/org/bukkit/entity/Entity.java
@@ -31,7 +31,7 @@ import org.jetbrains.annotations.Nullable;
@@ -575,7 +537,7 @@ index 725ef320f929d5e3d141c1ed3246d73a7d741f31..93506536af557bc9972c295ee3957fe0
/**
* Gets the entity's current position
diff --git a/src/main/java/org/bukkit/entity/HumanEntity.java b/src/main/java/org/bukkit/entity/HumanEntity.java
index 294de2c073167e7186fbf1d6885fe5951351cc9c..0b23a17a02c7df498f67dad2b49568c5e8c9127b 100644
index 488604ba1a516b477693877c74712e4a45624a8b..7f9f8d8f95e58ca702ae7e5007c53c226890d662 100644
--- a/src/main/java/org/bukkit/entity/HumanEntity.java
+++ b/src/main/java/org/bukkit/entity/HumanEntity.java
@@ -20,7 +20,15 @@ import org.jetbrains.annotations.Nullable;
@@ -596,10 +558,10 @@ index 294de2c073167e7186fbf1d6885fe5951351cc9c..0b23a17a02c7df498f67dad2b49568c5
// Paper start
@Override
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index 7c56182acaf827f4b1a986a61cea8e9960604c98..9a6f2ed1eb9559789317e21226f67cb6f02c0761 100644
index 95f0b3186e313c7fbd5c8531d52b82a69e525f94..aa21cd957cb0a4756cf0f27cef69fbd80e71c54e 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -57,7 +57,17 @@ import org.jetbrains.annotations.Nullable;
@@ -58,7 +58,17 @@ import org.jetbrains.annotations.Nullable;
/**
* Represents a player, connected or not
*/
@@ -957,7 +919,7 @@ index 128e43cf12205f82f2b119a773208502cdccfdd4..ca1fed3081e2b0a3271a2dfa0f49cce7
private static final HandlerList handlers = new HandlerList();
//
diff --git a/src/main/java/org/bukkit/event/server/TabCompleteEvent.java b/src/main/java/org/bukkit/event/server/TabCompleteEvent.java
index ea26cb90d988d693f26e37229fbdee975c0b11f4..f19aa180b7d4f19f57b9968a4c35a76ad29029c3 100644
index c71c122ccc4775d030688f7b8df0b4feb49136f4..107c38d38f47771111606c8788d637c565925b40 100644
--- a/src/main/java/org/bukkit/event/server/TabCompleteEvent.java
+++ b/src/main/java/org/bukkit/event/server/TabCompleteEvent.java
@@ -21,7 +21,7 @@ import org.jetbrains.annotations.NotNull;
@@ -1009,7 +971,7 @@ index 0d519813c12d98b28d62e6d01d7ec6e8c2dba3c3..469b9cc0c4b77844ba0317af51bd9ad8
/**
* Returns the size of the inventory
diff --git a/src/main/java/org/bukkit/inventory/InventoryView.java b/src/main/java/org/bukkit/inventory/InventoryView.java
index 72f93377b60a3b6a08b8c8264ee7313e89c15da0..019ba8c91c06da12efadc445ada6f634a78e488b 100644
index 5c258b6077277575daa5d96349837bdf06f42500..f8fd3590df19d4930f54c0456f9cb7bab636f227 100644
--- a/src/main/java/org/bukkit/inventory/InventoryView.java
+++ b/src/main/java/org/bukkit/inventory/InventoryView.java
@@ -9,7 +9,7 @@ import org.jetbrains.annotations.Nullable;
@@ -1034,3 +996,27 @@ index 9c1ccaed727ec5e5dad93146bbfda798e3f536e7..b4dc13b03d8a33ac13e8af6677e1a841
public static final int DEFAULT_LOOT_MODIFIER = -1;
diff --git a/src/main/java/com/destroystokyo/paper/event/profile/PreLookupProfileEvent.java b/src/main/java/com/destroystokyo/paper/event/profile/PreLookupProfileEvent.java
index 07416cc9e2b8156be2cc92d6d974b881b427fd99..4f96ecb2f03b7ad84592d874462acb54a86303c9 100644
--- a/src/main/java/com/destroystokyo/paper/event/profile/PreLookupProfileEvent.java
+++ b/src/main/java/com/destroystokyo/paper/event/profile/PreLookupProfileEvent.java
@@ -22,7 +22,7 @@ import org.jspecify.annotations.Nullable;
* {@link Event#isAsynchronous()}
*/
@NullMarked
-public class PreLookupProfileEvent extends Event {
+public class PreLookupProfileEvent extends Event implements gg.projecteden.api.interfaces.OptionalUniqueId { // Parchment
private static final HandlerList HANDLER_LIST = new HandlerList();
@@ -55,6 +55,10 @@ public class PreLookupProfileEvent extends Event {
return this.uuid;
}
+ public UUID getUniqueId() {
+ return this.uuid;
+ }
+
/**
* Sets the UUID for this player name. This will skip the initial API call to find the players UUID.
* <p>

View File

@@ -5,11 +5,11 @@ Subject: [PATCH] Add UnsafeValues#canPlaceItemOn
diff --git a/src/main/java/org/bukkit/UnsafeValues.java b/src/main/java/org/bukkit/UnsafeValues.java
index 330e3013eda204aa9b33d5e1c3104e0b595abdbc..8093b81f00b84e292a1e6f76af9509ea178a7ab3 100644
index a491dc40093e19b8d1900443ad613223fd7f3119..fa22e21eb7299f601649af515b9e554e050b1ae1 100644
--- a/src/main/java/org/bukkit/UnsafeValues.java
+++ b/src/main/java/org/bukkit/UnsafeValues.java
@@ -287,4 +287,18 @@ public interface UnsafeValues {
<A extends Keyed, M> io.papermc.paper.registry.tag.@Nullable Tag<A> getTag(io.papermc.paper.registry.tag.@NotNull TagKey<A> tagKey); // Paper - hack to get tags for non-server backed registries
@@ -312,4 +312,18 @@ public interface UnsafeValues {
@NotNull java.util.List<net.kyori.adventure.text.Component> computeTooltipLines(@NotNull ItemStack itemStack, @NotNull io.papermc.paper.inventory.tooltip.TooltipContext tooltipContext, @Nullable org.bukkit.entity.Player player); // Paper - expose itemstack tooltip lines
ItemStack createEmptyStack(); // Paper - proxy ItemStack
+

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Expose MCUtil Executors
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
index c043d239c449bf4bb13a24467f2f6c67b4d28d2d..08d834ed5dcb7b281f9f0ed02c396992f62c80c6 100644
index f55638eb8b315864052f9fe17ab4846e5e9d8dbb..ac7bd2a77f387e72f8862e8ea5af52f39d90265a 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
@@ -2226,6 +2226,22 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
@@ -2255,6 +2255,22 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
@NotNull
UnsafeValues getUnsafe();

View File

@@ -64,7 +64,7 @@ index 0000000000000000000000000000000000000000..ea17d99c7a1d70d88e2c439399cdb376
+ }
+}
diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
index 97f97ea5c6aa513c439f86a9c82821e0f7d9cd1e..64c1287b7a668680e19f8c4c1a678abb0eb5d88e 100644
index 7a439c99fc4c5ee17d674460c8e58a9fe0c64e02..3cddbea3553ea12b610ffb1c9ab13d6ab4c291ee 100644
--- a/src/main/java/org/bukkit/World.java
+++ b/src/main/java/org/bukkit/World.java
@@ -52,6 +52,36 @@ import org.jetbrains.annotations.Nullable;
@@ -101,6 +101,6 @@ index 97f97ea5c6aa513c439f86a9c82821e0f7d9cd1e..64c1287b7a668680e19f8c4c1a678abb
+ ItemStack smeltItem(@NotNull ItemStack toSmelt, gg.projecteden.parchment.inventory.@NotNull RecipeType recipeType);
+ // Parchment end
+
// Paper start
// Paper start - void damage configuration
/**
* @return The amount of Entities in this world
* Checks if void damage is enabled on this world.

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Add Player#getHiddenEntities API
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index 9a6f2ed1eb9559789317e21226f67cb6f02c0761..14aee20cdbe0cb9a118582b605257115098760ac 100644
index aa21cd957cb0a4756cf0f27cef69fbd80e71c54e..d8014eea4f4415602db7e1199a2d9ce059adefaa 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -2097,6 +2097,17 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -2137,6 +2137,17 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
*/
public boolean canSee(@NotNull Entity entity);

View File

@@ -1,251 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Blast-MC <cjblanton2@gmail.com>
Date: Mon, 18 Jul 2022 20:15:42 -0400
Subject: [PATCH] Add Timings Events
diff --git a/src/main/java/co/aikar/timings/Timings.java b/src/main/java/co/aikar/timings/Timings.java
index e81d0bc309de877ed2b5da6122f55c162e9b5f10..d4d65c301df8f6b9945d636b5f0e623a8289a8bc 100644
--- a/src/main/java/co/aikar/timings/Timings.java
+++ b/src/main/java/co/aikar/timings/Timings.java
@@ -145,8 +145,27 @@ public final class Timings {
* @param enabled Should timings be reported
*/
public static void setTimingsEnabled(boolean enabled) {
+ // Parchment start
+ setTimingsEnabled(enabled, null);
+ }
+
+ /**
+ * <p>Sets whether or not the Spigot Timings system should be enabled</p>
+ *
+ * Calls a {@link co.aikar.timings.event.TimingsModifyEvent}, if cancelled the timings will not be reset
+ *
+ * @param enabled Should timings be reported
+ * @param sender The sender asking to reset
+ */
+ public static void setTimingsEnabled(boolean enabled, CommandSender sender) {
timingsEnabled = enabled;
warnAboutDeprecationOnEnable();
+ if (sender != null) {
+ if (!new co.aikar.timings.event.TimingsModifyEvent(sender, co.aikar.timings.event.TimingsModifyEvent.Action.RESET).callEvent()) {
+ return;
+ }
+ }
+ // Parchment end
reset();
}
diff --git a/src/main/java/co/aikar/timings/TimingsCommand.java b/src/main/java/co/aikar/timings/TimingsCommand.java
index 95d87c9dbf2b237787294dfbe7fed87a36e6dedf..d8e0b7fba75c68495f30419258ddf88f1237df07 100644
--- a/src/main/java/co/aikar/timings/TimingsCommand.java
+++ b/src/main/java/co/aikar/timings/TimingsCommand.java
@@ -65,10 +65,12 @@ public class TimingsCommand extends BukkitCommand {
}
final String arg = args[0];
if ("on".equalsIgnoreCase(arg)) {
- Timings.setTimingsEnabled(true);
+ if (!new co.aikar.timings.event.TimingsModifyEvent(sender, co.aikar.timings.event.TimingsModifyEvent.Action.ENABLE).callEvent()) return true; // Parchment
+ Timings.setTimingsEnabled(true, sender);
sender.sendMessage(text("Enabled Timings & Reset"));
return true;
} else if ("off".equalsIgnoreCase(arg)) {
+ if (!new co.aikar.timings.event.TimingsModifyEvent(sender, co.aikar.timings.event.TimingsModifyEvent.Action.DISABLE).callEvent()) return true; // Parchment
Timings.setTimingsEnabled(false);
sender.sendMessage(text("Disabled Timings"));
return true;
@@ -81,15 +83,18 @@ public class TimingsCommand extends BukkitCommand {
long now = System.currentTimeMillis();
if ("verbon".equalsIgnoreCase(arg)) {
+ if (!new co.aikar.timings.event.TimingsModifyEvent(sender, co.aikar.timings.event.TimingsModifyEvent.Action.VERBOSE_ON).callEvent()) return true; // Parchment
Timings.setVerboseTimingsEnabled(true);
sender.sendMessage(text("Enabled Verbose Timings"));
return true;
} else if ("verboff".equalsIgnoreCase(arg)) {
+ if (!new co.aikar.timings.event.TimingsModifyEvent(sender, co.aikar.timings.event.TimingsModifyEvent.Action.VERBOSE_OFF).callEvent()) return true; // Parchment
Timings.setVerboseTimingsEnabled(false);
sender.sendMessage(text("Disabled Verbose Timings"));
return true;
} else if ("reset".equalsIgnoreCase(arg)) {
if (now - lastResetAttempt < 30000) {
+ if (!new co.aikar.timings.event.TimingsModifyEvent(sender, co.aikar.timings.event.TimingsModifyEvent.Action.RESET).callEvent()) return true; // Parchment
TimingsManager.reset();
sender.sendMessage(text("Timings reset. Please wait 5-10 minutes before using /timings report.", NamedTextColor.RED));
} else {
diff --git a/src/main/java/co/aikar/timings/TimingsReportListener.java b/src/main/java/co/aikar/timings/TimingsReportListener.java
index df066d6f8d55afbc0c1897c486d638657a5f8df9..e80b33ecf12815356356bea0e0ecd4da75a5a416 100644
--- a/src/main/java/co/aikar/timings/TimingsReportListener.java
+++ b/src/main/java/co/aikar/timings/TimingsReportListener.java
@@ -62,6 +62,7 @@ public class TimingsReportListener implements net.kyori.adventure.audience.Forwa
@Override
public void sendMessage(final @NotNull net.kyori.adventure.identity.Identity source, final @NotNull net.kyori.adventure.text.Component message, final @NotNull net.kyori.adventure.audience.MessageType type) {
+ if (!new co.aikar.timings.event.TimingsMessageEvent(this.senders, message).callEvent()) return; // Parchment
net.kyori.adventure.audience.ForwardingAudience.super.sendMessage(source, message, type);
}
@@ -73,6 +74,7 @@ public class TimingsReportListener implements net.kyori.adventure.audience.Forwa
@Override
public void sendMessage(@NotNull String message) {
+ if (!new co.aikar.timings.event.TimingsMessageEvent(this.senders, net.kyori.adventure.text.Component.text(message)).callEvent()) return; // Parchment
senders.forEach((sender) -> sender.sendMessage(message));
}
diff --git a/src/main/java/co/aikar/timings/event/TimingsEvent.java b/src/main/java/co/aikar/timings/event/TimingsEvent.java
new file mode 100644
index 0000000000000000000000000000000000000000..9ad67d72e6173d1629f862ca9fd13475950709f0
--- /dev/null
+++ b/src/main/java/co/aikar/timings/event/TimingsEvent.java
@@ -0,0 +1,36 @@
+package co.aikar.timings.event;
+
+import org.bukkit.Bukkit;
+import org.bukkit.command.CommandSender;
+import org.bukkit.event.Event;
+import org.bukkit.event.HandlerList;
+import org.jetbrains.annotations.NotNull;
+
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Set;
+
+public abstract class TimingsEvent extends Event {
+
+ private final @NotNull Set<CommandSender> audience;
+ private static final HandlerList handlers = new HandlerList();
+
+ public TimingsEvent(@NotNull Collection<CommandSender> audience) {
+ super(!Bukkit.isPrimaryThread());
+ this.audience = new HashSet<>(audience);
+ }
+
+ public @NotNull Set<CommandSender> getAudience() {
+ return this.audience;
+ }
+
+ @Override
+ public @NotNull HandlerList getHandlers() {
+ return handlers;
+ }
+
+ public static @NotNull HandlerList getHandlerList() {
+ return handlers;
+ }
+
+}
diff --git a/src/main/java/co/aikar/timings/event/TimingsGenerateReportEvent.java b/src/main/java/co/aikar/timings/event/TimingsGenerateReportEvent.java
new file mode 100644
index 0000000000000000000000000000000000000000..33152129508c526031eee68f2ae797563d97be0c
--- /dev/null
+++ b/src/main/java/co/aikar/timings/event/TimingsGenerateReportEvent.java
@@ -0,0 +1,20 @@
+package co.aikar.timings.event;
+
+import org.bukkit.command.CommandSender;
+import org.jetbrains.annotations.NotNull;
+
+import java.util.Collections;
+
+public class TimingsGenerateReportEvent extends TimingsEvent {
+
+ private final @NotNull String paste;
+
+ public TimingsGenerateReportEvent(@NotNull CommandSender sender, @NotNull String paste) {
+ super(Collections.singleton(sender));
+ this.paste = paste;
+ }
+
+ public @NotNull String getPaste() {
+ return this.paste;
+ }
+}
diff --git a/src/main/java/co/aikar/timings/event/TimingsMessageEvent.java b/src/main/java/co/aikar/timings/event/TimingsMessageEvent.java
new file mode 100644
index 0000000000000000000000000000000000000000..626f25e164c6b23481c5a976a6e184e739104305
--- /dev/null
+++ b/src/main/java/co/aikar/timings/event/TimingsMessageEvent.java
@@ -0,0 +1,35 @@
+package co.aikar.timings.event;
+
+import net.kyori.adventure.text.Component;
+import org.bukkit.command.CommandSender;
+import org.bukkit.event.Cancellable;
+import org.jetbrains.annotations.NotNull;
+
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.List;
+
+public class TimingsMessageEvent extends TimingsEvent implements Cancellable {
+
+ public @NotNull Component message;
+ private boolean cancelled;
+
+ public TimingsMessageEvent(@NotNull Collection<CommandSender> senders, @NotNull Component message) {
+ super(new HashSet<>(senders));
+ this.message = message;
+ }
+
+ public @NotNull Component getMessage() {
+ return this.message;
+ }
+
+ @Override
+ public boolean isCancelled() {
+ return cancelled;
+ }
+
+ @Override
+ public void setCancelled(boolean cancel) {
+ this.cancelled = cancel;
+ }
+}
diff --git a/src/main/java/co/aikar/timings/event/TimingsModifyEvent.java b/src/main/java/co/aikar/timings/event/TimingsModifyEvent.java
new file mode 100644
index 0000000000000000000000000000000000000000..3faf845716d5d3adf360949f28a5e12aa7e20aa6
--- /dev/null
+++ b/src/main/java/co/aikar/timings/event/TimingsModifyEvent.java
@@ -0,0 +1,41 @@
+package co.aikar.timings.event;
+
+import org.bukkit.command.CommandSender;
+import org.bukkit.event.Cancellable;
+import org.jetbrains.annotations.NotNull;
+
+import java.util.Collections;
+
+public class TimingsModifyEvent extends TimingsEvent implements Cancellable {
+
+ private final @NotNull Action action;
+ private boolean cancelled = false;
+
+ public TimingsModifyEvent(@NotNull CommandSender sender, @NotNull Action action) {
+ super(Collections.singleton(sender));
+ this.action = action;
+ }
+
+ public @NotNull Action getAction() {
+ return this.action;
+ }
+
+ @Override
+ public boolean isCancelled() {
+ return this.cancelled;
+ }
+
+ @Override
+ public void setCancelled(boolean cancel) {
+ this.cancelled = cancel;
+ }
+
+ public enum Action {
+ ENABLE,
+ DISABLE,
+ RESET,
+ VERBOSE_ON,
+ VERBOSE_OFF
+ }
+
+}

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Expanded Insomnia API methods
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index 14aee20cdbe0cb9a118582b605257115098760ac..ddfe7859ad921343214d3d82ef01bcc57a35790d 100644
index d8014eea4f4415602db7e1199a2d9ce059adefaa..b68feadfb631672b4b99b464fb1b6aae6e82507f 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -67,6 +67,45 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -68,6 +68,45 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
*/
@Override
@NotNull Player getPlayer();

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Add NPC to EntityType
diff --git a/src/main/java/org/bukkit/entity/EntityType.java b/src/main/java/org/bukkit/entity/EntityType.java
index 6905614c3d277a3a725554f02cc92d4b3430eecc..36023edd1db4185243ffc417fe59a09c104fbb47 100644
index c1aa59bab82aee8fd42f7149c520b45660b29082..6e1b2721b1ff69239ce6cf726c50974e76c78f1f 100644
--- a/src/main/java/org/bukkit/entity/EntityType.java
+++ b/src/main/java/org/bukkit/entity/EntityType.java
@@ -305,6 +305,7 @@ public enum EntityType implements Keyed, Translatable, net.kyori.adventure.trans
@@ -352,6 +352,7 @@ public enum EntityType implements Keyed, Translatable, net.kyori.adventure.trans
/**
* An unknown entity without an Entity Class
*/

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Revert BungeeChat Deprecation
diff --git a/build.gradle.kts b/build.gradle.kts
index f7786d4034afae1926bb249e282f3f204e09ba1a..f689a22e535bb007089b981fe803f1a6af4911c2 100644
index 7dab3328c111b9d4e06a37f25f03708870f4bab9..eefb9b19fb76689a5e7ba86a17ef7117ad67789b 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -36,7 +36,7 @@ dependencies {
@@ -48,7 +48,7 @@ dependencies {
api("com.google.guava:guava:32.1.2-jre")
api("com.google.code.gson:gson:2.10.1")
// Paper start - adventure
@@ -17,7 +17,7 @@ index f7786d4034afae1926bb249e282f3f204e09ba1a..f689a22e535bb007089b981fe803f1a6
exclude("com.google.guava", "guava")
}
// Paper - adventure
@@ -154,7 +154,7 @@ tasks.withType<Javadoc> {
@@ -172,7 +172,7 @@ tasks.withType<Javadoc> {
"https://guava.dev/releases/32.1.2-jre/api/docs/",
"https://javadoc.io/doc/org.yaml/snakeyaml/2.2/",
"https://javadoc.io/doc/org.jetbrains/annotations/$annotationsVersion/", // Paper - we don't want Java 5 annotations

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Add Block BreakNaturally Overload
diff --git a/src/main/java/org/bukkit/block/Block.java b/src/main/java/org/bukkit/block/Block.java
index 0015bb89899e52d3c8f1ca68807ad7092e690305..2c384d6c1719a3b2b1335a3f2b7e826c1892bd69 100644
index ec7bb05c4fc2f0f1eb42c77dbe5e3eb6c340bdef..3d07006fbab3f075aa72114773ad8e76686b0ad2 100644
--- a/src/main/java/org/bukkit/block/Block.java
+++ b/src/main/java/org/bukkit/block/Block.java
@@ -590,6 +590,20 @@ public interface Block extends Metadatable, Translatable, net.kyori.adventure.tr
@@ -594,6 +594,20 @@ public interface Block extends Metadatable, Translatable, net.kyori.adventure.tr
*/
boolean breakNaturally(@NotNull ItemStack tool, boolean triggerEffect, boolean dropExperience);

View File

@@ -6,7 +6,7 @@ Subject: [PATCH] Add CustomBlockUpdateEvent
diff --git a/src/main/java/gg/projecteden/parchment/event/block/CustomBlockUpdateEvent.java b/src/main/java/gg/projecteden/parchment/event/block/CustomBlockUpdateEvent.java
new file mode 100644
index 0000000000000000000000000000000000000000..ae798a18bb07d83bfd3acefc222a48e29f9a3ec3
index 0000000000000000000000000000000000000000..f99a67efe3582038fc5500c017a1c1371022985b
--- /dev/null
+++ b/src/main/java/gg/projecteden/parchment/event/block/CustomBlockUpdateEvent.java
@@ -0,0 +1,70 @@

View File

@@ -260,13 +260,13 @@ index 0000000000000000000000000000000000000000..c9f9c0d235f33925ee247ba4af56bf9f
+ }
+}
diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java
index 93506536af557bc9972c295ee3957fe0e3c22053..072567951ceecddb4f2bf269e6695b322d3a0f0e 100644
index 87cea10a668d3040906a4dd1fd135c2162d9617f..b8bdac918e8a49bef2bf09312eb6d71d373eb517 100644
--- a/src/main/java/org/bukkit/entity/Entity.java
+++ b/src/main/java/org/bukkit/entity/Entity.java
@@ -1159,4 +1159,7 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent
@@ -1172,4 +1172,7 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent
*/
@NotNull String getScoreboardEntryName();
// Paper end - entity scoreboard name
void broadcastHurtAnimation(@NotNull java.util.Collection<Player> players);
// Paper end - broadcast hurt animation
+
+ gg.projecteden.parchment.entity.EntityData getStoredEntityData();
+