mirror of
https://github.com/YatopiaMC/Yatopia.git
synced 2024-12-02 15:43:44 +01:00
252bf7e437
Upstream/An Sidestream has released updates that appears to apply and compile correctly This update has NOT been tested by YatopiaMC and as with ANY update, please do your own testing. Tuinity Changes: 82e5dfb Updated Upstream (Paper) Origami Changes: 7e2a3f6 Update Paper Purpur Changes: 5cc7709 Make mobs avoid stonecutter blocks 129484a Stonecutter damage 8295d22 Updated Upstream (Paper) d23a158 Infinity bow settings 5c0a270 Make infinite lava number of required sources configurable ef17322 Update readme 70e2ec0 Cleanup codebase 81ca45c Flying squids! Oh my!
144 lines
4.9 KiB
Diff
144 lines
4.9 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: tr7zw <tr7zw@live.de>
|
|
Date: Sat, 1 Aug 2020 15:55:15 -0500
|
|
Subject: [PATCH] Add NBT API as a first-class lib
|
|
|
|
|
|
diff --git a/pom.xml b/pom.xml
|
|
index c1155ea1f455ddd01da7f84195e3e1db788f76c0..4aa457af0e9e809359a7934ccfce14e33f3f1da7 100644
|
|
--- a/pom.xml
|
|
+++ b/pom.xml
|
|
@@ -56,6 +56,11 @@
|
|
<id>mojang</id>
|
|
<url>https://libraries.minecraft.net/</url>
|
|
</repository>
|
|
+ <!-- CodeMC -->
|
|
+ <repository>
|
|
+ <id>codemc-repo</id>
|
|
+ <url>https://repo.codemc.org/repository/maven-public/</url>
|
|
+ </repository>
|
|
</repositories>
|
|
|
|
<pluginRepositories>
|
|
@@ -170,6 +175,11 @@
|
|
<artifactId>asm-commons</artifactId>
|
|
<version>8.0.1</version>
|
|
</dependency>
|
|
+ <dependency>
|
|
+ <groupId>de.tr7zw</groupId>
|
|
+ <artifactId>item-nbt-api</artifactId>
|
|
+ <version>2.5.0</version>
|
|
+ </dependency>
|
|
</dependencies>
|
|
|
|
<build>
|
|
@@ -245,6 +255,12 @@
|
|
<dependencyReducedPomLocation>${project.build.directory}/dependency-reduced-pom.xml</dependencyReducedPomLocation>
|
|
<!-- when downloading via Maven we can pull depends individually -->
|
|
<shadedArtifactAttached>true</shadedArtifactAttached>
|
|
+ <relocations>
|
|
+ <relocation>
|
|
+ <pattern>de.tr7zw.changeme.nbtapi</pattern>
|
|
+ <shadedPattern>de.tr7zw.nbtapi</shadedPattern>
|
|
+ </relocation>
|
|
+ </relocations>
|
|
</configuration>
|
|
</plugin>
|
|
<plugin>
|
|
diff --git a/src/main/java/org/bukkit/block/TileState.java b/src/main/java/org/bukkit/block/TileState.java
|
|
index 3b10fcc13893403b29f0260b8605144679e89b82..1e9a96d8b08cc396acf73dc42083009354e89d8a 100644
|
|
--- a/src/main/java/org/bukkit/block/TileState.java
|
|
+++ b/src/main/java/org/bukkit/block/TileState.java
|
|
@@ -36,4 +36,26 @@ public interface TileState extends BlockState, PersistentDataHolder {
|
|
@NotNull
|
|
@Override
|
|
PersistentDataContainer getPersistentDataContainer();
|
|
+
|
|
+ // Yatopia start
|
|
+ /**
|
|
+ * Returns NBT representation of this tile entity.
|
|
+ *
|
|
+ * @return vanilla NBT tags container
|
|
+ */
|
|
+ @NotNull
|
|
+ default de.tr7zw.changeme.nbtapi.NBTTileEntity getNBT() {
|
|
+ return new de.tr7zw.changeme.nbtapi.NBTTileEntity(this);
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * Returns a custom tag container of this tile entity.
|
|
+ *
|
|
+ * @return custom NBT tags container
|
|
+ */
|
|
+ @NotNull
|
|
+ default de.tr7zw.changeme.nbtapi.NBTCompound getNBTC() {
|
|
+ return getNBT().getPersistentDataContainer();
|
|
+ }
|
|
+ // Yatopia end
|
|
}
|
|
diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java
|
|
index 4d1970bec04c5a3cf01d214f583efb0e1d08380d..97fad9d83badb0aff15189f62cc065dae90ad3df 100644
|
|
--- a/src/main/java/org/bukkit/entity/Entity.java
|
|
+++ b/src/main/java/org/bukkit/entity/Entity.java
|
|
@@ -696,4 +696,26 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent
|
|
*/
|
|
public boolean isTicking();
|
|
// Paper end
|
|
+
|
|
+ // Yatopia start
|
|
+ /**
|
|
+ * Returns NBT representation of this entity.
|
|
+ *
|
|
+ * @return vanilla NBT tags container
|
|
+ */
|
|
+ @NotNull
|
|
+ default de.tr7zw.changeme.nbtapi.NBTEntity getNBT() {
|
|
+ return new de.tr7zw.changeme.nbtapi.NBTEntity(this);
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * Returns a custom tag container of this entity.
|
|
+ *
|
|
+ * @return custom NBT tags container
|
|
+ */
|
|
+ @NotNull
|
|
+ default de.tr7zw.changeme.nbtapi.NBTCompound getNBTC() {
|
|
+ return getNBT().getPersistentDataContainer();
|
|
+ }
|
|
+ // Yatopia end
|
|
}
|
|
diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java
|
|
index ccd81fca25233c2a9c2a8c3f4dda3053d7b2e723..b93df6bea4af1b2d4123be031adecf030bcc3893 100644
|
|
--- a/src/main/java/org/bukkit/inventory/ItemStack.java
|
|
+++ b/src/main/java/org/bukkit/inventory/ItemStack.java
|
|
@@ -791,4 +791,29 @@ public class ItemStack implements Cloneable, ConfigurationSerializable {
|
|
return itemMeta.hasItemFlag(flag);
|
|
}
|
|
// Paper end
|
|
+
|
|
+ // Yatopia start
|
|
+ /**
|
|
+ * Returns NBT representation of this item.
|
|
+ *
|
|
+ * @return item's NBT tags container
|
|
+ */
|
|
+ @NotNull
|
|
+ public de.tr7zw.changeme.nbtapi.NBTItem getNBT() {
|
|
+ return new de.tr7zw.changeme.nbtapi.NBTItem(this);
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * Applies NBT data from the provided NBT item.
|
|
+ *
|
|
+ * @param nbt ItemStack's NBT container
|
|
+ */
|
|
+ public void setNBT(@NotNull de.tr7zw.changeme.nbtapi.NBTItem nbt) {
|
|
+ ItemStack nbtItem = nbt.getItem();
|
|
+ setType(nbtItem.getType());
|
|
+ setAmount(nbtItem.getAmount());
|
|
+ setData(nbtItem.getData());
|
|
+ setItemMeta(nbtItem.getItemMeta());
|
|
+ }
|
|
+ // Yatopia end
|
|
}
|