2022-06-07 20:12:34 +02:00
|
|
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
|
|
From: Aikar <aikar@aikar.co>
|
|
|
|
Date: Wed, 30 Mar 2016 19:36:20 -0400
|
|
|
|
Subject: [PATCH] MC Dev fixes
|
|
|
|
|
|
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/Util.java b/src/main/java/net/minecraft/Util.java
|
2022-07-27 20:52:03 +02:00
|
|
|
index c237683b040b13f693675c2bead26868d582efa4..c52be35a75613936cbf1b2dc9b1aa959f5577627 100644
|
2022-06-07 20:12:34 +02:00
|
|
|
--- a/src/main/java/net/minecraft/Util.java
|
|
|
|
+++ b/src/main/java/net/minecraft/Util.java
|
2022-07-27 20:52:03 +02:00
|
|
|
@@ -376,7 +376,7 @@ public class Util {
|
2022-06-07 20:12:34 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public static <K> Hash.Strategy<K> identityStrategy() {
|
|
|
|
- return Util.IdentityStrategy.INSTANCE;
|
|
|
|
+ return (Hash.Strategy<K>) Util.IdentityStrategy.INSTANCE; // Paper - decompile fix
|
|
|
|
}
|
|
|
|
|
|
|
|
public static <V> CompletableFuture<List<V>> sequence(List<? extends CompletableFuture<V>> futures) {
|
|
|
|
diff --git a/src/main/java/net/minecraft/core/BlockPos.java b/src/main/java/net/minecraft/core/BlockPos.java
|
|
|
|
index eabf34265470e68b56c0d8787a7acffcf9b49e83..c94084aee70d269a71a5423c13a5eba2babd9a6b 100644
|
|
|
|
--- a/src/main/java/net/minecraft/core/BlockPos.java
|
|
|
|
+++ b/src/main/java/net/minecraft/core/BlockPos.java
|
|
|
|
@@ -375,12 +375,12 @@ public class BlockPos extends Vec3i {
|
|
|
|
if (this.index == l) {
|
|
|
|
return this.endOfData();
|
|
|
|
} else {
|
|
|
|
- int i = this.index % i;
|
|
|
|
- int j = this.index / i;
|
|
|
|
- int k = j % j;
|
|
|
|
- int l = j / j;
|
|
|
|
+ int offsetX = this.index % i; // Paper - decomp fix
|
|
|
|
+ int u = this.index / i; // Paper - decomp fix
|
|
|
|
+ int offsetY = u % j; // Paper - decomp fix
|
|
|
|
+ int offsetZ = u / j; // Paper - decomp fix
|
|
|
|
++this.index;
|
|
|
|
- return this.cursor.set(startX + i, startY + k, startZ + l);
|
|
|
|
+ return this.cursor.set(startX + offsetX, startY + offsetY, startZ + offsetZ); // Paper - decomp fix
|
|
|
|
}
|
|
|
|
}
|
|
|
|
};
|
|
|
|
diff --git a/src/main/java/net/minecraft/nbt/NbtUtils.java b/src/main/java/net/minecraft/nbt/NbtUtils.java
|
2022-07-27 20:52:03 +02:00
|
|
|
index 0929472fd54aa0a81344476a5b137b2b4f194d79..d6d8adf1e49cdb74dc5d8e2e60bcaca7c5e1c16d 100644
|
2022-06-07 20:12:34 +02:00
|
|
|
--- a/src/main/java/net/minecraft/nbt/NbtUtils.java
|
|
|
|
+++ b/src/main/java/net/minecraft/nbt/NbtUtils.java
|
2022-07-27 20:52:03 +02:00
|
|
|
@@ -40,14 +40,14 @@ import net.minecraft.world.level.material.FluidState;
|
2022-06-07 20:12:34 +02:00
|
|
|
import org.slf4j.Logger;
|
|
|
|
|
|
|
|
public final class NbtUtils {
|
|
|
|
- private static final Comparator<ListTag> YXZ_LISTTAG_INT_COMPARATOR = Comparator.comparingInt((nbt) -> {
|
|
|
|
+ private static final Comparator<ListTag> YXZ_LISTTAG_INT_COMPARATOR = Comparator.<ListTag>comparingInt((nbt) -> { // Paper - decompile fix
|
|
|
|
return nbt.getInt(1);
|
|
|
|
}).thenComparingInt((nbt) -> {
|
|
|
|
return nbt.getInt(0);
|
|
|
|
}).thenComparingInt((nbt) -> {
|
|
|
|
return nbt.getInt(2);
|
|
|
|
});
|
|
|
|
- private static final Comparator<ListTag> YXZ_LISTTAG_DOUBLE_COMPARATOR = Comparator.comparingDouble((nbt) -> {
|
|
|
|
+ private static final Comparator<ListTag> YXZ_LISTTAG_DOUBLE_COMPARATOR = Comparator.<ListTag>comparingDouble((nbt) -> { // Paper - decompile fix
|
|
|
|
return nbt.getDouble(1);
|
|
|
|
}).thenComparingDouble((nbt) -> {
|
|
|
|
return nbt.getDouble(0);
|
2022-07-27 20:52:03 +02:00
|
|
|
@@ -495,7 +495,7 @@ public final class NbtUtils {
|
2022-06-07 20:12:34 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public static CompoundTag update(DataFixer fixer, DataFixTypes fixTypes, CompoundTag compound, int oldVersion, int targetVersion) {
|
|
|
|
- return fixer.update(fixTypes.getType(), new Dynamic<>(NbtOps.INSTANCE, compound), oldVersion, targetVersion).getValue();
|
|
|
|
+ return (CompoundTag) fixer.update(fixTypes.getType(), new Dynamic<>(NbtOps.INSTANCE, compound), oldVersion, targetVersion).getValue(); // Paper - decompile fix
|
|
|
|
}
|
|
|
|
|
|
|
|
public static Component toPrettyComponent(Tag element) {
|
|
|
|
diff --git a/src/main/java/net/minecraft/network/ConnectionProtocol.java b/src/main/java/net/minecraft/network/ConnectionProtocol.java
|
2022-07-27 20:52:03 +02:00
|
|
|
index b552d2c0a07e322224ce6693e89f1dd6552c2037..672e296cec289abd3bf797d84e16983ca50907be 100644
|
2022-06-07 20:12:34 +02:00
|
|
|
--- a/src/main/java/net/minecraft/network/ConnectionProtocol.java
|
|
|
|
+++ b/src/main/java/net/minecraft/network/ConnectionProtocol.java
|
|
|
|
@@ -16,6 +16,7 @@ import javax.annotation.Nullable;
|
|
|
|
import net.minecraft.Util;
|
|
|
|
import net.minecraft.network.protocol.Packet;
|
|
|
|
import net.minecraft.network.protocol.PacketFlow;
|
|
|
|
+import net.minecraft.network.protocol.game.ClientGamePacketListener;
|
|
|
|
import net.minecraft.network.protocol.game.ClientboundAddEntityPacket;
|
|
|
|
import net.minecraft.network.protocol.game.ClientboundAddExperienceOrbPacket;
|
|
|
|
import net.minecraft.network.protocol.game.ClientboundAddPlayerPacket;
|
2022-07-27 20:52:03 +02:00
|
|
|
@@ -122,6 +123,7 @@ import net.minecraft.network.protocol.game.ClientboundUpdateAttributesPacket;
|
2022-06-07 20:12:34 +02:00
|
|
|
import net.minecraft.network.protocol.game.ClientboundUpdateMobEffectPacket;
|
|
|
|
import net.minecraft.network.protocol.game.ClientboundUpdateRecipesPacket;
|
|
|
|
import net.minecraft.network.protocol.game.ClientboundUpdateTagsPacket;
|
|
|
|
+import net.minecraft.network.protocol.game.ServerGamePacketListener;
|
|
|
|
import net.minecraft.network.protocol.game.ServerboundAcceptTeleportationPacket;
|
|
|
|
import net.minecraft.network.protocol.game.ServerboundBlockEntityTagQuery;
|
|
|
|
import net.minecraft.network.protocol.game.ServerboundChangeDifficultyPacket;
|
2022-07-27 20:52:03 +02:00
|
|
|
@@ -171,27 +173,33 @@ import net.minecraft.network.protocol.game.ServerboundTeleportToEntityPacket;
|
2022-06-07 20:12:34 +02:00
|
|
|
import net.minecraft.network.protocol.game.ServerboundUseItemOnPacket;
|
|
|
|
import net.minecraft.network.protocol.game.ServerboundUseItemPacket;
|
|
|
|
import net.minecraft.network.protocol.handshake.ClientIntentionPacket;
|
|
|
|
+import net.minecraft.network.protocol.handshake.ServerHandshakePacketListener;
|
|
|
|
+import net.minecraft.network.protocol.login.ClientLoginPacketListener;
|
|
|
|
import net.minecraft.network.protocol.login.ClientboundCustomQueryPacket;
|
|
|
|
import net.minecraft.network.protocol.login.ClientboundGameProfilePacket;
|
|
|
|
import net.minecraft.network.protocol.login.ClientboundHelloPacket;
|
|
|
|
import net.minecraft.network.protocol.login.ClientboundLoginCompressionPacket;
|
|
|
|
import net.minecraft.network.protocol.login.ClientboundLoginDisconnectPacket;
|
|
|
|
+import net.minecraft.network.protocol.login.ServerLoginPacketListener;
|
|
|
|
import net.minecraft.network.protocol.login.ServerboundCustomQueryPacket;
|
|
|
|
import net.minecraft.network.protocol.login.ServerboundHelloPacket;
|
|
|
|
import net.minecraft.network.protocol.login.ServerboundKeyPacket;
|
|
|
|
+import net.minecraft.network.protocol.status.ClientStatusPacketListener;
|
|
|
|
import net.minecraft.network.protocol.status.ClientboundPongResponsePacket;
|
|
|
|
import net.minecraft.network.protocol.status.ClientboundStatusResponsePacket;
|
|
|
|
+import net.minecraft.network.protocol.status.ServerStatusPacketListener;
|
|
|
|
import net.minecraft.network.protocol.status.ServerboundPingRequestPacket;
|
|
|
|
import net.minecraft.network.protocol.status.ServerboundStatusRequestPacket;
|
|
|
|
import net.minecraft.util.VisibleForDebug;
|
|
|
|
import org.slf4j.Logger;
|
|
|
|
|
|
|
|
public enum ConnectionProtocol {
|
|
|
|
- HANDSHAKING(-1, protocol().addFlow(PacketFlow.SERVERBOUND, (new ConnectionProtocol.PacketSet()).addPacket(ClientIntentionPacket.class, ClientIntentionPacket::new))),
|
2022-07-27 20:52:03 +02:00
|
|
|
- PLAY(0, protocol().addFlow(PacketFlow.CLIENTBOUND, (new ConnectionProtocol.PacketSet()).addPacket(ClientboundAddEntityPacket.class, ClientboundAddEntityPacket::new).addPacket(ClientboundAddExperienceOrbPacket.class, ClientboundAddExperienceOrbPacket::new).addPacket(ClientboundAddPlayerPacket.class, ClientboundAddPlayerPacket::new).addPacket(ClientboundAnimatePacket.class, ClientboundAnimatePacket::new).addPacket(ClientboundAwardStatsPacket.class, ClientboundAwardStatsPacket::new).addPacket(ClientboundBlockChangedAckPacket.class, ClientboundBlockChangedAckPacket::new).addPacket(ClientboundBlockDestructionPacket.class, ClientboundBlockDestructionPacket::new).addPacket(ClientboundBlockEntityDataPacket.class, ClientboundBlockEntityDataPacket::new).addPacket(ClientboundBlockEventPacket.class, ClientboundBlockEventPacket::new).addPacket(ClientboundBlockUpdatePacket.class, ClientboundBlockUpdatePacket::new).addPacket(ClientboundBossEventPacket.class, ClientboundBossEventPacket::new).addPacket(ClientboundChangeDifficultyPacket.class, ClientboundChangeDifficultyPacket::new).addPacket(ClientboundChatPreviewPacket.class, ClientboundChatPreviewPacket::new).addPacket(ClientboundClearTitlesPacket.class, ClientboundClearTitlesPacket::new).addPacket(ClientboundCommandSuggestionsPacket.class, ClientboundCommandSuggestionsPacket::new).addPacket(ClientboundCommandsPacket.class, ClientboundCommandsPacket::new).addPacket(ClientboundContainerClosePacket.class, ClientboundContainerClosePacket::new).addPacket(ClientboundContainerSetContentPacket.class, ClientboundContainerSetContentPacket::new).addPacket(ClientboundContainerSetDataPacket.class, ClientboundContainerSetDataPacket::new).addPacket(ClientboundContainerSetSlotPacket.class, ClientboundContainerSetSlotPacket::new).addPacket(ClientboundCooldownPacket.class, ClientboundCooldownPacket::new).addPacket(ClientboundCustomChatCompletionsPacket.class, ClientboundCustomChatCompletionsPacket::new).addPacket(ClientboundCustomPayloadPacket.class, ClientboundCustomPayloadPacket::new).addPacket(ClientboundCustomSoundPacket.class, ClientboundCustomSoundPacket::new).addPacket(ClientboundDeleteChatPacket.class, ClientboundDeleteChatPacket::new).addPacket(ClientboundDisconnectPacket.class, ClientboundDisconnectPacket::new).addPacket(ClientboundEntityEventPacket.class, ClientboundEntityEventPacket::new).addPacket(ClientboundExplodePacket.class, ClientboundExplodePacket::new).addPacket(ClientboundForgetLevelChunkPacket.class, ClientboundForgetLevelChunkPacket::new).addPacket(ClientboundGameEventPacket.class, ClientboundGameEventPacket::new).addPacket(ClientboundHorseScreenOpenPacket.class, ClientboundHorseScreenOpenPacket::new).addPacket(ClientboundInitializeBorderPacket.class, ClientboundInitializeBorderPacket::new).addPacket(ClientboundKeepAlivePacket.class, ClientboundKeepAlivePacket::new).addPacket(ClientboundLevelChunkWithLightPacket.class, ClientboundLevelChunkWithLightPacket::new).addPacket(ClientboundLevelEventPacket.class, ClientboundLevelEventPacket::new).addPacket(ClientboundLevelParticlesPacket.class, ClientboundLevelParticlesPacket::new).addPacket(ClientboundLightUpdatePacket.class, ClientboundLightUpdatePacket::new).addPacket(ClientboundLoginPacket.class, ClientboundLoginPacket::new).addPacket(ClientboundMapItemDataPacket.class, ClientboundMapItemDataPacket::new).addPacket(ClientboundMerchantOffersPacket.class, ClientboundMerchantOffersPacket::new).addPacket(ClientboundMoveEntityPacket.Pos.class, ClientboundMoveEntityPacket.Pos::read).addPacket(ClientboundMoveEntityPacket.PosRot.class, ClientboundMoveEntityPacket.PosRot::read).addPacket(ClientboundMoveEntityPacket.Rot.class, ClientboundMoveEntityPacket.Rot::read).addPacket(ClientboundMoveVehiclePacket.class, ClientboundMoveVehiclePacket::new).addPacket(ClientboundOpenBookPacket.class, ClientboundOpenBookPacket::new).addPacket(ClientboundOpenScreenPacket.class, ClientboundOpenScreenPacket::new).addPacket(ClientboundOpenSignEditorPacket.class, ClientboundOpenSignEditorPacket::new).addPacket(ClientboundPingPacket.class, ClientboundPingPack
|
2022-06-07 20:12:34 +02:00
|
|
|
- STATUS(1, protocol().addFlow(PacketFlow.SERVERBOUND, (new ConnectionProtocol.PacketSet()).addPacket(ServerboundStatusRequestPacket.class, ServerboundStatusRequestPacket::new).addPacket(ServerboundPingRequestPacket.class, ServerboundPingRequestPacket::new)).addFlow(PacketFlow.CLIENTBOUND, (new ConnectionProtocol.PacketSet()).addPacket(ClientboundStatusResponsePacket.class, ClientboundStatusResponsePacket::new).addPacket(ClientboundPongResponsePacket.class, ClientboundPongResponsePacket::new))),
|
|
|
|
- LOGIN(2, protocol().addFlow(PacketFlow.CLIENTBOUND, (new ConnectionProtocol.PacketSet()).addPacket(ClientboundLoginDisconnectPacket.class, ClientboundLoginDisconnectPacket::new).addPacket(ClientboundHelloPacket.class, ClientboundHelloPacket::new).addPacket(ClientboundGameProfilePacket.class, ClientboundGameProfilePacket::new).addPacket(ClientboundLoginCompressionPacket.class, ClientboundLoginCompressionPacket::new).addPacket(ClientboundCustomQueryPacket.class, ClientboundCustomQueryPacket::new)).addFlow(PacketFlow.SERVERBOUND, (new ConnectionProtocol.PacketSet()).addPacket(ServerboundHelloPacket.class, ServerboundHelloPacket::new).addPacket(ServerboundKeyPacket.class, ServerboundKeyPacket::new).addPacket(ServerboundCustomQueryPacket.class, ServerboundCustomQueryPacket::new)));
|
2022-07-27 20:52:03 +02:00
|
|
|
-
|
2022-06-07 20:12:34 +02:00
|
|
|
+ // Paper start - fix decompile error - add correct generic packet listeners (e.g. ServerHandshakePacketListener) to PacketSet's generic type, matching the packet flow direction
|
|
|
|
+ HANDSHAKING(-1, protocol().addFlow(PacketFlow.SERVERBOUND, (new ConnectionProtocol.PacketSet<ServerHandshakePacketListener>()).addPacket(ClientIntentionPacket.class, ClientIntentionPacket::new))),
|
2022-07-27 20:52:03 +02:00
|
|
|
+ PLAY(0, protocol().addFlow(PacketFlow.CLIENTBOUND, (new ConnectionProtocol.PacketSet<ClientGamePacketListener>()).addPacket(ClientboundAddEntityPacket.class, ClientboundAddEntityPacket::new).addPacket(ClientboundAddExperienceOrbPacket.class, ClientboundAddExperienceOrbPacket::new).addPacket(ClientboundAddPlayerPacket.class, ClientboundAddPlayerPacket::new).addPacket(ClientboundAnimatePacket.class, ClientboundAnimatePacket::new).addPacket(ClientboundAwardStatsPacket.class, ClientboundAwardStatsPacket::new).addPacket(ClientboundBlockChangedAckPacket.class, ClientboundBlockChangedAckPacket::new).addPacket(ClientboundBlockDestructionPacket.class, ClientboundBlockDestructionPacket::new).addPacket(ClientboundBlockEntityDataPacket.class, ClientboundBlockEntityDataPacket::new).addPacket(ClientboundBlockEventPacket.class, ClientboundBlockEventPacket::new).addPacket(ClientboundBlockUpdatePacket.class, ClientboundBlockUpdatePacket::new).addPacket(ClientboundBossEventPacket.class, ClientboundBossEventPacket::new).addPacket(ClientboundChangeDifficultyPacket.class, ClientboundChangeDifficultyPacket::new).addPacket(ClientboundChatPreviewPacket.class, ClientboundChatPreviewPacket::new).addPacket(ClientboundClearTitlesPacket.class, ClientboundClearTitlesPacket::new).addPacket(ClientboundCommandSuggestionsPacket.class, ClientboundCommandSuggestionsPacket::new).addPacket(ClientboundCommandsPacket.class, ClientboundCommandsPacket::new).addPacket(ClientboundContainerClosePacket.class, ClientboundContainerClosePacket::new).addPacket(ClientboundContainerSetContentPacket.class, ClientboundContainerSetContentPacket::new).addPacket(ClientboundContainerSetDataPacket.class, ClientboundContainerSetDataPacket::new).addPacket(ClientboundContainerSetSlotPacket.class, ClientboundContainerSetSlotPacket::new).addPacket(ClientboundCooldownPacket.class, ClientboundCooldownPacket::new).addPacket(ClientboundCustomChatCompletionsPacket.class, ClientboundCustomChatCompletionsPacket::new).addPacket(ClientboundCustomPayloadPacket.class, ClientboundCustomPayloadPacket::new).addPacket(ClientboundCustomSoundPacket.class, ClientboundCustomSoundPacket::new).addPacket(ClientboundDeleteChatPacket.class, ClientboundDeleteChatPacket::new).addPacket(ClientboundDisconnectPacket.class, ClientboundDisconnectPacket::new).addPacket(ClientboundEntityEventPacket.class, ClientboundEntityEventPacket::new).addPacket(ClientboundExplodePacket.class, ClientboundExplodePacket::new).addPacket(ClientboundForgetLevelChunkPacket.class, ClientboundForgetLevelChunkPacket::new).addPacket(ClientboundGameEventPacket.class, ClientboundGameEventPacket::new).addPacket(ClientboundHorseScreenOpenPacket.class, ClientboundHorseScreenOpenPacket::new).addPacket(ClientboundInitializeBorderPacket.class, ClientboundInitializeBorderPacket::new).addPacket(ClientboundKeepAlivePacket.class, ClientboundKeepAlivePacket::new).addPacket(ClientboundLevelChunkWithLightPacket.class, ClientboundLevelChunkWithLightPacket::new).addPacket(ClientboundLevelEventPacket.class, ClientboundLevelEventPacket::new).addPacket(ClientboundLevelParticlesPacket.class, ClientboundLevelParticlesPacket::new).addPacket(ClientboundLightUpdatePacket.class, ClientboundLightUpdatePacket::new).addPacket(ClientboundLoginPacket.class, ClientboundLoginPacket::new).addPacket(ClientboundMapItemDataPacket.class, ClientboundMapItemDataPacket::new).addPacket(ClientboundMerchantOffersPacket.class, ClientboundMerchantOffersPacket::new).addPacket(ClientboundMoveEntityPacket.Pos.class, ClientboundMoveEntityPacket.Pos::read).addPacket(ClientboundMoveEntityPacket.PosRot.class, ClientboundMoveEntityPacket.PosRot::read).addPacket(ClientboundMoveEntityPacket.Rot.class, ClientboundMoveEntityPacket.Rot::read).addPacket(ClientboundMoveVehiclePacket.class, ClientboundMoveVehiclePacket::new).addPacket(ClientboundOpenBookPacket.class, ClientboundOpenBookPacket::new).addPacket(ClientboundOpenScreenPacket.class, ClientboundOpenScreenPacket::new).addPacket(ClientboundOpenSignEditorPacket.class, ClientboundOpenSignEditorPacket::new).addPacket(ClientboundPingPacket.
|
2022-06-07 20:12:34 +02:00
|
|
|
+ STATUS(1, protocol().addFlow(PacketFlow.SERVERBOUND, (new ConnectionProtocol.PacketSet<ServerStatusPacketListener>()).addPacket(ServerboundStatusRequestPacket.class, ServerboundStatusRequestPacket::new).addPacket(ServerboundPingRequestPacket.class, ServerboundPingRequestPacket::new)).addFlow(PacketFlow.CLIENTBOUND, (new ConnectionProtocol.PacketSet<ClientStatusPacketListener>()).addPacket(ClientboundStatusResponsePacket.class, ClientboundStatusResponsePacket::new).addPacket(ClientboundPongResponsePacket.class, ClientboundPongResponsePacket::new))),
|
|
|
|
+ LOGIN(2, protocol().addFlow(PacketFlow.CLIENTBOUND, (new ConnectionProtocol.PacketSet<ClientLoginPacketListener>()).addPacket(ClientboundLoginDisconnectPacket.class, ClientboundLoginDisconnectPacket::new).addPacket(ClientboundHelloPacket.class, ClientboundHelloPacket::new).addPacket(ClientboundGameProfilePacket.class, ClientboundGameProfilePacket::new).addPacket(ClientboundLoginCompressionPacket.class, ClientboundLoginCompressionPacket::new).addPacket(ClientboundCustomQueryPacket.class, ClientboundCustomQueryPacket::new)).addFlow(PacketFlow.SERVERBOUND, (new ConnectionProtocol.PacketSet<ServerLoginPacketListener>()).addPacket(ServerboundHelloPacket.class, ServerboundHelloPacket::new).addPacket(ServerboundKeyPacket.class, ServerboundKeyPacket::new).addPacket(ServerboundCustomQueryPacket.class, ServerboundCustomQueryPacket::new)));
|
|
|
|
+ // Paper end
|
|
|
|
private static final int MIN_PROTOCOL_ID = -1;
|
|
|
|
private static final int MAX_PROTOCOL_ID = 2;
|
2022-07-27 20:52:03 +02:00
|
|
|
private static final ConnectionProtocol[] LOOKUP = new ConnectionProtocol[4];
|
2022-06-07 20:12:34 +02:00
|
|
|
diff --git a/src/main/java/net/minecraft/resources/RegistryLoader.java b/src/main/java/net/minecraft/resources/RegistryLoader.java
|
|
|
|
index 82764c462f82163ee49f4e9466f383366cd23b8b..8da1226a6c293abb038d10c7921a77ed71ad06cc 100644
|
|
|
|
--- a/src/main/java/net/minecraft/resources/RegistryLoader.java
|
|
|
|
+++ b/src/main/java/net/minecraft/resources/RegistryLoader.java
|
|
|
|
@@ -76,7 +76,7 @@ public class RegistryLoader {
|
|
|
|
}
|
|
|
|
|
|
|
|
private <E> RegistryLoader.ReadCache<E> readCache(ResourceKey<? extends Registry<E>> registryRef) {
|
|
|
|
- return this.readCache.computeIfAbsent(registryRef, (ref) -> {
|
|
|
|
+ return (RegistryLoader.ReadCache<E>) this.readCache.computeIfAbsent(registryRef, (ref) -> { // Paper - decompile fix
|
|
|
|
return new RegistryLoader.ReadCache();
|
|
|
|
});
|
|
|
|
}
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
2022-07-27 20:52:03 +02:00
|
|
|
index 7740e69617c3d543a67ed0942ba8ec550ad4386d..b7d44c4a961ad3881bbf8f87f1595be79e3467f6 100644
|
2022-06-07 20:12:34 +02:00
|
|
|
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
|
|
|
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
2022-06-09 10:51:45 +02:00
|
|
|
@@ -1737,7 +1737,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
2022-06-07 20:12:34 +02:00
|
|
|
PackRepository resourcepackrepository = this.packRepository;
|
|
|
|
|
|
|
|
Objects.requireNonNull(this.packRepository);
|
|
|
|
- return stream.map(resourcepackrepository::getPack).filter(Objects::nonNull).map(Pack::open).collect(ImmutableList.toImmutableList()); // CraftBukkit - decompile error
|
|
|
|
+ return stream.<Pack>map(resourcepackrepository::getPack).filter(Objects::nonNull).map(Pack::open).collect(ImmutableList.toImmutableList()); // CraftBukkit - decompile error // Paper - decompile error // todo: is this needed anymore?
|
|
|
|
}, this).thenCompose((immutablelist) -> {
|
|
|
|
MultiPackResourceManager resourcemanager = new MultiPackResourceManager(PackType.SERVER_DATA, immutablelist);
|
|
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/level/Ticket.java b/src/main/java/net/minecraft/server/level/Ticket.java
|
|
|
|
index 062da1bddd9704f5fbc46e974e13e60cd500bbe2..ffc43e5d3d0563c9e9c171064511b2c65ddf67e1 100644
|
|
|
|
--- a/src/main/java/net/minecraft/server/level/Ticket.java
|
|
|
|
+++ b/src/main/java/net/minecraft/server/level/Ticket.java
|
|
|
|
@@ -21,7 +21,7 @@ public final class Ticket<T> implements Comparable<Ticket<?>> {
|
|
|
|
return i;
|
|
|
|
} else {
|
|
|
|
int j = Integer.compare(System.identityHashCode(this.type), System.identityHashCode(ticket.type));
|
|
|
|
- return j != 0 ? j : this.type.getComparator().compare(this.key, ticket.key);
|
|
|
|
+ return j != 0 ? j : this.type.getComparator().compare(this.key, (T)ticket.key); // Paper - decompile fix
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/util/SortedArraySet.java b/src/main/java/net/minecraft/util/SortedArraySet.java
|
|
|
|
index d0f6eb3981a171c0f34870cb0472599d6cca9642..d1b2ba24ef54e01c6249c3b2ca16e80f03c001a6 100644
|
|
|
|
--- a/src/main/java/net/minecraft/util/SortedArraySet.java
|
|
|
|
+++ b/src/main/java/net/minecraft/util/SortedArraySet.java
|
|
|
|
@@ -28,7 +28,7 @@ public class SortedArraySet<T> extends AbstractSet<T> {
|
|
|
|
}
|
|
|
|
|
|
|
|
public static <T extends Comparable<T>> SortedArraySet<T> create(int initialCapacity) {
|
|
|
|
- return new SortedArraySet<>(initialCapacity, Comparator.naturalOrder());
|
|
|
|
+ return new SortedArraySet<>(initialCapacity, Comparator.<T>naturalOrder()); // Paper - decompile fix
|
|
|
|
}
|
|
|
|
|
|
|
|
public static <T> SortedArraySet<T> create(Comparator<T> comparator) {
|
|
|
|
diff --git a/src/main/java/net/minecraft/world/entity/ai/village/poi/PoiSection.java b/src/main/java/net/minecraft/world/entity/ai/village/poi/PoiSection.java
|
|
|
|
index 8760e4199a1c8ae1a784f885923616f3740fe120..bb2be6eea7a0cff4cc70bd43738b1ce213e43558 100644
|
|
|
|
--- a/src/main/java/net/minecraft/world/entity/ai/village/poi/PoiSection.java
|
|
|
|
+++ b/src/main/java/net/minecraft/world/entity/ai/village/poi/PoiSection.java
|
|
|
|
@@ -31,7 +31,7 @@ public class PoiSection {
|
|
|
|
private boolean isValid;
|
|
|
|
|
|
|
|
public static Codec<PoiSection> codec(Runnable updateListener) {
|
|
|
|
- return RecordCodecBuilder.create((instance) -> {
|
|
|
|
+ return RecordCodecBuilder.<PoiSection>create((instance) -> { // Paper - decompile fix
|
|
|
|
return instance.group(RecordCodecBuilder.point(updateListener), Codec.BOOL.optionalFieldOf("Valid", Boolean.valueOf(false)).forGetter((poiSet) -> {
|
|
|
|
return poiSet.isValid;
|
|
|
|
}), PoiRecord.codec(updateListener).listOf().fieldOf("Records").forGetter((poiSet) -> {
|
2022-07-07 23:38:12 +02:00
|
|
|
diff --git a/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java b/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java
|
|
|
|
index 01f8d11ee4441a1c4d87427e3f9bcd7155259a5b..fe660bbaa4113fb2ffa1ea2f10e4e1e674fbb86d 100644
|
|
|
|
--- a/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java
|
|
|
|
+++ b/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java
|
|
|
|
@@ -105,7 +105,7 @@ public class Frog extends Animal {
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public Brain<Frog> getBrain() {
|
|
|
|
- return super.getBrain();
|
|
|
|
+ return (Brain<Frog>) super.getBrain(); // Paper - decompile fix
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
2022-06-07 20:12:34 +02:00
|
|
|
diff --git a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
|
|
|
|
index 64314cf4dc53a1a0a5f676fa00503858e0120dfa..45741410a13cffe3419e34b5607b048bbcf1c3ff 100644
|
|
|
|
--- a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
|
|
|
|
+++ b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
|
|
|
|
@@ -123,7 +123,7 @@ public class Hoglin extends Animal implements Enemy, HoglinBase {
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public Brain<Hoglin> getBrain() {
|
|
|
|
- return super.getBrain();
|
|
|
|
+ return (Brain<Hoglin>) super.getBrain(); // Paper - decompile fix
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
diff --git a/src/main/java/net/minecraft/world/item/crafting/RecipeManager.java b/src/main/java/net/minecraft/world/item/crafting/RecipeManager.java
|
|
|
|
index 17c72a767e7b749ed78a9b54af19bae5381b296c..4872f70977e73c889fe6e2339d00ebc64459613d 100644
|
|
|
|
--- a/src/main/java/net/minecraft/world/item/crafting/RecipeManager.java
|
|
|
|
+++ b/src/main/java/net/minecraft/world/item/crafting/RecipeManager.java
|
|
|
|
@@ -78,7 +78,7 @@ public class RecipeManager extends SimpleJsonResourceReloadListener {
|
|
|
|
}
|
|
|
|
|
|
|
|
this.recipes = (Map) map1.entrySet().stream().collect(ImmutableMap.toImmutableMap(Entry::getKey, (entry1) -> {
|
|
|
|
- return (entry1.getValue()); // CraftBukkit
|
|
|
|
+ return entry1.getValue(); // CraftBukkit // Paper - decompile fix - *shrugs internally* // todo: is this needed anymore?
|
|
|
|
}));
|
|
|
|
this.byName = Maps.newHashMap(builder.build()); // CraftBukkit
|
|
|
|
RecipeManager.LOGGER.info("Loaded {} recipes", map1.size());
|
|
|
|
diff --git a/src/main/java/net/minecraft/world/level/chunk/PalettedContainer.java b/src/main/java/net/minecraft/world/level/chunk/PalettedContainer.java
|
2022-07-27 20:52:03 +02:00
|
|
|
index 95b03b7bc63bc2171347c030cba3a38e55de23a3..78e20871e4bd8d92c4475f797a55733c68f6aeb4 100644
|
2022-06-07 20:12:34 +02:00
|
|
|
--- a/src/main/java/net/minecraft/world/level/chunk/PalettedContainer.java
|
|
|
|
+++ b/src/main/java/net/minecraft/world/level/chunk/PalettedContainer.java
|
|
|
|
@@ -56,7 +56,7 @@ public class PalettedContainer<T> implements PaletteResize<T>, PalettedContainer
|
|
|
|
}
|
|
|
|
|
2022-07-27 20:52:03 +02:00
|
|
|
private static <T, C extends PalettedContainerRO<T>> Codec<C> codec(IdMap<T> idList, Codec<T> entryCodec, PalettedContainer.Strategy provider, T defaultValue, PalettedContainerRO.Unpacker<T, C> reader) {
|
2022-06-07 20:12:34 +02:00
|
|
|
- return RecordCodecBuilder.create((instance) -> {
|
|
|
|
+ return RecordCodecBuilder.<PackedData<T>>create((instance) -> { // Paper - decompile fix
|
2022-07-27 20:52:03 +02:00
|
|
|
return instance.group(entryCodec.mapResult(ExtraCodecs.orElsePartial(defaultValue)).listOf().fieldOf("palette").forGetter(PalettedContainerRO.PackedData::paletteEntries), Codec.LONG_STREAM.optionalFieldOf("data").forGetter(PalettedContainerRO.PackedData::storage)).apply(instance, PalettedContainerRO.PackedData::new);
|
|
|
|
}).comapFlatMap((serialized) -> {
|
|
|
|
return reader.read(idList, provider, serialized);
|
2022-06-07 20:12:34 +02:00
|
|
|
diff --git a/src/main/java/net/minecraft/world/level/entity/EntityLookup.java b/src/main/java/net/minecraft/world/level/entity/EntityLookup.java
|
|
|
|
index 3864da01056970ae05cc3ca094f923178b4ffc97..e6b9f812e521abd552e0c7dc0429d5a62f2bfc35 100644
|
|
|
|
--- a/src/main/java/net/minecraft/world/level/entity/EntityLookup.java
|
|
|
|
+++ b/src/main/java/net/minecraft/world/level/entity/EntityLookup.java
|
|
|
|
@@ -20,7 +20,7 @@ public class EntityLookup<T extends EntityAccess> {
|
|
|
|
for(T entityAccess : this.byId.values()) {
|
|
|
|
U entityAccess2 = (U)((EntityAccess)filter.tryCast(entityAccess));
|
|
|
|
if (entityAccess2 != null) {
|
|
|
|
- action.accept((T)entityAccess2);
|
|
|
|
+ action.accept(entityAccess2); // Paper - decompile fix
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/world/level/entity/EntitySection.java b/src/main/java/net/minecraft/world/level/entity/EntitySection.java
|
|
|
|
index e6b1663d4ccdd3842f711ad7547df8ccf973e4b1..524f3c42964eb83c9109bcc548a1075f1e295411 100644
|
|
|
|
--- a/src/main/java/net/minecraft/world/level/entity/EntitySection.java
|
|
|
|
+++ b/src/main/java/net/minecraft/world/level/entity/EntitySection.java
|
|
|
|
@@ -42,7 +42,7 @@ public class EntitySection<T extends EntityAccess> {
|
|
|
|
for(T entityAccess : collection) {
|
|
|
|
U entityAccess2 = (U)((EntityAccess)type.tryCast(entityAccess));
|
|
|
|
if (entityAccess2 != null && entityAccess.getBoundingBox().intersects(box)) {
|
|
|
|
- action.accept((T)entityAccess2);
|
|
|
|
+ action.accept(entityAccess2); // Paper - decompile fix
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|