mirror of
https://github.com/PaperMC/Paper.git
synced 2025-05-19 05:30:23 -07:00
Remove simplify remote item matching option for now
This commit is contained in:
parent
c2bb144fd5
commit
e2ca477396
@ -27496,7 +27496,7 @@ index d1f235ebd835f58cf0c703c3a64d29825d98e183..080091efc19bc768bb9a660f366c42e8
|
|||||||
}
|
}
|
||||||
|
|
||||||
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
|
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
|
||||||
index 0bb610f12e3ddda649ecb5ad62ffdc7bfd243223..19428343b37c9b739b3d28984d52e257f85f253f 100644
|
index 6e2dcbf45fa424e910a01dd44c85af72d3a35a36..5f08126b011d945af0c330f5477351e1e31866bb 100644
|
||||||
--- a/net/minecraft/server/level/ServerPlayer.java
|
--- a/net/minecraft/server/level/ServerPlayer.java
|
||||||
+++ b/net/minecraft/server/level/ServerPlayer.java
|
+++ b/net/minecraft/server/level/ServerPlayer.java
|
||||||
@@ -178,7 +178,7 @@ import net.minecraft.world.scores.Team;
|
@@ -178,7 +178,7 @@ import net.minecraft.world.scores.Team;
|
||||||
@ -27508,7 +27508,7 @@ index 0bb610f12e3ddda649ecb5ad62ffdc7bfd243223..19428343b37c9b739b3d28984d52e257
|
|||||||
private static final Logger LOGGER = LogUtils.getLogger();
|
private static final Logger LOGGER = LogUtils.getLogger();
|
||||||
private static final int NEUTRAL_MOB_DEATH_NOTIFICATION_RADII_XZ = 32;
|
private static final int NEUTRAL_MOB_DEATH_NOTIFICATION_RADII_XZ = 32;
|
||||||
private static final int NEUTRAL_MOB_DEATH_NOTIFICATION_RADII_Y = 10;
|
private static final int NEUTRAL_MOB_DEATH_NOTIFICATION_RADII_Y = 10;
|
||||||
@@ -395,6 +395,36 @@ public class ServerPlayer extends Player {
|
@@ -388,6 +388,36 @@ public class ServerPlayer extends Player {
|
||||||
public @Nullable String clientBrandName = null; // Paper - Brand support
|
public @Nullable String clientBrandName = null; // Paper - Brand support
|
||||||
public org.bukkit.event.player.PlayerQuitEvent.QuitReason quitReason = null; // Paper - Add API for quit reason; there are a lot of changes to do if we change all methods leading to the event
|
public org.bukkit.event.player.PlayerQuitEvent.QuitReason quitReason = null; // Paper - Add API for quit reason; there are a lot of changes to do if we change all methods leading to the event
|
||||||
|
|
||||||
|
@ -78,10 +78,10 @@ index 87d4291a3944f706a694536da6de0f28c548ab8d..5576bf1d1d70ab7a010653d3207909b5
|
|||||||
profiler.popPush("spawnAndTick");
|
profiler.popPush("spawnAndTick");
|
||||||
boolean _boolean = this.level.getGameRules().getBoolean(GameRules.RULE_DOMOBSPAWNING) && !this.level.players().isEmpty(); // CraftBukkit
|
boolean _boolean = this.level.getGameRules().getBoolean(GameRules.RULE_DOMOBSPAWNING) && !this.level.players().isEmpty(); // CraftBukkit
|
||||||
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
|
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
|
||||||
index 02fb30a3adf92de0795aee213caf94a228b01ca0..67f6e40216e0be063a3cfb61427f095f7c74d785 100644
|
index 37134adbe1e669be74543b3d5407fe1fa610ece9..ca542eb32cf14f15104235fa924cc3579657dc96 100644
|
||||||
--- a/net/minecraft/server/level/ServerPlayer.java
|
--- a/net/minecraft/server/level/ServerPlayer.java
|
||||||
+++ b/net/minecraft/server/level/ServerPlayer.java
|
+++ b/net/minecraft/server/level/ServerPlayer.java
|
||||||
@@ -375,6 +375,10 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
@@ -368,6 +368,10 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||||
public boolean queueHealthUpdatePacket;
|
public boolean queueHealthUpdatePacket;
|
||||||
public net.minecraft.network.protocol.game.ClientboundSetHealthPacket queuedHealthUpdatePacket;
|
public net.minecraft.network.protocol.game.ClientboundSetHealthPacket queuedHealthUpdatePacket;
|
||||||
// Paper end - cancellable death event
|
// Paper end - cancellable death event
|
||||||
|
@ -60,10 +60,10 @@ index 5576bf1d1d70ab7a010653d3207909b5de867e70..6540b2d6a1062d883811ce240c49d30d
|
|||||||
spawnState = NaturalSpawner.createState(naturalSpawnChunkCount, this.level.getAllEntities(), this::getFullChunk, null, true);
|
spawnState = NaturalSpawner.createState(naturalSpawnChunkCount, this.level.getAllEntities(), this::getFullChunk, null, true);
|
||||||
} else {
|
} else {
|
||||||
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
|
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
|
||||||
index 67f6e40216e0be063a3cfb61427f095f7c74d785..3de65c4025be91d938a350c884975cb6edc234d3 100644
|
index ca542eb32cf14f15104235fa924cc3579657dc96..60966b42131c4802e49e838451ff688665e7301e 100644
|
||||||
--- a/net/minecraft/server/level/ServerPlayer.java
|
--- a/net/minecraft/server/level/ServerPlayer.java
|
||||||
+++ b/net/minecraft/server/level/ServerPlayer.java
|
+++ b/net/minecraft/server/level/ServerPlayer.java
|
||||||
@@ -379,6 +379,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
@@ -372,6 +372,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||||
public static final int MOBCATEGORY_TOTAL_ENUMS = net.minecraft.world.entity.MobCategory.values().length;
|
public static final int MOBCATEGORY_TOTAL_ENUMS = net.minecraft.world.entity.MobCategory.values().length;
|
||||||
public final int[] mobCounts = new int[MOBCATEGORY_TOTAL_ENUMS];
|
public final int[] mobCounts = new int[MOBCATEGORY_TOTAL_ENUMS];
|
||||||
// Paper end - Optional per player mob spawns
|
// Paper end - Optional per player mob spawns
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
@Nullable
|
@Nullable
|
||||||
private Vec3 startingToFallPosition;
|
private Vec3 startingToFallPosition;
|
||||||
@Nullable
|
@Nullable
|
||||||
@@ -258,6 +_,20 @@
|
@@ -258,6 +_,13 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -20,13 +20,6 @@
|
|||||||
+ ServerPlayer.this.connection.send(new ClientboundContainerSetSlotPacket(ServerPlayer.this.inventoryMenu.containerId, ServerPlayer.this.inventoryMenu.incrementStateId(), net.minecraft.world.inventory.InventoryMenu.SHIELD_SLOT, ServerPlayer.this.inventoryMenu.getSlot(net.minecraft.world.inventory.InventoryMenu.SHIELD_SLOT).getItem().copy()));
|
+ ServerPlayer.this.connection.send(new ClientboundContainerSetSlotPacket(ServerPlayer.this.inventoryMenu.containerId, ServerPlayer.this.inventoryMenu.incrementStateId(), net.minecraft.world.inventory.InventoryMenu.SHIELD_SLOT, ServerPlayer.this.inventoryMenu.getSlot(net.minecraft.world.inventory.InventoryMenu.SHIELD_SLOT).getItem().copy()));
|
||||||
+ }
|
+ }
|
||||||
+ // Paper end - Sync offhand slot in menus
|
+ // Paper end - Sync offhand slot in menus
|
||||||
+
|
|
||||||
+ // Paper start - add flag to simplify remote matching logic
|
|
||||||
+ @Override
|
|
||||||
+ public ServerPlayer player() {
|
|
||||||
+ return ServerPlayer.this;
|
|
||||||
+ }
|
|
||||||
+ // Paper end - add flag to simplify remote matching logic
|
|
||||||
+
|
+
|
||||||
@Override
|
@Override
|
||||||
public void sendSlotChange(AbstractContainerMenu container, int slot, ItemStack itemStack) {
|
public void sendSlotChange(AbstractContainerMenu container, int slot, ItemStack itemStack) {
|
||||||
|
@ -72,41 +72,6 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -243,7 +_,7 @@
|
|
||||||
private void synchronizeSlotToRemote(int slotIndex, ItemStack stack, Supplier<ItemStack> supplier) {
|
|
||||||
if (!this.suppressRemoteUpdates) {
|
|
||||||
ItemStack itemStack = this.remoteSlots.get(slotIndex);
|
|
||||||
- if (!ItemStack.matches(itemStack, stack)) {
|
|
||||||
+ if (!this.matchesRemote(itemStack, stack)) { // Paper - add flag to simplify remote matching logic
|
|
||||||
ItemStack itemStack1 = supplier.get();
|
|
||||||
this.remoteSlots.set(slotIndex, itemStack1);
|
|
||||||
if (this.synchronizer != null) {
|
|
||||||
@@ -267,7 +_,7 @@
|
|
||||||
|
|
||||||
private void synchronizeCarriedToRemote() {
|
|
||||||
if (!this.suppressRemoteUpdates) {
|
|
||||||
- if (!ItemStack.matches(this.getCarried(), this.remoteCarried)) {
|
|
||||||
+ if (!this.matchesRemote(this.getCarried(), this.remoteCarried)) { // Paper - add flag to simplify remote matching logic
|
|
||||||
this.remoteCarried = this.getCarried().copy();
|
|
||||||
if (this.synchronizer != null) {
|
|
||||||
this.synchronizer.sendCarriedChange(this, this.remoteCarried);
|
|
||||||
@@ -276,6 +_,16 @@
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
+ // Paper start - add flag to simplify remote matching logic
|
|
||||||
+ private boolean matchesRemote(final ItemStack stack, final ItemStack other) {
|
|
||||||
+ if (this.synchronizer != null && this.synchronizer.player() != null && this.synchronizer.player().getBukkitEntity().simplifyContainerDesyncCheck()) {
|
|
||||||
+ // Only check the item type and count
|
|
||||||
+ return stack == other || (stack.getCount() == other.getCount() && ItemStack.isSameItem(stack, other));
|
|
||||||
+ }
|
|
||||||
+ return ItemStack.matches(stack, other);
|
|
||||||
+ }
|
|
||||||
+ // Paper end - add flag to simplify remote matching logic
|
|
||||||
+
|
|
||||||
public void setRemoteSlot(int slot, ItemStack stack) {
|
|
||||||
this.remoteSlots.set(slot, stack.copy());
|
|
||||||
}
|
|
||||||
@@ -343,6 +_,7 @@
|
@@ -343,6 +_,7 @@
|
||||||
this.resetQuickCraft();
|
this.resetQuickCraft();
|
||||||
}
|
}
|
||||||
|
@ -1,15 +1,9 @@
|
|||||||
--- a/net/minecraft/world/inventory/ContainerSynchronizer.java
|
--- a/net/minecraft/world/inventory/ContainerSynchronizer.java
|
||||||
+++ b/net/minecraft/world/inventory/ContainerSynchronizer.java
|
+++ b/net/minecraft/world/inventory/ContainerSynchronizer.java
|
||||||
@@ -11,4 +_,12 @@
|
@@ -11,4 +_,6 @@
|
||||||
void sendCarriedChange(AbstractContainerMenu containerMenu, ItemStack stack);
|
void sendCarriedChange(AbstractContainerMenu containerMenu, ItemStack stack);
|
||||||
|
|
||||||
void sendDataChange(AbstractContainerMenu container, int id, int value);
|
void sendDataChange(AbstractContainerMenu container, int id, int value);
|
||||||
+
|
+
|
||||||
+ default void sendOffHandSlotChange() {} // Paper - Sync offhand slot in menus
|
+ default void sendOffHandSlotChange() {} // Paper - Sync offhand slot in menus
|
||||||
+
|
|
||||||
+ // Paper start - add flag to simplify remote matching logic
|
|
||||||
+ default net.minecraft.server.level.@org.jspecify.annotations.Nullable ServerPlayer player() {
|
|
||||||
+ return null;
|
|
||||||
+ }
|
|
||||||
+ // Paper end - add flag to simplify remote matching logic
|
|
||||||
}
|
}
|
||||||
|
@ -185,8 +185,6 @@ public class GlobalConfiguration extends ConfigurationPart {
|
|||||||
public CompressionFormat compressionFormat = CompressionFormat.ZLIB;
|
public CompressionFormat compressionFormat = CompressionFormat.ZLIB;
|
||||||
@Comment("This setting controls if equipment should be updated when handling certain player actions.")
|
@Comment("This setting controls if equipment should be updated when handling certain player actions.")
|
||||||
public boolean updateEquipmentOnPlayerActions = true;
|
public boolean updateEquipmentOnPlayerActions = true;
|
||||||
@Comment("Only checks an item's amount and type instead of its full data during inventory desync checks.")
|
|
||||||
public boolean simplifyRemoteItemMatching = false;
|
|
||||||
|
|
||||||
public enum CompressionFormat {
|
public enum CompressionFormat {
|
||||||
GZIP,
|
GZIP,
|
||||||
|
@ -221,7 +221,6 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
|||||||
private BorderChangeListener clientWorldBorderListener = this.createWorldBorderListener();
|
private BorderChangeListener clientWorldBorderListener = this.createWorldBorderListener();
|
||||||
public org.bukkit.event.player.PlayerResourcePackStatusEvent.Status resourcePackStatus; // Paper - more resource pack API
|
public org.bukkit.event.player.PlayerResourcePackStatusEvent.Status resourcePackStatus; // Paper - more resource pack API
|
||||||
private static final boolean DISABLE_CHANNEL_LIMIT = System.getProperty("paper.disableChannelLimit") != null; // Paper - add a flag to disable the channel limit
|
private static final boolean DISABLE_CHANNEL_LIMIT = System.getProperty("paper.disableChannelLimit") != null; // Paper - add a flag to disable the channel limit
|
||||||
private boolean simplifyContainerDesyncCheck = GlobalConfiguration.get().unsupportedSettings.simplifyRemoteItemMatching;
|
|
||||||
private long lastSaveTime; // Paper - getLastPlayed replacement API
|
private long lastSaveTime; // Paper - getLastPlayed replacement API
|
||||||
|
|
||||||
public CraftPlayer(CraftServer server, ServerPlayer entity) {
|
public CraftPlayer(CraftServer server, ServerPlayer entity) {
|
||||||
@ -3603,20 +3602,4 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
|||||||
public void setDeathScreenScore(final int score) {
|
public void setDeathScreenScore(final int score) {
|
||||||
getHandle().setScore(score);
|
getHandle().setScore(score);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns whether container desync checks should skip the full item comparison of remote carried and changed slots
|
|
||||||
* and should instead only check their type and amount.
|
|
||||||
* <p>
|
|
||||||
* This is useful if the client is not able to produce the same item stack (or as of 1.21.5, its data hashes) as the server.
|
|
||||||
*
|
|
||||||
* @return whether to simplify container desync checks
|
|
||||||
*/
|
|
||||||
public boolean simplifyContainerDesyncCheck() {
|
|
||||||
return simplifyContainerDesyncCheck;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setSimplifyContainerDesyncCheck(final boolean simplifyContainerDesyncCheck) {
|
|
||||||
this.simplifyContainerDesyncCheck = simplifyContainerDesyncCheck;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user