Skip to content

Commit fb868e4

Browse files
Protocol Update 1.21.40 (#5091)
Co-authored-by: Camotoy <20743703+Camotoy@users.noreply.github.com>
1 parent 0f18462 commit fb868e4

27 files changed

+13367
-21
lines changed

bootstrap/standalone/src/main/resources/log4j2.xml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@
2020
<AppenderRef ref="TerminalConsole"/>
2121
<AppenderRef ref="Console"/>
2222
<AppenderRef ref="File"/>
23+
<filters>
24+
<MarkerFilter marker="packet_logging" onMatch="DENY" onMismatch="ACCEPT" />
25+
</filters>
2326
</Root>
2427
</Loggers>
25-
</Configuration>
28+
</Configuration>

core/src/main/java/org/geysermc/geyser/impl/camera/CameraDefinitions.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -43,13 +43,13 @@ public class CameraDefinitions {
4343

4444
static {
4545
CAMERA_PRESETS = List.of(
46-
new CameraPreset(CameraPerspective.FIRST_PERSON.id(), "", null, null, null, null, null, null, OptionalBoolean.empty(), null, OptionalBoolean.empty(), null),
47-
new CameraPreset(CameraPerspective.FREE.id(), "", null, null, null, null, null, null, OptionalBoolean.empty(), null, OptionalBoolean.empty(), null),
48-
new CameraPreset(CameraPerspective.THIRD_PERSON.id(), "", null, null, null, null, null, null, OptionalBoolean.empty(), null, OptionalBoolean.empty(), null),
49-
new CameraPreset(CameraPerspective.THIRD_PERSON_FRONT.id(), "", null, null, null, null, null, null, OptionalBoolean.empty(), null, OptionalBoolean.empty(), null),
50-
new CameraPreset("geyser:free_audio", "minecraft:free", null, null, null, null, null, CameraAudioListener.PLAYER, OptionalBoolean.empty(), null, OptionalBoolean.of(false), null),
51-
new CameraPreset("geyser:free_effects", "minecraft:free", null, null, null, null, null, CameraAudioListener.CAMERA, OptionalBoolean.empty(), null, OptionalBoolean.of(true), null),
52-
new CameraPreset("geyser:free_audio_effects", "minecraft:free", null, null, null, null, null, CameraAudioListener.PLAYER, OptionalBoolean.empty(), null, OptionalBoolean.of(true), null));
46+
new CameraPreset(CameraPerspective.FIRST_PERSON.id(), "", null, null, null, null, null, null, OptionalBoolean.empty(), null, OptionalBoolean.empty(), null, null, null, OptionalBoolean.empty(), OptionalBoolean.empty()),
47+
new CameraPreset(CameraPerspective.FREE.id(), "", null, null, null, null, null, null, OptionalBoolean.empty(), null, OptionalBoolean.empty(), null, null, null, OptionalBoolean.empty(), OptionalBoolean.empty()),
48+
new CameraPreset(CameraPerspective.THIRD_PERSON.id(), "", null, null, null, null, null, null, OptionalBoolean.empty(), null, OptionalBoolean.empty(), null, null, null, OptionalBoolean.empty(), OptionalBoolean.empty()),
49+
new CameraPreset(CameraPerspective.THIRD_PERSON_FRONT.id(), "", null, null, null, null, null, null, OptionalBoolean.empty(), null, OptionalBoolean.empty(), null, null, null, OptionalBoolean.empty(), OptionalBoolean.empty()),
50+
new CameraPreset("geyser:free_audio", "minecraft:free", null, null, null, null, null, CameraAudioListener.PLAYER, OptionalBoolean.empty(), null, OptionalBoolean.of(false), null, null, null, OptionalBoolean.empty(), OptionalBoolean.empty()),
51+
new CameraPreset("geyser:free_effects", "minecraft:free", null, null, null, null, null, CameraAudioListener.CAMERA, OptionalBoolean.empty(), null, OptionalBoolean.of(true), null, null, null, OptionalBoolean.empty(), OptionalBoolean.empty()),
52+
new CameraPreset("geyser:free_audio_effects", "minecraft:free", null, null, null, null, null, CameraAudioListener.PLAYER, OptionalBoolean.empty(), null, OptionalBoolean.of(true), null, null, null, OptionalBoolean.empty(), OptionalBoolean.empty()));
5353

5454
SimpleDefinitionRegistry.Builder<NamedDefinition> builder = SimpleDefinitionRegistry.builder();
5555
for (int i = 0; i < CAMERA_PRESETS.size(); i++) {

core/src/main/java/org/geysermc/geyser/inventory/updater/AnvilInventoryUpdater.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727

2828
import it.unimi.dsi.fastutil.objects.Object2IntMap;
2929
import it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap;
30-
import java.util.stream.IntStream;
3130
import net.kyori.adventure.text.Component;
3231
import org.cloudburstmc.nbt.NbtMap;
3332
import org.cloudburstmc.nbt.NbtMapBuilder;
@@ -41,8 +40,8 @@
4140
import org.geysermc.geyser.inventory.GeyserItemStack;
4241
import org.geysermc.geyser.inventory.Inventory;
4342
import org.geysermc.geyser.inventory.item.BedrockEnchantment;
44-
import org.geysermc.geyser.item.enchantment.Enchantment;
4543
import org.geysermc.geyser.item.Items;
44+
import org.geysermc.geyser.item.enchantment.Enchantment;
4645
import org.geysermc.geyser.session.GeyserSession;
4746
import org.geysermc.geyser.session.cache.tags.EnchantmentTag;
4847
import org.geysermc.geyser.session.cache.tags.ItemTag;
@@ -57,6 +56,7 @@
5756

5857
import java.util.Map;
5958
import java.util.Objects;
59+
import java.util.stream.IntStream;
6060

6161
public class AnvilInventoryUpdater extends InventoryUpdater {
6262
public static final AnvilInventoryUpdater INSTANCE = new AnvilInventoryUpdater();
@@ -81,6 +81,7 @@ public void updateInventory(InventoryTranslator translator, GeyserSession sessio
8181
slotPacket.setSlot(bedrockSlot);
8282
slotPacket.setItem(inventory.getItem(i).getItemData(session));
8383
slotPacket.setContainerNameData(new FullContainerName(ContainerSlotType.ANVIL_INPUT, null));
84+
slotPacket.setStorageItem(ItemData.AIR);
8485
session.sendUpstreamPacket(slotPacket);
8586
}
8687
}
@@ -102,6 +103,7 @@ public boolean updateSlot(InventoryTranslator translator, GeyserSession session,
102103
slotPacket.setSlot(translator.javaSlotToBedrock(javaSlot));
103104
slotPacket.setItem(inventory.getItem(javaSlot).getItemData(session));
104105
slotPacket.setContainerNameData(new FullContainerName(ContainerSlotType.ANVIL_INPUT, null));
106+
slotPacket.setStorageItem(ItemData.AIR);
105107
session.sendUpstreamPacket(slotPacket);
106108
} else if (lastTargetSlot != javaSlot) {
107109
// Update the previous target slot to remove repair cost changes
@@ -110,6 +112,7 @@ public boolean updateSlot(InventoryTranslator translator, GeyserSession session,
110112
slotPacket.setSlot(translator.javaSlotToBedrock(lastTargetSlot));
111113
slotPacket.setItem(inventory.getItem(lastTargetSlot).getItemData(session));
112114
slotPacket.setContainerNameData(new FullContainerName(ContainerSlotType.ANVIL_INPUT, null));
115+
slotPacket.setStorageItem(ItemData.AIR);
113116
session.sendUpstreamPacket(slotPacket);
114117
}
115118

@@ -174,6 +177,7 @@ private void updateTargetSlot(InventoryTranslator translator, GeyserSession sess
174177
slotPacket.setSlot(translator.javaSlotToBedrock(slot));
175178
slotPacket.setItem(itemData);
176179
slotPacket.setContainerNameData(new FullContainerName(ContainerSlotType.ANVIL_INPUT, null));
180+
slotPacket.setStorageItem(ItemData.AIR);
177181
session.sendUpstreamPacket(slotPacket);
178182
}
179183

core/src/main/java/org/geysermc/geyser/inventory/updater/ChestInventoryUpdater.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ public void updateInventory(InventoryTranslator translator, GeyserSession sessio
6464
contentPacket.setContainerId(inventory.getBedrockId());
6565
contentPacket.setContents(bedrockItems);
6666
contentPacket.setContainerNameData(new FullContainerName(ContainerSlotType.ANVIL_INPUT, null));
67+
contentPacket.setStorageItem(ItemData.AIR);
6768
session.sendUpstreamPacket(contentPacket);
6869
}
6970

@@ -77,6 +78,7 @@ public boolean updateSlot(InventoryTranslator translator, GeyserSession session,
7778
slotPacket.setSlot(translator.javaSlotToBedrock(javaSlot));
7879
slotPacket.setItem(inventory.getItem(javaSlot).getItemData(session));
7980
slotPacket.setContainerNameData(new FullContainerName(ContainerSlotType.ANVIL_INPUT, null));
81+
slotPacket.setStorageItem(ItemData.AIR);
8082
session.sendUpstreamPacket(slotPacket);
8183
return true;
8284
}

core/src/main/java/org/geysermc/geyser/inventory/updater/ContainerInventoryUpdater.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ public void updateInventory(InventoryTranslator translator, GeyserSession sessio
5252
contentPacket.setContainerId(inventory.getBedrockId());
5353
contentPacket.setContents(Arrays.asList(bedrockItems));
5454
contentPacket.setContainerNameData(new FullContainerName(ContainerSlotType.ANVIL_INPUT, null));
55+
contentPacket.setStorageItem(ItemData.AIR);
5556
session.sendUpstreamPacket(contentPacket);
5657
}
5758

@@ -65,6 +66,7 @@ public boolean updateSlot(InventoryTranslator translator, GeyserSession session,
6566
slotPacket.setSlot(translator.javaSlotToBedrock(javaSlot));
6667
slotPacket.setItem(inventory.getItem(javaSlot).getItemData(session));
6768
slotPacket.setContainerNameData(new FullContainerName(ContainerSlotType.ANVIL_INPUT, null));
69+
slotPacket.setStorageItem(ItemData.AIR);
6870
session.sendUpstreamPacket(slotPacket);
6971
return true;
7072
}

core/src/main/java/org/geysermc/geyser/inventory/updater/CrafterInventoryUpdater.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ public void updateInventory(InventoryTranslator translator, GeyserSession sessio
5959
contentPacket.setContainerId(inventory.getBedrockId());
6060
contentPacket.setContents(Arrays.asList(bedrockItems));
6161
contentPacket.setContainerNameData(new FullContainerName(ContainerSlotType.ANVIL_INPUT, null));
62+
contentPacket.setStorageItem(ItemData.AIR);
6263
session.sendUpstreamPacket(contentPacket);
6364

6465
// inventory and hotbar
@@ -71,6 +72,7 @@ public void updateInventory(InventoryTranslator translator, GeyserSession sessio
7172
contentPacket.setContainerId(ContainerId.INVENTORY);
7273
contentPacket.setContents(Arrays.asList(bedrockItems));
7374
contentPacket.setContainerNameData(new FullContainerName(ContainerSlotType.ANVIL_INPUT, null));
75+
contentPacket.setStorageItem(ItemData.AIR);
7476
session.sendUpstreamPacket(contentPacket);
7577

7678
// Crafter result - it doesn't come after the grid, as explained elsewhere.
@@ -93,6 +95,7 @@ public boolean updateSlot(InventoryTranslator translator, GeyserSession session,
9395
packet.setSlot(translator.javaSlotToBedrock(javaSlot));
9496
packet.setItem(inventory.getItem(javaSlot).getItemData(session));
9597
packet.setContainerNameData(new FullContainerName(ContainerSlotType.ANVIL_INPUT, null));
98+
packet.setStorageItem(ItemData.AIR);
9699
session.sendUpstreamPacket(packet);
97100
return true;
98101
}

core/src/main/java/org/geysermc/geyser/inventory/updater/HorseInventoryUpdater.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ public void updateInventory(InventoryTranslator translator, GeyserSession sessio
5252
contentPacket.setContainerId(inventory.getBedrockId());
5353
contentPacket.setContents(Arrays.asList(bedrockItems));
5454
contentPacket.setContainerNameData(new FullContainerName(ContainerSlotType.ANVIL_INPUT, null));
55+
contentPacket.setStorageItem(ItemData.AIR);
5556
session.sendUpstreamPacket(contentPacket);
5657
}
5758

@@ -65,6 +66,7 @@ public boolean updateSlot(InventoryTranslator translator, GeyserSession session,
6566
slotPacket.setSlot(translator.javaSlotToBedrock(javaSlot));
6667
slotPacket.setItem(inventory.getItem(javaSlot).getItemData(session));
6768
slotPacket.setContainerNameData(new FullContainerName(ContainerSlotType.ANVIL_INPUT, null));
69+
slotPacket.setStorageItem(ItemData.AIR);
6870
session.sendUpstreamPacket(slotPacket);
6971
return true;
7072
}

core/src/main/java/org/geysermc/geyser/inventory/updater/InventoryUpdater.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ public void updateInventory(InventoryTranslator translator, GeyserSession sessio
4848
contentPacket.setContainerId(ContainerId.INVENTORY);
4949
contentPacket.setContents(Arrays.asList(bedrockItems));
5050
contentPacket.setContainerNameData(new FullContainerName(ContainerSlotType.ANVIL_INPUT, null));
51+
contentPacket.setStorageItem(ItemData.AIR);
5152
session.sendUpstreamPacket(contentPacket);
5253
}
5354

@@ -58,6 +59,7 @@ public boolean updateSlot(InventoryTranslator translator, GeyserSession session,
5859
slotPacket.setSlot(translator.javaSlotToBedrock(javaSlot));
5960
slotPacket.setItem(inventory.getItem(javaSlot).getItemData(session));
6061
slotPacket.setContainerNameData(new FullContainerName(ContainerSlotType.ANVIL_INPUT, null));
62+
slotPacket.setStorageItem(ItemData.AIR);
6163
session.sendUpstreamPacket(slotPacket);
6264
return true;
6365
}

core/src/main/java/org/geysermc/geyser/inventory/updater/UIInventoryUpdater.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import org.cloudburstmc.protocol.bedrock.data.inventory.ContainerId;
2929
import org.cloudburstmc.protocol.bedrock.data.inventory.ContainerSlotType;
3030
import org.cloudburstmc.protocol.bedrock.data.inventory.FullContainerName;
31+
import org.cloudburstmc.protocol.bedrock.data.inventory.ItemData;
3132
import org.cloudburstmc.protocol.bedrock.packet.InventorySlotPacket;
3233
import org.geysermc.geyser.inventory.Inventory;
3334
import org.geysermc.geyser.session.GeyserSession;
@@ -49,6 +50,7 @@ public void updateInventory(InventoryTranslator translator, GeyserSession sessio
4950
slotPacket.setSlot(bedrockSlot);
5051
slotPacket.setItem(inventory.getItem(i).getItemData(session));
5152
slotPacket.setContainerNameData(new FullContainerName(ContainerSlotType.ANVIL_INPUT, null));
53+
slotPacket.setStorageItem(ItemData.AIR);
5254
session.sendUpstreamPacket(slotPacket);
5355
}
5456
}
@@ -63,6 +65,7 @@ public boolean updateSlot(InventoryTranslator translator, GeyserSession session,
6365
slotPacket.setSlot(translator.javaSlotToBedrock(javaSlot));
6466
slotPacket.setItem(inventory.getItem(javaSlot).getItemData(session));
6567
slotPacket.setContainerNameData(new FullContainerName(ContainerSlotType.ANVIL_INPUT, null));
68+
slotPacket.setStorageItem(ItemData.AIR);
6669
session.sendUpstreamPacket(slotPacket);
6770
return true;
6871
}

core/src/main/java/org/geysermc/geyser/level/block/type/BlockState.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ public <T extends Comparable<T>> T getValueNullable(Property<T> property) {
6363
return null;
6464
}
6565
//noinspection unchecked
66-
return (T) get(property);
66+
return (T) value;
6767
}
6868

6969
public <T extends Comparable<T>> T getValue(Property<T> property, T def) {

0 commit comments

Comments
 (0)