mirror of
https://github.com/PaperMC/Paper.git
synced 2025-01-16 06:30:46 +01:00
Compilation fixes
This commit is contained in:
parent
5e0c01db49
commit
b4c75aa92c
13 changed files with 40 additions and 39 deletions
|
@ -1153,7 +1153,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||||
+ * @return the model key or null
|
+ * @return the model key or null
|
||||||
+ */
|
+ */
|
||||||
+ @Contract(pure = true)
|
+ @Contract(pure = true)
|
||||||
+ @Nullable Key model();
|
+ @Nullable Key assetId();
|
||||||
+
|
+
|
||||||
+ /**
|
+ /**
|
||||||
+ * Gets the camera overlay key if present.
|
+ * Gets the camera overlay key if present.
|
||||||
|
@ -1219,7 +1219,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||||
+ * @return the builder for chaining
|
+ * @return the builder for chaining
|
||||||
+ */
|
+ */
|
||||||
+ @Contract(value = "_ -> this", mutates = "this")
|
+ @Contract(value = "_ -> this", mutates = "this")
|
||||||
+ Builder model(@Nullable Key model);
|
+ Builder assetId(@Nullable Key model);
|
||||||
+
|
+
|
||||||
+ /**
|
+ /**
|
||||||
+ * Sets the camera overlay key for this item.
|
+ * Sets the camera overlay key for this item.
|
||||||
|
|
|
@ -57,8 +57,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||||
+ FeatureFlag.VANILLA, FeatureFlags.VANILLA,
|
+ FeatureFlag.VANILLA, FeatureFlags.VANILLA,
|
||||||
+ FeatureFlag.TRADE_REBALANCE, FeatureFlags.TRADE_REBALANCE,
|
+ FeatureFlag.TRADE_REBALANCE, FeatureFlags.TRADE_REBALANCE,
|
||||||
+ FeatureFlag.MINECART_IMPROVEMENTS, FeatureFlags.MINECART_IMPROVEMENTS,
|
+ FeatureFlag.MINECART_IMPROVEMENTS, FeatureFlags.MINECART_IMPROVEMENTS,
|
||||||
+ FeatureFlag.REDSTONE_EXPERIMENTS, FeatureFlags.REDSTONE_EXPERIMENTS,
|
+ FeatureFlag.REDSTONE_EXPERIMENTS, FeatureFlags.REDSTONE_EXPERIMENTS
|
||||||
+ FeatureFlag.WINTER_DROP, FeatureFlags.WINTER_DROP
|
|
||||||
+ );
|
+ );
|
||||||
+
|
+
|
||||||
+ @Override
|
+ @Override
|
||||||
|
|
|
@ -78,7 +78,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||||
}
|
}
|
||||||
+ // Paper start - Add Listing API for Player
|
+ // Paper start - Add Listing API for Player
|
||||||
+ Entry(UUID profileId, boolean listed) {
|
+ Entry(UUID profileId, boolean listed) {
|
||||||
+ this(profileId, null, listed, 0, GameType.DEFAULT_MODE, null, 0, null);
|
+ this(profileId, null, listed, 0, GameType.DEFAULT_MODE, null, true, 0, null);
|
||||||
+ }
|
+ }
|
||||||
+ // Paper end - Add Listing API for Player
|
+ // Paper end - Add Listing API for Player
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,7 +17,10 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||||
+ public org.bukkit.Color getSpawnEggLayerColor(final EntityType entityType, final int layer) {
|
+ public org.bukkit.Color getSpawnEggLayerColor(final EntityType entityType, final int layer) {
|
||||||
+ final net.minecraft.world.entity.EntityType<?> nmsType = org.bukkit.craftbukkit.entity.CraftEntityType.bukkitToMinecraft(entityType);
|
+ final net.minecraft.world.entity.EntityType<?> nmsType = org.bukkit.craftbukkit.entity.CraftEntityType.bukkitToMinecraft(entityType);
|
||||||
+ final net.minecraft.world.item.SpawnEggItem eggItem = net.minecraft.world.item.SpawnEggItem.byId(nmsType);
|
+ final net.minecraft.world.item.SpawnEggItem eggItem = net.minecraft.world.item.SpawnEggItem.byId(nmsType);
|
||||||
+ return eggItem == null ? null : org.bukkit.Color.fromRGB(eggItem.getColor(layer));
|
+ if (eggItem != null) {
|
||||||
|
+ throw new UnsupportedOperationException("Not yet implemented");
|
||||||
|
+ }
|
||||||
|
+ return eggItem == null ? null : org.bukkit.Color.fromRGB(1); // TODO
|
||||||
+ }
|
+ }
|
||||||
+ // Paper end - spawn egg color visibility
|
+ // Paper end - spawn egg color visibility
|
||||||
+
|
+
|
||||||
|
|
|
@ -31,7 +31,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||||
+ !worldserver.areChunksLoadedForMove(this.player.getBoundingBox().expandTowards(new Vec3(toX, toY, toZ).subtract(this.player.position()))) ||
|
+ !worldserver.areChunksLoadedForMove(this.player.getBoundingBox().expandTowards(new Vec3(toX, toY, toZ).subtract(this.player.position()))) ||
|
||||||
+ !worldserver.areChunksLoadedForMove(entity.getBoundingBox().expandTowards(new Vec3(toX, toY, toZ).subtract(entity.position())))
|
+ !worldserver.areChunksLoadedForMove(entity.getBoundingBox().expandTowards(new Vec3(toX, toY, toZ).subtract(entity.position())))
|
||||||
+ )) {
|
+ )) {
|
||||||
+ this.connection.send(new ClientboundMoveVehiclePacket(entity));
|
+ this.connection.send(ClientboundMoveVehiclePacket.fromEntity(entity));
|
||||||
+ return;
|
+ return;
|
||||||
+ }
|
+ }
|
||||||
+ // Paper end - Prevent moving into unloaded chunks
|
+ // Paper end - Prevent moving into unloaded chunks
|
||||||
|
|
|
@ -578,7 +578,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||||
+
|
+
|
||||||
+ @Override
|
+ @Override
|
||||||
+ public CustomModelData customModelData(final int id) {
|
+ public CustomModelData customModelData(final int id) {
|
||||||
+ return new PaperCustomModelData(new net.minecraft.world.item.component.CustomModelData(id));
|
+ throw new UnsupportedOperationException("Not implemented yet");
|
||||||
|
+ //return new PaperCustomModelData(new net.minecraft.world.item.component.CustomModelData(id));
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ @Override
|
+ @Override
|
||||||
|
@ -1213,10 +1214,12 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ @Override
|
+ @Override
|
||||||
+ public @Nullable Key model() {
|
+ public @Nullable Key assetId() {
|
||||||
+ return this.impl.model()
|
+ // TODO
|
||||||
+ .map(PaperAdventure::asAdventure)
|
+ throw new UnsupportedOperationException("Not yet implemented");
|
||||||
+ .orElse(null);
|
+ //return this.impl.assetId()
|
||||||
|
+ // .map(PaperAdventure::asAdventure)
|
||||||
|
+ // .orElse(null);
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ @Override
|
+ @Override
|
||||||
|
@ -1252,7 +1255,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||||
+ public Builder toBuilder() {
|
+ public Builder toBuilder() {
|
||||||
+ return new BuilderImpl(this.slot())
|
+ return new BuilderImpl(this.slot())
|
||||||
+ .equipSound(this.equipSound())
|
+ .equipSound(this.equipSound())
|
||||||
+ .model(this.model())
|
+ .assetId(this.assetId())
|
||||||
+ .cameraOverlay(this.cameraOverlay())
|
+ .cameraOverlay(this.cameraOverlay())
|
||||||
+ .allowedEntities(this.allowedEntities())
|
+ .allowedEntities(this.allowedEntities())
|
||||||
+ .dispensable(this.dispensable())
|
+ .dispensable(this.dispensable())
|
||||||
|
@ -1265,7 +1268,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||||
+
|
+
|
||||||
+ private final net.minecraft.world.entity.EquipmentSlot equipmentSlot;
|
+ private final net.minecraft.world.entity.EquipmentSlot equipmentSlot;
|
||||||
+ private Holder<SoundEvent> equipSound = SoundEvents.ARMOR_EQUIP_GENERIC;
|
+ private Holder<SoundEvent> equipSound = SoundEvents.ARMOR_EQUIP_GENERIC;
|
||||||
+ private Optional<ResourceLocation> model = Optional.empty();
|
+ private Optional<ResourceLocation> assetId = Optional.empty();
|
||||||
+ private Optional<ResourceLocation> cameraOverlay = Optional.empty();
|
+ private Optional<ResourceLocation> cameraOverlay = Optional.empty();
|
||||||
+ private Optional<HolderSet<net.minecraft.world.entity.EntityType<?>>> allowedEntities = Optional.empty();
|
+ private Optional<HolderSet<net.minecraft.world.entity.EntityType<?>>> allowedEntities = Optional.empty();
|
||||||
+ private boolean dispensable = true;
|
+ private boolean dispensable = true;
|
||||||
|
@ -1283,8 +1286,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ @Override
|
+ @Override
|
||||||
+ public Builder model(final @Nullable Key model) {
|
+ public Builder assetId(final @Nullable Key model) {
|
||||||
+ this.model = Optional.ofNullable(model)
|
+ this.assetId = Optional.ofNullable(model)
|
||||||
+ .map(PaperAdventure::asVanilla);
|
+ .map(PaperAdventure::asVanilla);
|
||||||
+
|
+
|
||||||
+ return this;
|
+ return this;
|
||||||
|
@ -1329,7 +1332,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||||
+ new net.minecraft.world.item.equipment.Equippable(
|
+ new net.minecraft.world.item.equipment.Equippable(
|
||||||
+ this.equipmentSlot,
|
+ this.equipmentSlot,
|
||||||
+ this.equipSound,
|
+ this.equipSound,
|
||||||
+ this.model,
|
+ null, // TODO
|
||||||
+ this.cameraOverlay,
|
+ this.cameraOverlay,
|
||||||
+ this.allowedEntities,
|
+ this.allowedEntities,
|
||||||
+ this.dispensable,
|
+ this.dispensable,
|
||||||
|
|
|
@ -319,6 +319,19 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||||
super.setRemoved();
|
super.setRemoved();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
diff --git a/src/main/java/net/minecraft/world/level/block/entity/trialspawner/TrialSpawner.java b/src/main/java/net/minecraft/world/level/block/entity/trialspawner/TrialSpawner.java
|
||||||
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||||
|
--- a/src/main/java/net/minecraft/world/level/block/entity/trialspawner/TrialSpawner.java
|
||||||
|
+++ b/src/main/java/net/minecraft/world/level/block/entity/trialspawner/TrialSpawner.java
|
||||||
|
@@ -0,0 +0,0 @@ public final class TrialSpawner {
|
||||||
|
}
|
||||||
|
|
||||||
|
public void overrideEntityToSpawn(EntityType<?> entityType, Level world) {
|
||||||
|
- this.data.reset();
|
||||||
|
+ this.data.reset(this); // Paper
|
||||||
|
this.normalConfig = Holder.direct(((TrialSpawnerConfig) this.normalConfig.value()).withSpawning(entityType));
|
||||||
|
this.ominousConfig = Holder.direct(((TrialSpawnerConfig) this.ominousConfig.value()).withSpawning(entityType));
|
||||||
|
this.setState(world, TrialSpawnerState.INACTIVE);
|
||||||
diff --git a/src/main/java/net/minecraft/world/level/block/entity/trialspawner/TrialSpawnerData.java b/src/main/java/net/minecraft/world/level/block/entity/trialspawner/TrialSpawnerData.java
|
diff --git a/src/main/java/net/minecraft/world/level/block/entity/trialspawner/TrialSpawnerData.java b/src/main/java/net/minecraft/world/level/block/entity/trialspawner/TrialSpawnerData.java
|
||||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||||
--- a/src/main/java/net/minecraft/world/level/block/entity/trialspawner/TrialSpawnerData.java
|
--- a/src/main/java/net/minecraft/world/level/block/entity/trialspawner/TrialSpawnerData.java
|
||||||
|
|
|
@ -53,7 +53,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||||
} else {
|
} else {
|
||||||
+ // Paper start - Fix item duplication and teleport issues
|
+ // Paper start - Fix item duplication and teleport issues
|
||||||
+ if (this instanceof Leashable leashable) {
|
+ if (this instanceof Leashable leashable) {
|
||||||
+ leashable.dropLeash(true, true); // Paper drop lead
|
+ leashable.dropLeash(); // Paper drop lead
|
||||||
+ }
|
+ }
|
||||||
+ // Paper end - Fix item duplication and teleport issues
|
+ // Paper end - Fix item duplication and teleport issues
|
||||||
entity.restoreFrom(this);
|
entity.restoreFrom(this);
|
||||||
|
@ -93,8 +93,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||||
+ // CraftBukkit start - Call death event // Paper start - call advancement triggers with correct entity equipment
|
+ // CraftBukkit start - Call death event // Paper start - call advancement triggers with correct entity equipment
|
||||||
+ org.bukkit.event.entity.EntityDeathEvent deathEvent = CraftEventFactory.callEntityDeathEvent(this, damageSource, this.drops, () -> {
|
+ org.bukkit.event.entity.EntityDeathEvent deathEvent = CraftEventFactory.callEntityDeathEvent(this, damageSource, this.drops, () -> {
|
||||||
+ final LivingEntity entityliving = this.getKillCredit();
|
+ final LivingEntity entityliving = this.getKillCredit();
|
||||||
+ if (this.deathScore >= 0 && entityliving != null) {
|
+ if (entityliving != null) {
|
||||||
+ entityliving.awardKillScore(this, this.deathScore, damageSource);
|
+ entityliving.awardKillScore(this, damageSource);
|
||||||
+ }
|
+ }
|
||||||
+ }); // Paper end
|
+ }); // Paper end
|
||||||
this.postDeathDropItems(deathEvent); // Paper
|
this.postDeathDropItems(deathEvent); // Paper
|
||||||
|
|
|
@ -272,7 +272,6 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||||
+ bukkitMap.put(net.minecraft.world.entity.animal.armadillo.Armadillo.class, org.bukkit.entity.Armadillo.class);
|
+ bukkitMap.put(net.minecraft.world.entity.animal.armadillo.Armadillo.class, org.bukkit.entity.Armadillo.class);
|
||||||
+ bukkitMap.put(net.minecraft.world.entity.monster.Bogged.class, org.bukkit.entity.Bogged.class);
|
+ bukkitMap.put(net.minecraft.world.entity.monster.Bogged.class, org.bukkit.entity.Bogged.class);
|
||||||
+ bukkitMap.put(net.minecraft.world.entity.monster.creaking.Creaking.class, org.bukkit.entity.Creaking.class);
|
+ bukkitMap.put(net.minecraft.world.entity.monster.creaking.Creaking.class, org.bukkit.entity.Creaking.class);
|
||||||
+ bukkitMap.put(net.minecraft.world.entity.monster.creaking.CreakingTransient.class, org.bukkit.entity.CreakingTransient.class);
|
|
||||||
+ bukkitMap.put(net.minecraft.world.entity.animal.AgeableWaterCreature.class, org.bukkit.entity.Squid.class); // close enough
|
+ bukkitMap.put(net.minecraft.world.entity.animal.AgeableWaterCreature.class, org.bukkit.entity.Squid.class); // close enough
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
|
|
|
@ -546,7 +546,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||||
launch = new net.minecraft.world.entity.projectile.Arrow(world, this.getHandle(), new net.minecraft.world.item.ItemStack(net.minecraft.world.item.Items.ARROW), null);
|
launch = new net.minecraft.world.entity.projectile.Arrow(world, this.getHandle(), new net.minecraft.world.item.ItemStack(net.minecraft.world.item.Items.ARROW), null);
|
||||||
}
|
}
|
||||||
- ((net.minecraft.world.entity.projectile.AbstractArrow) launch).shootFromRotation(this.getHandle(), this.getHandle().getXRot(), this.getHandle().getYRot(), 0.0F, 3.0F, 1.0F); // ItemBow
|
- ((net.minecraft.world.entity.projectile.AbstractArrow) launch).shootFromRotation(this.getHandle(), this.getHandle().getXRot(), this.getHandle().getYRot(), 0.0F, 3.0F, 1.0F); // ItemBow
|
||||||
+ ((net.minecraft.world.entity.projectile.AbstractArrow) launch).shootFromRotation(this.getHandle(), this.getHandle().getXRot(), this.getHandle().getYRot(), 0.0F, Trident.class.isAssignableFrom(projectile) ? net.minecraft.world.item.TridentItem.SHOOT_POWER : 3.0F, 1.0F); // ItemBow // Paper - see TridentItem
|
+ ((net.minecraft.world.entity.projectile.AbstractArrow) launch).shootFromRotation(this.getHandle(), this.getHandle().getXRot(), this.getHandle().getYRot(), 0.0F, Trident.class.isAssignableFrom(projectile) ? net.minecraft.world.item.TridentItem.PROJECTILE_SHOOT_POWER : 3.0F, 1.0F); // ItemBow // Paper - see TridentItem
|
||||||
} else if (ThrownPotion.class.isAssignableFrom(projectile)) {
|
} else if (ThrownPotion.class.isAssignableFrom(projectile)) {
|
||||||
if (LingeringPotion.class.isAssignableFrom(projectile)) {
|
if (LingeringPotion.class.isAssignableFrom(projectile)) {
|
||||||
launch = new net.minecraft.world.entity.projectile.ThrownPotion(world, this.getHandle(), new net.minecraft.world.item.ItemStack(Items.LINGERING_POTION));
|
launch = new net.minecraft.world.entity.projectile.ThrownPotion(world, this.getHandle(), new net.minecraft.world.item.ItemStack(Items.LINGERING_POTION));
|
||||||
|
|
|
@ -88,10 +88,6 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||||
+
|
+
|
||||||
+ world.loadChunksForMoveAsync(getHandle().getBoundingBoxAt(locationClone.getX(), locationClone.getY(), locationClone.getZ()),
|
+ world.loadChunksForMoveAsync(getHandle().getBoundingBoxAt(locationClone.getX(), locationClone.getY(), locationClone.getZ()),
|
||||||
+ this instanceof CraftPlayer ? ca.spottedleaf.concurrentutil.util.Priority.HIGHER : ca.spottedleaf.concurrentutil.util.Priority.NORMAL, (list) -> {
|
+ this instanceof CraftPlayer ? ca.spottedleaf.concurrentutil.util.Priority.HIGHER : ca.spottedleaf.concurrentutil.util.Priority.NORMAL, (list) -> {
|
||||||
+ net.minecraft.server.level.ServerChunkCache chunkProviderServer = world.getChunkSource();
|
|
||||||
+ for (net.minecraft.world.level.chunk.ChunkAccess chunk : list) {
|
|
||||||
+ chunkProviderServer.addTicketAtLevel(net.minecraft.server.level.TicketType.POST_TELEPORT, chunk.getPos(), 33, CraftEntity.this.getEntityId());
|
|
||||||
+ }
|
|
||||||
+ net.minecraft.server.MinecraftServer.getServer().scheduleOnMain(() -> {
|
+ net.minecraft.server.MinecraftServer.getServer().scheduleOnMain(() -> {
|
||||||
+ try {
|
+ try {
|
||||||
+ ret.complete(CraftEntity.this.teleport(locationClone, cause, teleportFlags) ? Boolean.TRUE : Boolean.FALSE);
|
+ ret.complete(CraftEntity.this.teleport(locationClone, cause, teleportFlags) ? Boolean.TRUE : Boolean.FALSE);
|
||||||
|
|
|
@ -15,18 +15,6 @@ massive amounts of surrounding chunks due to large AABB lookups.
|
||||||
|
|
||||||
Feature patch
|
Feature patch
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
|
|
||||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
||||||
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
|
|
||||||
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
|
|
||||||
@@ -0,0 +0,0 @@ public abstract class PlayerList {
|
|
||||||
Vec3 vec3d = teleporttransition.position();
|
|
||||||
|
|
||||||
entityplayer1.forceSetPositionRotation(vec3d.x, vec3d.y, vec3d.z, teleporttransition.yRot(), teleporttransition.xRot());
|
|
||||||
+ worldserver.getChunkSource().addRegionTicket(net.minecraft.server.level.TicketType.POST_TELEPORT, new net.minecraft.world.level.ChunkPos(net.minecraft.util.Mth.floor(vec3d.x()) >> 4, net.minecraft.util.Mth.floor(vec3d.z()) >> 4), 1, entityplayer.getId()); // Paper
|
|
||||||
// CraftBukkit end
|
|
||||||
if (teleporttransition.missingRespawnBlock()) {
|
|
||||||
entityplayer1.connection.send(new ClientboundGameEventPacket(ClientboundGameEventPacket.NO_RESPAWN_BLOCK_AVAILABLE, 0.0F));
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
|
|
|
@ -14,7 +14,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||||
}
|
}
|
||||||
+ // Paper start - track changed items in the dispense event
|
+ // Paper start - track changed items in the dispense event
|
||||||
+ itemstack1 = CraftItemStack.unwrap(event.getItem()); // unwrap is safe because the stack won't be modified
|
+ itemstack1 = CraftItemStack.unwrap(event.getItem()); // unwrap is safe because the stack won't be modified
|
||||||
+ entitytypes = ((SpawnEggItem) itemstack1.getItem()).getType(itemstack1);
|
+ entitytypes = ((SpawnEggItem) itemstack1.getItem()).getType(worldserver.registryAccess(), itemstack1);
|
||||||
+ // Paper end - track changed item from dispense event
|
+ // Paper end - track changed item from dispense event
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue