mirror of
https://github.com/Minestom/Minestom.git
synced 2025-02-13 19:01:55 +01:00
fix: optional world pos in lodestone tracker item component (fixes #2270)
This commit is contained in:
parent
60a83fd39b
commit
e5372fd779
@ -40,6 +40,7 @@ import net.minestom.server.item.ItemStack;
|
||||
import net.minestom.server.item.Material;
|
||||
import net.minestom.server.item.component.BlockPredicates;
|
||||
import net.minestom.server.item.component.EnchantmentList;
|
||||
import net.minestom.server.item.component.LodestoneTracker;
|
||||
import net.minestom.server.item.component.PotionContents;
|
||||
import net.minestom.server.item.enchant.Enchantment;
|
||||
import net.minestom.server.monitoring.BenchmarkManager;
|
||||
@ -156,6 +157,10 @@ public class PlayerInit {
|
||||
.build();
|
||||
player.getInventory().addItemStack(bundle);
|
||||
|
||||
player.getInventory().addItemStack(ItemStack.builder(Material.COMPASS)
|
||||
.set(ItemComponent.LODESTONE_TRACKER, new LodestoneTracker(player.getInstance().getDimensionName(), new Vec(10, 10, 10), true))
|
||||
.build());
|
||||
|
||||
player.getInventory().addItemStack(ItemStack.builder(Material.STONE_SWORD)
|
||||
.set(ItemComponent.ENCHANTMENTS, new EnchantmentList(Map.of(
|
||||
Enchantment.SHARPNESS, 10
|
||||
|
@ -6,20 +6,21 @@ import net.minestom.server.network.NetworkBuffer;
|
||||
import net.minestom.server.network.packet.server.play.data.WorldPos;
|
||||
import net.minestom.server.utils.nbt.BinaryTagSerializer;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
public record LodestoneTracker(@NotNull WorldPos target, boolean tracked) {
|
||||
public record LodestoneTracker(@Nullable WorldPos target, boolean tracked) {
|
||||
|
||||
public static final NetworkBuffer.Type<LodestoneTracker> NETWORK_TYPE = new NetworkBuffer.Type<>() {
|
||||
@Override
|
||||
public void write(@NotNull NetworkBuffer buffer, @NotNull LodestoneTracker value) {
|
||||
buffer.write(WorldPos.NETWORK_TYPE, value.target);
|
||||
buffer.writeOptional(WorldPos.NETWORK_TYPE, value.target);
|
||||
buffer.write(NetworkBuffer.BOOLEAN, value.tracked);
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull LodestoneTracker read(@NotNull NetworkBuffer buffer) {
|
||||
return new LodestoneTracker(
|
||||
buffer.read(WorldPos.NETWORK_TYPE),
|
||||
buffer.readOptional(WorldPos.NETWORK_TYPE),
|
||||
buffer.read(NetworkBuffer.BOOLEAN)
|
||||
);
|
||||
}
|
||||
@ -39,7 +40,7 @@ public record LodestoneTracker(@NotNull WorldPos target, boolean tracked) {
|
||||
this(new WorldPos(dimension, blockPosition), tracked);
|
||||
}
|
||||
|
||||
public @NotNull LodestoneTracker withTarget(@NotNull WorldPos target) {
|
||||
public @NotNull LodestoneTracker withTarget(@Nullable WorldPos target) {
|
||||
return new LodestoneTracker(target, tracked);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user