mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-28 15:30:19 +01:00
d1a72eac31
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: 1fc1020a PR-1049: Add MenuType API 8ae2e3be PR-1055: Expand riptiding API cac68bfb SPIGOT-7890: AttributeModifier#getUniqueId() doesn't match the UUID passed to its constructor 7004fcf2 SPIGOT-7886: Fix mistake in AttributeModifier UUID shim 1ac7f950 PR-1054: Add FireworkMeta#hasPower 4cfb565f SPIGOT-7873: Add powered state for skulls CraftBukkit Changes: bbb30e7a8 SPIGOT-7894: NPE when sending tile entity update ba21e9472 SPIGOT-7895: PlayerItemBreakEvent not firing 0fb24bbe0 SPIGOT-7875: Fix PlayerItemConsumeEvent cancellation causing client-side desync 815066449 SPIGOT-7891: Can't remove second ingredient of MerchantRecipe 45c206f2c PR-1458: Add MenuType API 19c8ef9ae SPIGOT-7867: Merchant instanceof AbstractVillager always returns false 4e006d28f PR-1468: Expand riptiding API bd8aded7d Ignore checks in CraftPlayerProfile for ResolvableProfile used in profile components 8679620b5 SPIGOT-7889: Fix tool component deserialisation without speed and/or correct-for-drops 8d5222691 SPIGOT-7882, PR-1467: Fix conversion of name in Profile Component to empty if it is missing 63f91669a SPIGOT-7887: Remove duplicate ProjectileHitEvent for fireballs 7070de8c8 SPIGOT-7878: Server#getLootTable does not return null on invalid loot table 060ee6cae SPIGOT-7876: Can't kick player or disconnect player in PlayerLoginEvent when checking for cookies 7ccb86cc0 PR-1465: Add FireworkMeta#hasPower 804ad6491 SPIGOT-7873: Add powered state for skulls f9610cdcb Improve minecart movement Spigot Changes: a759b629 Rebuild patches Co-authored-by: Jake Potrebic <jake.m.potrebic@gmail.com>
106 lines
4.4 KiB
Diff
106 lines
4.4 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Jake Potrebic <jake.m.potrebic@gmail.com>
|
|
Date: Fri, 4 Mar 2022 09:46:33 -0800
|
|
Subject: [PATCH] More Raid API
|
|
|
|
== AT ==
|
|
public net.minecraft.world.entity.raid.Raid raidEvent
|
|
|
|
diff --git a/src/main/java/net/minecraft/world/entity/raid/Raid.java b/src/main/java/net/minecraft/world/entity/raid/Raid.java
|
|
index fe2a01ae8207c97203d331bbab51699502b977e2..dcbef04bbaab988096bf416163264833e84d1967 100644
|
|
--- a/src/main/java/net/minecraft/world/entity/raid/Raid.java
|
|
+++ b/src/main/java/net/minecraft/world/entity/raid/Raid.java
|
|
@@ -107,6 +107,11 @@ public class Raid {
|
|
private Raid.RaidStatus status;
|
|
private int celebrationTicks;
|
|
private Optional<BlockPos> waveSpawnPos;
|
|
+ // Paper start
|
|
+ private static final String PDC_NBT_KEY = "BukkitValues";
|
|
+ private static final org.bukkit.craftbukkit.persistence.CraftPersistentDataTypeRegistry PDC_TYPE_REGISTRY = new org.bukkit.craftbukkit.persistence.CraftPersistentDataTypeRegistry();
|
|
+ public final org.bukkit.craftbukkit.persistence.CraftPersistentDataContainer persistentDataContainer = new org.bukkit.craftbukkit.persistence.CraftPersistentDataContainer(PDC_TYPE_REGISTRY);
|
|
+ // Paper end
|
|
|
|
public Raid(int id, ServerLevel world, BlockPos pos) {
|
|
this.raidEvent = new ServerBossEvent(Raid.RAID_NAME_COMPONENT, BossEvent.BossBarColor.RED, BossEvent.BossBarOverlay.NOTCHED_10);
|
|
@@ -150,6 +155,11 @@ public class Raid {
|
|
this.heroesOfTheVillage.add(NbtUtils.loadUUID(nbtbase));
|
|
}
|
|
}
|
|
+ // Paper start
|
|
+ if (nbt.contains(PDC_NBT_KEY, net.minecraft.nbt.Tag.TAG_COMPOUND)) {
|
|
+ this.persistentDataContainer.putAll(nbt.getCompound(PDC_NBT_KEY));
|
|
+ }
|
|
+ // Paper end
|
|
|
|
}
|
|
|
|
@@ -867,6 +877,11 @@ public class Raid {
|
|
}
|
|
|
|
nbt.put("HeroesOfTheVillage", nbttaglist);
|
|
+ // Paper start
|
|
+ if (!this.persistentDataContainer.isEmpty()) {
|
|
+ nbt.put(PDC_NBT_KEY, this.persistentDataContainer.toTagCompound());
|
|
+ }
|
|
+ // Paper end
|
|
return nbt;
|
|
}
|
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftRaid.java b/src/main/java/org/bukkit/craftbukkit/CraftRaid.java
|
|
index b8ce1c1c2447f9cff1717bfcfd6eb911ade0d4b3..51f21af9d75769abdcba713b9aa33392e994d9b0 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/CraftRaid.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/CraftRaid.java
|
|
@@ -103,4 +103,34 @@ public final class CraftRaid implements Raid {
|
|
public net.minecraft.world.entity.raid.Raid getHandle() {
|
|
return this.handle;
|
|
}
|
|
+
|
|
+ // Paper start - more Raid API
|
|
+ @Override
|
|
+ public int getId() {
|
|
+ return this.handle.getId();
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public org.bukkit.boss.BossBar getBossBar() {
|
|
+ return new org.bukkit.craftbukkit.boss.CraftBossBar(this.handle.raidEvent);
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public org.bukkit.persistence.PersistentDataContainer getPersistentDataContainer() {
|
|
+ return this.handle.persistentDataContainer;
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public boolean equals(final Object o) {
|
|
+ if (this == o) return true;
|
|
+ if (o == null || this.getClass() != o.getClass()) return false;
|
|
+ final org.bukkit.craftbukkit.CraftRaid craftRaid = (org.bukkit.craftbukkit.CraftRaid) o;
|
|
+ return this.handle.equals(craftRaid.handle);
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public int hashCode() {
|
|
+ return this.handle.hashCode();
|
|
+ }
|
|
+ // Paper end - more Raid API
|
|
}
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
|
index cb85180daaa2b40cba2474784548d650bc4d639b..50b84939eee044ddadca046079286a72de5c8e04 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
|
@@ -2311,6 +2311,14 @@ public class CraftWorld extends CraftRegionAccessor implements World {
|
|
return (raid == null) ? null : new CraftRaid(raid);
|
|
}
|
|
|
|
+ // Paper start - more Raid API
|
|
+ @Override
|
|
+ public @Nullable Raid getRaid(final int id) {
|
|
+ final net.minecraft.world.entity.raid.@Nullable Raid nmsRaid = this.world.getRaids().raidMap.get(id);
|
|
+ return nmsRaid != null ? new CraftRaid(nmsRaid) : null;
|
|
+ }
|
|
+ // Paper end - more Raid API
|
|
+
|
|
@Override
|
|
public List<Raid> getRaids() {
|
|
Raids persistentRaid = this.world.getRaids();
|