mirror of
https://github.com/YatopiaMC/Yatopia.git
synced 2024-11-29 14:15:43 +01:00
daedcdd003
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. Paper Changes: b94a99b03 Updated Upstream (CraftBukkit) (#5762) f5cb169e0 [Auto] Updated Upstream (CraftBukkit) 407ad043c Add ElderGuardianAppearanceEvent (#5394) a04ad7bfb Fix invulnerable end crystals: MC-108513 (#5734) c894e8bbb Fix issue with soft despawn distance (#5755) 302e5101a Add BellRevealRaiderEvent (#5729) 34e6b2dc3 editMeta: tighten contract via docs (#5714) db2d501ba Do not print spawn loaded chunks 86ffde038 Add getHandRaised to LivingEntity (#5752) 9072c349a Fix broadcast event and add Adventure broadcast (#5477) Tuinity Changes: f7c4249 Fix dangerous end portal logic 3eda860 Updated Upstream (Paper) Airplane Changes: 3e07ea8 Patch container checks for WildChests compat d04adc9 Updated Upstream (Tuinity) 489bb76 Update gradle 0d5670e Merge pull request #24 from HexedHero/spelling-mistake-lightning c605be6 Fix typo Purpur Changes: d2204a3d Updated Upstream (Paper, Tuinity & Airplane) 2b35782c Fix #364 - isCritical always false 6ab78311 Fix empty shulker boxes disappearing when broken afaf8b4f Updated Upstream (Paper) b97feb78 [ci-skip] readme eb77666a Updated Upstream (Paper) Empirecraft Changes: 105217a9 Move more files out of nms package 548a13f4 Move some server patches out nms package f24d7b4c Updated Paper 99745711 Updated Paper deb9886e Add a fix for piglins picking up too much - SPIGOT-6482 8c662d78 Add javadoc description to reload api 1af9bbc8 Adjust comments on vehicle event patch 2aa479b8 cleanup ItemStack isSimilar api patches f344cb62 Updated Paper dbb49189 Re-add EMC User API a6c40eb2 Updated Paper a57940b2 Remove EMC specific User API patches Origami Changes: d0cdf96 Fix issues with disabling the chunk loading of the feature search 529f5b6 Fix creature type despawn distances not applying 1af8601 Fix Endermen being able to load chunks on teleport
178 lines
6.2 KiB
Diff
178 lines
6.2 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 f0ef93cb0c1d369265b2a6fc56c80f79d61d4ebc..a6a2fd50e685f64afecac5da6aaaad6227a3731e 100644
|
|
--- a/pom.xml
|
|
+++ b/pom.xml
|
|
@@ -47,6 +47,11 @@
|
|
<id>mojang</id>
|
|
<url>https://libraries.minecraft.net/</url>
|
|
</repository>
|
|
+ <!-- CodeMC -->
|
|
+ <repository>
|
|
+ <id>codemc-repo</id>
|
|
+ <url>https://repo.codemc.io/repository/maven-public/</url>
|
|
+ </repository>
|
|
</repositories>
|
|
|
|
<!-- Paper start -->
|
|
@@ -205,6 +210,11 @@
|
|
<artifactId>asm-commons</artifactId>
|
|
<version>9.1</version>
|
|
</dependency>
|
|
+ <dependency>
|
|
+ <groupId>de.tr7zw</groupId>
|
|
+ <artifactId>item-nbt-api</artifactId>
|
|
+ <version>2.7.1</version>
|
|
+ </dependency>
|
|
</dependencies>
|
|
|
|
<build>
|
|
@@ -279,6 +289,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/Chunk.java b/src/main/java/org/bukkit/Chunk.java
|
|
index 98263d896f316983609432c45b85401a2692432d..afaa459d2c351f99b598ec9054a6838ffb0098e8 100644
|
|
--- a/src/main/java/org/bukkit/Chunk.java
|
|
+++ b/src/main/java/org/bukkit/Chunk.java
|
|
@@ -275,4 +275,16 @@ public interface Chunk extends PersistentDataHolder {
|
|
* @return if the block is contained within
|
|
*/
|
|
boolean contains(@NotNull BlockData block);
|
|
+
|
|
+ // Yatopia start
|
|
+ /**
|
|
+ * Returns a custom tag container of this chunk.
|
|
+ *
|
|
+ * @return custom NBT tags container
|
|
+ */
|
|
+ @NotNull
|
|
+ default de.tr7zw.changeme.nbtapi.NBTCompound getNBTC() {
|
|
+ return new de.tr7zw.changeme.nbtapi.NBTChunk(this).getPersistentDataContainer();
|
|
+ }
|
|
+ // Yatopia end
|
|
}
|
|
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 62d8d7dbd4d602ca8cb00ff0cf1331583b398323..7cb395466babc84dd4ce1c91cbab7d130a5437b3 100644
|
|
--- a/src/main/java/org/bukkit/entity/Entity.java
|
|
+++ b/src/main/java/org/bukkit/entity/Entity.java
|
|
@@ -778,4 +778,26 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent
|
|
*/
|
|
boolean isInDaylight();
|
|
// Purpur 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 ac2967eac165d74c8ee7e0e9ac63124a10851a0e..df684f97b6258bfeeccc4e1692a62715a8c12833 100644
|
|
--- a/src/main/java/org/bukkit/inventory/ItemStack.java
|
|
+++ b/src/main/java/org/bukkit/inventory/ItemStack.java
|
|
@@ -1555,4 +1555,42 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, net.kyor
|
|
return random.nextInt(unbreaking + 1) > 0;
|
|
}
|
|
// Purpur end
|
|
+
|
|
+ // Yatopia start
|
|
+ /**
|
|
+ * Returns NBT representation of this item. The ItemStack will be cloned!
|
|
+ *
|
|
+ * @return item's NBT tags container
|
|
+ */
|
|
+ @NotNull
|
|
+ public de.tr7zw.changeme.nbtapi.NBTItem getNBT() {
|
|
+ return getNBT(false);
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * Returns NBT representation of this item. If directApply is true,
|
|
+ * all changes will be mapped to the original item. Changes to the NBTItem will
|
|
+ * overwrite changes done to the original item in that case.
|
|
+ *
|
|
+ * @param directApply if true, changes to NBTItem will affect this ItemStack
|
|
+ * @return item's NBT tags container
|
|
+ */
|
|
+ @NotNull
|
|
+ public de.tr7zw.changeme.nbtapi.NBTItem getNBT(boolean directApply) {
|
|
+ return new de.tr7zw.changeme.nbtapi.NBTItem(this, directApply);
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * 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
|
|
}
|