geforkt von Mirrors/Paper
3b9db2b194
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: bb4e97c6 Add support for Java 23 bc6874dd Bump asm to 9.7.1 50e8a00b PR-1064: Add specific getTopInventory methods for InventoryView derivatives 758b0a0f SPIGOT-7911: Fix Location#isWorldLoaded() for re-loaded worlds 133a64a7 Improve Registry#getOrThrow messages be0f5957 PR-1058: Add tests for Minecraft registry <-> Bukkit fields d1b31df2 PR-1062: Clarify BeaconView documentation 3fab4384 PR-1060: Cache Material to BlockType and ItemType conversion 967a7301 SPIGOT-7906: Increase YAML nesting limit to 100 6ecf033d SPIGOT-7899: Smithing recipes don't require inputs CraftBukkit Changes: 0a7bd6c81 PR-1493: Improve reroute performance and add some tests 54941524c Add support for Java 23 f4d957fff SPIGOT-7915: Fix World#getKeepSpawnInMemory() using Spawn Radius rather than Spawn Chunk Radius ded183674 Fix HIDE_ENCHANTS flag in items without enchantments 308785a0a Bump asm to 9.7.1 and re-add ClassReader to ClassWriter 72ce823cd PR-1487: Add specific getTopInventory methods for InventoryView derivatives 11a5e840c SPIGOT-7907, PR-1484: Improve merchant recipe item matching behavior to more closely align with older versions 45b66f7e4 SPIGOT-7909: Always set HIDE_ENCHANTS flag to item if flag is set 963459791 Increase outdated build delay fc5b2d75f SPIGOT-7910: Fix launching breeze wind charge from API and improve dispenser launch API c7d6428f2 SPIGOT-7856, PR-1483: End platform not dropping items after replacing blocks 2a5572b52 SPIGOT-7780, PR-1482: Cannot edit chunks during unload event 527041ab5 SPIGOT-7902, PR-1477: Fix CraftMetaPotion#hasCustomEffects() does not check if customEffects (List) is empty 5529a1769 Implement base methods for tags 30fbdbaaf Improve Registry#getOrThrow messages 6b71a7322 PR-1475: Add tests for Minecraft registry <-> Bukkit fields 5f24c255c SPIGOT-7908: Mark junit-platform-suite-engine as test scope e4c92ef65 PR-1473: Change tests to use suites, to run tests in different environments and feature flags d25e1e722 PR-1481: Fix BeaconView#set[X]Effect(null) d69a05362 PR-1480: Fix PerMaterialTest#isEdible test running for legacy materials bb3284a89 PR-1479: Use custom #isBlock method in legacy init instead of the one in Material, since it relies on legacy being init 98c57cbbe SPIGOT-7904: Fix NPE for PlayerItemBreakEvent f35bae9ec Fix missing hasJukeboxPlayable 8a6f8b6d8 SPIGOT-7881: CTRL+Pick Block saves position data into item 7913b3be7 SPIGOT-7899: Smithing recipes don't require inputs
212 Zeilen
12 KiB
Diff
212 Zeilen
12 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Kyle Wood <kyle@denwav.dev>
|
|
Date: Fri, 11 Jun 2021 05:25:03 -0500
|
|
Subject: [PATCH] Remap fixes
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/core/BlockPos.java b/src/main/java/net/minecraft/core/BlockPos.java
|
|
index 766006fe7ff965d6ca17df1df457ecc629b3be18..0ef1a7b2a17e81144d594f29f7b5e54d5038dcf4 100644
|
|
--- a/src/main/java/net/minecraft/core/BlockPos.java
|
|
+++ b/src/main/java/net/minecraft/core/BlockPos.java
|
|
@@ -323,9 +323,11 @@ public class BlockPos extends Vec3i {
|
|
|
|
public static Iterable<BlockPos> withinManhattan(BlockPos center, int rangeX, int rangeY, int rangeZ) {
|
|
int i = rangeX + rangeY + rangeZ;
|
|
- int j = center.getX();
|
|
- int k = center.getY();
|
|
- int l = center.getZ();
|
|
+ // Paper start - rename variables to fix conflict with anonymous class (remap fix)
|
|
+ int centerX = center.getX();
|
|
+ int centerY = center.getY();
|
|
+ int centerZ = center.getZ();
|
|
+ // Paper end
|
|
return () -> new AbstractIterator<BlockPos>() {
|
|
private final BlockPos.MutableBlockPos cursor = new BlockPos.MutableBlockPos();
|
|
private int currentDepth;
|
|
@@ -339,7 +341,7 @@ public class BlockPos extends Vec3i {
|
|
protected BlockPos computeNext() {
|
|
if (this.zMirror) {
|
|
this.zMirror = false;
|
|
- this.cursor.setZ(l - (this.cursor.getZ() - l));
|
|
+ this.cursor.setZ(centerZ - (this.cursor.getZ() - centerZ)); // Paper - remap fix
|
|
return this.cursor;
|
|
} else {
|
|
BlockPos blockPos;
|
|
@@ -365,7 +367,7 @@ public class BlockPos extends Vec3i {
|
|
int k = this.currentDepth - Math.abs(i) - Math.abs(j);
|
|
if (k <= rangeZ) {
|
|
this.zMirror = k != 0;
|
|
- blockPos = this.cursor.set(j + i, k + j, l + k);
|
|
+ blockPos = this.cursor.set(centerX + i, centerY + j, centerZ + k); // Paper - remap fix
|
|
}
|
|
}
|
|
|
|
diff --git a/src/main/java/net/minecraft/world/entity/ai/behavior/BehaviorUtils.java b/src/main/java/net/minecraft/world/entity/ai/behavior/BehaviorUtils.java
|
|
index 7344cff32fa6fe3dedb74ed98126072c55b0abd2..d98b28e9488a5a7736719cf656736bb026ec8c7e 100644
|
|
--- a/src/main/java/net/minecraft/world/entity/ai/behavior/BehaviorUtils.java
|
|
+++ b/src/main/java/net/minecraft/world/entity/ai/behavior/BehaviorUtils.java
|
|
@@ -169,10 +169,10 @@ public class BehaviorUtils {
|
|
|
|
return optional.map((uuid) -> {
|
|
return ((ServerLevel) entity.level()).getEntity(uuid);
|
|
- }).map((entity) -> {
|
|
+ }).map((entity1) -> { // Paper - remap fix
|
|
LivingEntity entityliving1;
|
|
|
|
- if (entity instanceof LivingEntity entityliving2) {
|
|
+ if (entity1 instanceof LivingEntity entityliving2) { // Paper - remap fix
|
|
entityliving1 = entityliving2;
|
|
} else {
|
|
entityliving1 = null;
|
|
diff --git a/src/main/java/net/minecraft/world/level/storage/loot/LootTable.java b/src/main/java/net/minecraft/world/level/storage/loot/LootTable.java
|
|
index 9051f0186c09eeb8ecccf62b0116f6da1800a1df..b231f90317fe7df9133674b12d47873520b481cb 100644
|
|
--- a/src/main/java/net/minecraft/world/level/storage/loot/LootTable.java
|
|
+++ b/src/main/java/net/minecraft/world/level/storage/loot/LootTable.java
|
|
@@ -259,8 +259,8 @@ public class LootTable {
|
|
|
|
public static class Builder implements FunctionUserBuilder<LootTable.Builder> {
|
|
|
|
- private final Builder<LootPool> pools = ImmutableList.builder();
|
|
- private final Builder<LootItemFunction> functions = ImmutableList.builder();
|
|
+ private final ImmutableList.Builder<LootPool> pools = ImmutableList.builder();
|
|
+ private final ImmutableList.Builder<LootItemFunction> functions = ImmutableList.builder();
|
|
private LootContextParamSet paramSet;
|
|
private Optional<ResourceLocation> randomSequence;
|
|
|
|
diff --git a/src/test/java/org/bukkit/DyeColorsTest.java b/src/test/java/org/bukkit/DyeColorsTest.java
|
|
index e96d821da0698dd42651500fb97a0856a9e9ce02..fb7d40181abdaa5b2ce607db47c09d0d0a19c86d 100644
|
|
--- a/src/test/java/org/bukkit/DyeColorsTest.java
|
|
+++ b/src/test/java/org/bukkit/DyeColorsTest.java
|
|
@@ -3,7 +3,6 @@ package org.bukkit;
|
|
import static org.bukkit.support.MatcherAssert.*;
|
|
import static org.hamcrest.Matchers.*;
|
|
|
|
-import net.minecraft.world.item.DyeColor;
|
|
import org.bukkit.support.environment.Normal;
|
|
import org.junit.jupiter.params.ParameterizedTest;
|
|
import org.junit.jupiter.params.provider.EnumSource;
|
|
@@ -15,7 +14,7 @@ public class DyeColorsTest {
|
|
@EnumSource(DyeColor.class)
|
|
public void checkColor(DyeColor dye) {
|
|
Color color = dye.getColor();
|
|
- int nmsColorArray = DyeColor.byId(dye.getWoolData()).getTextureDiffuseColor();
|
|
+ int nmsColorArray = net.minecraft.world.item.DyeColor.byId(dye.getWoolData()).getTextureDiffuseColor(); // Paper - remap fix
|
|
Color nmsColor = Color.fromARGB(nmsColorArray);
|
|
assertThat(color, is(nmsColor));
|
|
}
|
|
@@ -24,7 +23,7 @@ public class DyeColorsTest {
|
|
@EnumSource(org.bukkit.DyeColor.class)
|
|
public void checkFireworkColor(org.bukkit.DyeColor dye) {
|
|
Color color = dye.getFireworkColor();
|
|
- int nmsColor = DyeColor.byId(dye.getWoolData()).getFireworkColor();
|
|
+ int nmsColor = net.minecraft.world.item.DyeColor.byId(dye.getWoolData()).getFireworkColor(); // Paper - remap fix
|
|
assertThat(color, is(Color.fromRGB(nmsColor)));
|
|
}
|
|
}
|
|
diff --git a/src/test/java/org/bukkit/ParticleTest.java b/src/test/java/org/bukkit/ParticleTest.java
|
|
index 688c5bae8146f6fc8cddb2632e9cbf304f0745fb..1b0df6220682328b8f1d03416cb8df2f6662a1cf 100644
|
|
--- a/src/test/java/org/bukkit/ParticleTest.java
|
|
+++ b/src/test/java/org/bukkit/ParticleTest.java
|
|
@@ -251,7 +251,7 @@ public class ParticleTest {
|
|
Check in CraftParticle if the conversion is still correct.
|
|
""", bukkit.getKey()));
|
|
|
|
- DataResult<Tag> encoded = assertDoesNotThrow(() -> minecraft.codec().codec().encodeStart(DynamicOpsNBT.INSTANCE, particleParam),
|
|
+ DataResult<Tag> encoded = assertDoesNotThrow(() -> minecraft.codec().codec().encodeStart(NbtOps.INSTANCE, particleParam), // Paper - remap fix
|
|
String.format("""
|
|
Could not encoded particle param for particle %s.
|
|
This can indicated, that the wrong particle param is created in CraftParticle.
|
|
diff --git a/src/test/java/org/bukkit/entity/EntityTypesTest.java b/src/test/java/org/bukkit/entity/EntityTypesTest.java
|
|
index 9df52ab0f04758dd04f45f6029fe120ac1a933af..d513d926ddabd61a03172adb846afb7674ed402e 100644
|
|
--- a/src/test/java/org/bukkit/entity/EntityTypesTest.java
|
|
+++ b/src/test/java/org/bukkit/entity/EntityTypesTest.java
|
|
@@ -6,7 +6,6 @@ import java.util.Set;
|
|
import java.util.stream.Collectors;
|
|
import net.minecraft.core.registries.BuiltInRegistries;
|
|
import net.minecraft.resources.ResourceLocation;
|
|
-import net.minecraft.world.entity.EntityType;
|
|
import org.bukkit.support.environment.AllFeatures;
|
|
import org.junit.jupiter.api.Test;
|
|
|
|
@@ -17,8 +16,8 @@ public class EntityTypesTest {
|
|
public void testMaps() {
|
|
Set<EntityType> allBukkit = Arrays.stream(EntityType.values()).filter((b) -> b.getName() != null).collect(Collectors.toSet());
|
|
|
|
- for (EntityType<?> nms : BuiltInRegistries.ENTITY_TYPE) {
|
|
- ResourceLocation key = EntityType.getKey(nms);
|
|
+ for (net.minecraft.world.entity.EntityType<?> nms : BuiltInRegistries.ENTITY_TYPE) { // Paper - remap fix
|
|
+ ResourceLocation key = net.minecraft.world.entity.EntityType.getKey(nms); // Paper - remap fix
|
|
|
|
org.bukkit.entity.EntityType bukkit = org.bukkit.entity.EntityType.fromName(key.getPath());
|
|
assertNotNull(bukkit, "Missing nms->bukkit " + key);
|
|
diff --git a/src/test/java/org/bukkit/entity/PandaGeneTest.java b/src/test/java/org/bukkit/entity/PandaGeneTest.java
|
|
index 4a3ac959f0dcc35f80371443383be1f8b42b6d95..e8520f541fda2d1cd9677f3fc7d7d295743f88b2 100644
|
|
--- a/src/test/java/org/bukkit/entity/PandaGeneTest.java
|
|
+++ b/src/test/java/org/bukkit/entity/PandaGeneTest.java
|
|
@@ -2,7 +2,6 @@ package org.bukkit.entity;
|
|
|
|
import static org.junit.jupiter.api.Assertions.*;
|
|
|
|
-import net.minecraft.world.entity.animal.Panda;
|
|
import org.bukkit.craftbukkit.entity.CraftPanda;
|
|
import org.bukkit.support.environment.Normal;
|
|
import org.junit.jupiter.api.Test;
|
|
@@ -12,8 +11,8 @@ public class PandaGeneTest {
|
|
|
|
@Test
|
|
public void testBukkit() {
|
|
- for (Panda.Gene gene : Panda.Gene.values()) {
|
|
- Panda.Gene nms = CraftPanda.toNms(gene);
|
|
+ for (Panda.Gene gene : Panda.Gene.values()) { // Paper - remap fix
|
|
+ net.minecraft.world.entity.animal.Panda.Gene nms = CraftPanda.toNms(gene); // Paper - remap fix
|
|
|
|
assertNotNull(nms, "NMS gene null for " + gene);
|
|
assertEquals(gene.isRecessive(), nms.isRecessive(), "Recessive status did not match " + gene);
|
|
@@ -23,7 +22,7 @@ public class PandaGeneTest {
|
|
|
|
@Test
|
|
public void testNMS() {
|
|
- for (Panda.Gene gene : Panda.Gene.values()) {
|
|
+ for (net.minecraft.world.entity.animal.Panda.Gene gene : net.minecraft.world.entity.animal.Panda.Gene.values()) { // Paper - remap fix
|
|
org.bukkit.entity.Panda.Gene bukkit = CraftPanda.fromNms(gene);
|
|
|
|
assertNotNull(bukkit, "Bukkit gene null for " + gene);
|
|
diff --git a/src/test/java/org/bukkit/registry/RegistryConstantsTest.java b/src/test/java/org/bukkit/registry/RegistryConstantsTest.java
|
|
index a382ca7c6e0f96e5d8be37fa8139360db13f9c2f..8fb906c77070eedec8cde263154eaf4610ad3197 100644
|
|
--- a/src/test/java/org/bukkit/registry/RegistryConstantsTest.java
|
|
+++ b/src/test/java/org/bukkit/registry/RegistryConstantsTest.java
|
|
@@ -31,17 +31,17 @@ public class RegistryConstantsTest {
|
|
|
|
@Test
|
|
public void testTrimMaterial() {
|
|
- this.testExcessConstants(TrimMaterial.class, Registry.TRIM_MATERIAL);
|
|
+ this.testExcessConstants(TrimMaterial.class, org.bukkit.Registry.TRIM_MATERIAL); // Paper - remap fix
|
|
this.testMissingConstants(TrimMaterial.class, Registries.TRIM_MATERIAL);
|
|
}
|
|
|
|
@Test
|
|
public void testTrimPattern() {
|
|
- this.testExcessConstants(TrimPattern.class, Registry.TRIM_PATTERN);
|
|
+ this.testExcessConstants(TrimPattern.class, org.bukkit.Registry.TRIM_PATTERN); // Paper - remap fix
|
|
this.testMissingConstants(TrimPattern.class, Registries.TRIM_PATTERN);
|
|
}
|
|
|
|
- private <T extends Keyed> void testExcessConstants(Class<T> clazz, Registry<T> registry) {
|
|
+ private <T extends Keyed> void testExcessConstants(Class<T> clazz, org.bukkit.Registry<T> registry) { // Paper - remap fix
|
|
List<NamespacedKey> excessKeys = new ArrayList<>();
|
|
|
|
for (Field field : clazz.getFields()) {
|
|
diff --git a/src/test/java/org/bukkit/registry/RegistryLoadOrderTest.java b/src/test/java/org/bukkit/registry/RegistryLoadOrderTest.java
|
|
index 52f057a3b81ae798a8ff354a90e2cc64264c0398..0c704fb9e73229f5632f1f48e59fccc0daf9ec26 100644
|
|
--- a/src/test/java/org/bukkit/registry/RegistryLoadOrderTest.java
|
|
+++ b/src/test/java/org/bukkit/registry/RegistryLoadOrderTest.java
|
|
@@ -25,7 +25,7 @@ public class RegistryLoadOrderTest {
|
|
|
|
private static boolean initInterface = false;
|
|
private static boolean initAbstract = false;
|
|
- private static Registry<Keyed> registry;
|
|
+ private static org.bukkit.Registry<Keyed> registry; // Paper - remap fix
|
|
|
|
public static Stream<Arguments> data() {
|
|
return Stream.of(
|