geforkt von Mirrors/Paper
more more more more more more more more more more more work: passing the torch
Dieser Commit ist enthalten in:
Ursprung
9e63e24f0b
Commit
411f78293c
@ -8,7 +8,7 @@ diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListener
|
|||||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||||
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||||
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||||
@@ -0,0 +0,0 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
|
@@ -0,0 +0,0 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
|
||||||
private void performChatCommand(ServerboundChatCommandPacket packet, LastSeenMessages lastSeenMessages) {
|
private void performChatCommand(ServerboundChatCommandPacket packet, LastSeenMessages lastSeenMessages) {
|
||||||
// CraftBukkit start
|
// CraftBukkit start
|
||||||
String command = "/" + packet.command();
|
String command = "/" + packet.command();
|
||||||
@ -16,5 +16,5 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
|||||||
ServerGamePacketListenerImpl.LOGGER.info(this.player.getScoreboardName() + " issued server command: " + command);
|
ServerGamePacketListenerImpl.LOGGER.info(this.player.getScoreboardName() + " issued server command: " + command);
|
||||||
+ } // Paper
|
+ } // Paper
|
||||||
|
|
||||||
PlayerCommandPreprocessEvent event = new PlayerCommandPreprocessEvent(this.getCraftPlayer(), command, new LazyPlayerSet(this.server));
|
PlayerCommandPreprocessEvent event = new PlayerCommandPreprocessEvent(getCraftPlayer(), command, new LazyPlayerSet(server));
|
||||||
this.cserver.getPluginManager().callEvent(event);
|
this.cserver.getPluginManager().callEvent(event);
|
@ -72,29 +72,29 @@ diff --git a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java b/
|
|||||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java
|
--- a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java
|
+++ b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java
|
||||||
@@ -0,0 +0,0 @@ public class Camel extends AbstractHorse implements PlayerRideableJumping, Rider
|
@@ -0,0 +0,0 @@ public class Camel extends AbstractHorse implements PlayerRideableJumping, Saddl
|
||||||
}
|
}
|
||||||
|
|
||||||
public void sitDown() {
|
public void sitDown() {
|
||||||
- if (!this.isCamelSitting()) {
|
- if (!this.isCamelSitting()) {
|
||||||
+ if (!this.isCamelSitting() && new io.papermc.paper.event.entity.EntityToggleSitEvent(this.getBukkitEntity(), true).callEvent()) { // Paper
|
+ if (!this.isCamelSitting() && new io.papermc.paper.event.entity.EntityToggleSitEvent(this.getBukkitEntity(), true).callEvent()) { // Paper
|
||||||
this.playSound(SoundEvents.CAMEL_SIT, 1.0F, 1.0F);
|
this.playSound(SoundEvents.CAMEL_SIT, 1.0F, this.getVoicePitch());
|
||||||
this.setPose(Pose.SITTING);
|
this.setPose(Pose.SITTING);
|
||||||
this.resetLastPoseChangeTick(-this.level().getGameTime());
|
this.gameEvent(GameEvent.ENTITY_ACTION);
|
||||||
@@ -0,0 +0,0 @@ public class Camel extends AbstractHorse implements PlayerRideableJumping, Rider
|
@@ -0,0 +0,0 @@ public class Camel extends AbstractHorse implements PlayerRideableJumping, Saddl
|
||||||
}
|
}
|
||||||
|
|
||||||
public void standUp() {
|
public void standUp() {
|
||||||
- if (this.isCamelSitting()) {
|
- if (this.isCamelSitting()) {
|
||||||
+ if (this.isCamelSitting() && new io.papermc.paper.event.entity.EntityToggleSitEvent(this.getBukkitEntity(), false).callEvent()) { // Paper
|
+ if (this.isCamelSitting() && new io.papermc.paper.event.entity.EntityToggleSitEvent(this.getBukkitEntity(), false).callEvent()) { // Paper
|
||||||
this.playSound(SoundEvents.CAMEL_STAND, 1.0F, 1.0F);
|
this.playSound(SoundEvents.CAMEL_STAND, 1.0F, this.getVoicePitch());
|
||||||
this.setPose(Pose.STANDING);
|
this.setPose(Pose.STANDING);
|
||||||
this.resetLastPoseChangeTick(this.level().getGameTime());
|
this.gameEvent(GameEvent.ENTITY_ACTION);
|
||||||
@@ -0,0 +0,0 @@ public class Camel extends AbstractHorse implements PlayerRideableJumping, Rider
|
@@ -0,0 +0,0 @@ public class Camel extends AbstractHorse implements PlayerRideableJumping, Saddl
|
||||||
}
|
}
|
||||||
|
|
||||||
public void standUpInstantly() {
|
public void standUpInstantly() {
|
||||||
+ if (this.isCamelSitting() && !new io.papermc.paper.event.entity.EntityToggleSitEvent(this.getBukkitEntity(), false).callEvent()) return; // Paper
|
+ if (this.isCamelSitting() && !new io.papermc.paper.event.entity.EntityToggleSitEvent(this.getBukkitEntity(), false).callEvent()) return; // Paper
|
||||||
this.setPose(Pose.STANDING);
|
this.setPose(Pose.STANDING);
|
||||||
|
this.gameEvent(GameEvent.ENTITY_ACTION);
|
||||||
this.resetLastPoseChangeTickToFullStand(this.level().getGameTime());
|
this.resetLastPoseChangeTickToFullStand(this.level().getGameTime());
|
||||||
}
|
|
@ -387,8 +387,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
|||||||
--- a/src/main/java/net/minecraft/world/item/SaddleItem.java
|
--- a/src/main/java/net/minecraft/world/item/SaddleItem.java
|
||||||
+++ b/src/main/java/net/minecraft/world/item/SaddleItem.java
|
+++ b/src/main/java/net/minecraft/world/item/SaddleItem.java
|
||||||
@@ -0,0 +0,0 @@ public class SaddleItem extends Item {
|
@@ -0,0 +0,0 @@ public class SaddleItem extends Item {
|
||||||
if (entity instanceof Saddleable saddleable && entity.isAlive()) {
|
if (entity instanceof Saddleable saddleable) {
|
||||||
if (!saddleable.isSaddled() && saddleable.isSaddleable()) {
|
if (entity.isAlive() && !saddleable.isSaddled() && saddleable.isSaddleable()) {
|
||||||
if (!user.level().isClientSide) {
|
if (!user.level().isClientSide) {
|
||||||
- saddleable.equipSaddle(SoundSource.NEUTRAL);
|
- saddleable.equipSaddle(SoundSource.NEUTRAL);
|
||||||
+ saddleable.equipSaddle(SoundSource.NEUTRAL, stack.copyWithCount(1)); // Paper - Fix saddles losing nbt data - MC-191591
|
+ saddleable.equipSaddle(SoundSource.NEUTRAL, stack.copyWithCount(1)); // Paper - Fix saddles losing nbt data - MC-191591
|
@ -18,7 +18,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
|||||||
// iprojectile.shoot((double) enumdirection.getStepX(), (double) ((float) enumdirection.getStepY() + 0.1F), (double) enumdirection.getStepZ(), this.getPower(), this.getUncertainty());
|
// iprojectile.shoot((double) enumdirection.getStepX(), (double) ((float) enumdirection.getStepY() + 0.1F), (double) enumdirection.getStepZ(), this.getPower(), this.getUncertainty());
|
||||||
- ItemStack itemstack1 = stack.split(1);
|
- ItemStack itemstack1 = stack.split(1);
|
||||||
+ ItemStack itemstack1 = stack.copyWithCount(1); // Paper - shrink below and single item in event
|
+ ItemStack itemstack1 = stack.copyWithCount(1); // Paper - shrink below and single item in event
|
||||||
org.bukkit.block.Block block = worldserver.getWorld().getBlockAt(pointer.getPos().getX(), pointer.getPos().getY(), pointer.getPos().getZ());
|
org.bukkit.block.Block block = CraftBlock.at(worldserver, pointer.pos());
|
||||||
CraftItemStack craftItem = CraftItemStack.asCraftMirror(itemstack1);
|
CraftItemStack craftItem = CraftItemStack.asCraftMirror(itemstack1);
|
||||||
|
|
||||||
@@ -0,0 +0,0 @@ public abstract class AbstractProjectileDispenseBehavior extends DefaultDispense
|
@@ -0,0 +0,0 @@ public abstract class AbstractProjectileDispenseBehavior extends DefaultDispense
|
||||||
@ -38,7 +38,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
|||||||
ItemStack eventStack = CraftItemStack.asNMSCopy(event.getItem());
|
ItemStack eventStack = CraftItemStack.asNMSCopy(event.getItem());
|
||||||
DispenseItemBehavior idispensebehavior = (DispenseItemBehavior) DispenserBlock.DISPENSER_REGISTRY.get(eventStack.getItem());
|
DispenseItemBehavior idispensebehavior = (DispenseItemBehavior) DispenserBlock.DISPENSER_REGISTRY.get(eventStack.getItem());
|
||||||
@@ -0,0 +0,0 @@ public abstract class AbstractProjectileDispenseBehavior extends DefaultDispense
|
@@ -0,0 +0,0 @@ public abstract class AbstractProjectileDispenseBehavior extends DefaultDispense
|
||||||
((Entity) iprojectile).projectileSource = new org.bukkit.craftbukkit.projectiles.CraftBlockProjectileSource((DispenserBlockEntity) pointer.getEntity());
|
((Entity) iprojectile).projectileSource = new org.bukkit.craftbukkit.projectiles.CraftBlockProjectileSource(pointer.blockEntity());
|
||||||
// CraftBukkit end
|
// CraftBukkit end
|
||||||
worldserver.addFreshEntity(iprojectile);
|
worldserver.addFreshEntity(iprojectile);
|
||||||
- // itemstack.shrink(1); // CraftBukkit - Handled during event processing
|
- // itemstack.shrink(1); // CraftBukkit - Handled during event processing
|
||||||
@ -56,7 +56,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
|||||||
// CraftBukkit start
|
// CraftBukkit start
|
||||||
- ItemStack itemstack1 = stack.split(1);
|
- ItemStack itemstack1 = stack.split(1);
|
||||||
+ ItemStack itemstack1 = stack.copyWithCount(1); // Paper - shrink at end and single item in event
|
+ ItemStack itemstack1 = stack.copyWithCount(1); // Paper - shrink at end and single item in event
|
||||||
org.bukkit.block.Block block = worldserver.getWorld().getBlockAt(pointer.getPos().getX(), pointer.getPos().getY(), pointer.getPos().getZ());
|
org.bukkit.block.Block block = CraftBlock.at(worldserver, pointer.pos());
|
||||||
CraftItemStack craftItem = CraftItemStack.asCraftMirror(itemstack1);
|
CraftItemStack craftItem = CraftItemStack.asCraftMirror(itemstack1);
|
||||||
|
|
||||||
@@ -0,0 +0,0 @@ public class BoatDispenseItemBehavior extends DefaultDispenseItemBehavior {
|
@@ -0,0 +0,0 @@ public class BoatDispenseItemBehavior extends DefaultDispenseItemBehavior {
|
||||||
@ -92,10 +92,10 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
|||||||
@@ -0,0 +0,0 @@ public interface DispenseItemBehavior {
|
@@ -0,0 +0,0 @@ public interface DispenseItemBehavior {
|
||||||
|
|
||||||
// CraftBukkit start
|
// CraftBukkit start
|
||||||
ServerLevel worldserver = pointer.getLevel();
|
ServerLevel worldserver = pointer.level();
|
||||||
- ItemStack itemstack1 = stack.split(1);
|
- ItemStack itemstack1 = stack.split(1);
|
||||||
+ ItemStack itemstack1 = stack.copyWithCount(1); // Paper - shrink below and single item in event
|
+ ItemStack itemstack1 = stack.copyWithCount(1); // Paper - shrink below and single item in event
|
||||||
org.bukkit.block.Block block = worldserver.getWorld().getBlockAt(pointer.getPos().getX(), pointer.getPos().getY(), pointer.getPos().getZ());
|
org.bukkit.block.Block block = CraftBlock.at(worldserver, pointer.pos());
|
||||||
CraftItemStack craftItem = CraftItemStack.asCraftMirror(itemstack1);
|
CraftItemStack craftItem = CraftItemStack.asCraftMirror(itemstack1);
|
||||||
|
|
||||||
@@ -0,0 +0,0 @@ public interface DispenseItemBehavior {
|
@@ -0,0 +0,0 @@ public interface DispenseItemBehavior {
|
||||||
@ -121,15 +121,15 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
|||||||
- // itemstack.shrink(1); // Handled during event processing
|
- // itemstack.shrink(1); // Handled during event processing
|
||||||
+ if (shrink) stack.shrink(1); // Paper - actually handle here
|
+ if (shrink) stack.shrink(1); // Paper - actually handle here
|
||||||
// CraftBukkit end
|
// CraftBukkit end
|
||||||
pointer.getLevel().gameEvent((Entity) null, GameEvent.ENTITY_PLACE, pointer.getPos());
|
pointer.level().gameEvent((Entity) null, GameEvent.ENTITY_PLACE, pointer.pos());
|
||||||
return stack;
|
return stack;
|
||||||
@@ -0,0 +0,0 @@ public interface DispenseItemBehavior {
|
@@ -0,0 +0,0 @@ public interface DispenseItemBehavior {
|
||||||
ServerLevel worldserver = pointer.getLevel();
|
ServerLevel worldserver = pointer.level();
|
||||||
|
|
||||||
// CraftBukkit start
|
// CraftBukkit start
|
||||||
- ItemStack itemstack1 = stack.split(1);
|
- ItemStack itemstack1 = stack.split(1);
|
||||||
+ ItemStack itemstack1 = stack.copyWithCount(1); // Paper - shrink below and single item in event
|
+ ItemStack itemstack1 = stack.copyWithCount(1); // Paper - shrink below and single item in event
|
||||||
org.bukkit.block.Block block = worldserver.getWorld().getBlockAt(pointer.getPos().getX(), pointer.getPos().getY(), pointer.getPos().getZ());
|
org.bukkit.block.Block block = CraftBlock.at(worldserver, pointer.pos());
|
||||||
CraftItemStack craftItem = CraftItemStack.asCraftMirror(itemstack1);
|
CraftItemStack craftItem = CraftItemStack.asCraftMirror(itemstack1);
|
||||||
|
|
||||||
@@ -0,0 +0,0 @@ public interface DispenseItemBehavior {
|
@@ -0,0 +0,0 @@ public interface DispenseItemBehavior {
|
||||||
@ -163,8 +163,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
|||||||
// CraftBukkit start
|
// CraftBukkit start
|
||||||
- ItemStack itemstack1 = stack.split(1);
|
- ItemStack itemstack1 = stack.split(1);
|
||||||
+ ItemStack itemstack1 = stack.copyWithCount(1); // Paper - shrink below and single item in event
|
+ ItemStack itemstack1 = stack.copyWithCount(1); // Paper - shrink below and single item in event
|
||||||
Level world = pointer.getLevel();
|
Level world = pointer.level();
|
||||||
org.bukkit.block.Block block = world.getWorld().getBlockAt(pointer.getPos().getX(), pointer.getPos().getY(), pointer.getPos().getZ());
|
org.bukkit.block.Block block = CraftBlock.at(world, pointer.pos());
|
||||||
CraftItemStack craftItem = CraftItemStack.asCraftMirror(itemstack1);
|
CraftItemStack craftItem = CraftItemStack.asCraftMirror(itemstack1);
|
||||||
@@ -0,0 +0,0 @@ public interface DispenseItemBehavior {
|
@@ -0,0 +0,0 @@ public interface DispenseItemBehavior {
|
||||||
}
|
}
|
||||||
@ -197,8 +197,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
|||||||
// CraftBukkit start
|
// CraftBukkit start
|
||||||
- ItemStack itemstack1 = stack.split(1);
|
- ItemStack itemstack1 = stack.split(1);
|
||||||
+ ItemStack itemstack1 = stack.copyWithCount(1); // Paper - shrink below and single item in event
|
+ ItemStack itemstack1 = stack.copyWithCount(1); // Paper - shrink below and single item in event
|
||||||
Level world = pointer.getLevel();
|
Level world = pointer.level();
|
||||||
org.bukkit.block.Block block = world.getWorld().getBlockAt(pointer.getPos().getX(), pointer.getPos().getY(), pointer.getPos().getZ());
|
org.bukkit.block.Block block = CraftBlock.at(world, pointer.pos());
|
||||||
CraftItemStack craftItem = CraftItemStack.asCraftMirror(itemstack1);
|
CraftItemStack craftItem = CraftItemStack.asCraftMirror(itemstack1);
|
||||||
@@ -0,0 +0,0 @@ public interface DispenseItemBehavior {
|
@@ -0,0 +0,0 @@ public interface DispenseItemBehavior {
|
||||||
}
|
}
|
||||||
@ -230,8 +230,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
|||||||
} while (!entityhorsechestedabstract.isTamed());
|
} while (!entityhorsechestedabstract.isTamed());
|
||||||
- ItemStack itemstack1 = stack.split(1);
|
- ItemStack itemstack1 = stack.split(1);
|
||||||
+ ItemStack itemstack1 = stack.copyWithCount(1); // Paper - shrink below
|
+ ItemStack itemstack1 = stack.copyWithCount(1); // Paper - shrink below
|
||||||
Level world = pointer.getLevel();
|
Level world = pointer.level();
|
||||||
org.bukkit.block.Block block = world.getWorld().getBlockAt(pointer.getPos().getX(), pointer.getPos().getY(), pointer.getPos().getZ());
|
org.bukkit.block.Block block = CraftBlock.at(world, pointer.pos());
|
||||||
CraftItemStack craftItem = CraftItemStack.asCraftMirror(itemstack1);
|
CraftItemStack craftItem = CraftItemStack.asCraftMirror(itemstack1);
|
||||||
@@ -0,0 +0,0 @@ public interface DispenseItemBehavior {
|
@@ -0,0 +0,0 @@ public interface DispenseItemBehavior {
|
||||||
}
|
}
|
||||||
@ -257,12 +257,12 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
|||||||
return stack;
|
return stack;
|
||||||
}
|
}
|
||||||
@@ -0,0 +0,0 @@ public interface DispenseItemBehavior {
|
@@ -0,0 +0,0 @@ public interface DispenseItemBehavior {
|
||||||
Direction enumdirection = (Direction) pointer.getBlockState().getValue(DispenserBlock.FACING);
|
Direction enumdirection = (Direction) pointer.state().getValue(DispenserBlock.FACING);
|
||||||
// CraftBukkit start
|
// CraftBukkit start
|
||||||
ServerLevel worldserver = pointer.getLevel();
|
ServerLevel worldserver = pointer.level();
|
||||||
- ItemStack itemstack1 = stack.split(1);
|
- ItemStack itemstack1 = stack.split(1);
|
||||||
+ ItemStack itemstack1 = stack.copyWithCount(1); // Paper - shrink below and single item in event
|
+ ItemStack itemstack1 = stack.copyWithCount(1); // Paper - shrink below and single item in event
|
||||||
org.bukkit.block.Block block = worldserver.getWorld().getBlockAt(pointer.getPos().getX(), pointer.getPos().getY(), pointer.getPos().getZ());
|
org.bukkit.block.Block block = CraftBlock.at(worldserver, pointer.pos());
|
||||||
CraftItemStack craftItem = CraftItemStack.asCraftMirror(itemstack1);
|
CraftItemStack craftItem = CraftItemStack.asCraftMirror(itemstack1);
|
||||||
|
|
||||||
@@ -0,0 +0,0 @@ public interface DispenseItemBehavior {
|
@@ -0,0 +0,0 @@ public interface DispenseItemBehavior {
|
||||||
@ -282,9 +282,9 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
|||||||
ItemStack eventStack = CraftItemStack.asNMSCopy(event.getItem());
|
ItemStack eventStack = CraftItemStack.asNMSCopy(event.getItem());
|
||||||
DispenseItemBehavior idispensebehavior = (DispenseItemBehavior) DispenserBlock.DISPENSER_REGISTRY.get(eventStack.getItem());
|
DispenseItemBehavior idispensebehavior = (DispenseItemBehavior) DispenserBlock.DISPENSER_REGISTRY.get(eventStack.getItem());
|
||||||
@@ -0,0 +0,0 @@ public interface DispenseItemBehavior {
|
@@ -0,0 +0,0 @@ public interface DispenseItemBehavior {
|
||||||
DispenseItemBehavior.setEntityPokingOutOfBlock(pointer, entityfireworks, enumdirection);
|
|
||||||
entityfireworks.shoot((double) enumdirection.getStepX(), (double) enumdirection.getStepY(), (double) enumdirection.getStepZ(), 0.5F, 1.0F);
|
entityfireworks.shoot((double) enumdirection.getStepX(), (double) enumdirection.getStepY(), (double) enumdirection.getStepZ(), 0.5F, 1.0F);
|
||||||
pointer.getLevel().addFreshEntity(entityfireworks);
|
pointer.level().addFreshEntity(entityfireworks);
|
||||||
- // itemstack.shrink(1); // Handled during event processing
|
- // itemstack.shrink(1); // Handled during event processing
|
||||||
+ if (shrink) stack.shrink(1); // Paper - actually handle here
|
+ if (shrink) stack.shrink(1); // Paper - actually handle here
|
||||||
// CraftBukkit end
|
// CraftBukkit end
|
||||||
@ -296,7 +296,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
|||||||
// CraftBukkit start
|
// CraftBukkit start
|
||||||
- ItemStack itemstack1 = stack.split(1);
|
- ItemStack itemstack1 = stack.split(1);
|
||||||
+ ItemStack itemstack1 = stack.copyWithCount(1); // Paper - shrink below and single item in event
|
+ ItemStack itemstack1 = stack.copyWithCount(1); // Paper - shrink below and single item in event
|
||||||
org.bukkit.block.Block block = worldserver.getWorld().getBlockAt(pointer.getPos().getX(), pointer.getPos().getY(), pointer.getPos().getZ());
|
org.bukkit.block.Block block = CraftBlock.at(worldserver, pointer.pos());
|
||||||
CraftItemStack craftItem = CraftItemStack.asCraftMirror(itemstack1);
|
CraftItemStack craftItem = CraftItemStack.asCraftMirror(itemstack1);
|
||||||
|
|
||||||
@@ -0,0 +0,0 @@ public interface DispenseItemBehavior {
|
@@ -0,0 +0,0 @@ public interface DispenseItemBehavior {
|
||||||
@ -316,7 +316,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
|||||||
ItemStack eventStack = CraftItemStack.asNMSCopy(event.getItem());
|
ItemStack eventStack = CraftItemStack.asNMSCopy(event.getItem());
|
||||||
DispenseItemBehavior idispensebehavior = (DispenseItemBehavior) DispenserBlock.DISPENSER_REGISTRY.get(eventStack.getItem());
|
DispenseItemBehavior idispensebehavior = (DispenseItemBehavior) DispenserBlock.DISPENSER_REGISTRY.get(eventStack.getItem());
|
||||||
@@ -0,0 +0,0 @@ public interface DispenseItemBehavior {
|
@@ -0,0 +0,0 @@ public interface DispenseItemBehavior {
|
||||||
entitysmallfireball.projectileSource = new org.bukkit.craftbukkit.projectiles.CraftBlockProjectileSource((DispenserBlockEntity) pointer.getEntity());
|
entitysmallfireball.projectileSource = new org.bukkit.craftbukkit.projectiles.CraftBlockProjectileSource(pointer.blockEntity());
|
||||||
|
|
||||||
worldserver.addFreshEntity(entitysmallfireball);
|
worldserver.addFreshEntity(entitysmallfireball);
|
||||||
- // itemstack.shrink(1); // Handled during event processing
|
- // itemstack.shrink(1); // Handled during event processing
|
||||||
@ -326,8 +326,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
|||||||
}
|
}
|
||||||
@@ -0,0 +0,0 @@ public interface DispenseItemBehavior {
|
@@ -0,0 +0,0 @@ public interface DispenseItemBehavior {
|
||||||
BlockState iblockdata = worldserver.getBlockState(blockposition);
|
BlockState iblockdata = worldserver.getBlockState(blockposition);
|
||||||
if (iblockdata.isAir() || iblockdata.canBeReplaced() || (dispensiblecontaineritem instanceof BucketItem && iblockdata.getBlock() instanceof LiquidBlockContainer && ((LiquidBlockContainer) iblockdata.getBlock()).canPlaceLiquid(worldserver, blockposition, iblockdata, ((BucketItem) dispensiblecontaineritem).content))) {
|
if (iblockdata.isAir() || iblockdata.canBeReplaced() || (dispensiblecontaineritem instanceof BucketItem && iblockdata.getBlock() instanceof LiquidBlockContainer && ((LiquidBlockContainer) iblockdata.getBlock()).canPlaceLiquid((Player) null, worldserver, blockposition, iblockdata, ((BucketItem) dispensiblecontaineritem).content))) {
|
||||||
org.bukkit.block.Block block = worldserver.getWorld().getBlockAt(pointer.getPos().getX(), pointer.getPos().getY(), pointer.getPos().getZ());
|
org.bukkit.block.Block block = CraftBlock.at(worldserver, pointer.pos());
|
||||||
- CraftItemStack craftItem = CraftItemStack.asCraftMirror(stack);
|
- CraftItemStack craftItem = CraftItemStack.asCraftMirror(stack);
|
||||||
+ CraftItemStack craftItem = CraftItemStack.asCraftMirror(stack.copyWithCount(1)); // Paper - single item in event
|
+ CraftItemStack craftItem = CraftItemStack.asCraftMirror(stack.copyWithCount(1)); // Paper - single item in event
|
||||||
|
|
||||||
@ -336,25 +336,16 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
|||||||
@@ -0,0 +0,0 @@ public interface DispenseItemBehavior {
|
@@ -0,0 +0,0 @@ public interface DispenseItemBehavior {
|
||||||
|
|
||||||
// CraftBukkit start
|
// CraftBukkit start
|
||||||
org.bukkit.block.Block bukkitBlock = worldserver.getWorld().getBlockAt(pointer.getPos().getX(), pointer.getPos().getY(), pointer.getPos().getZ());
|
org.bukkit.block.Block bukkitBlock = CraftBlock.at(worldserver, pointer.pos());
|
||||||
- CraftItemStack craftItem = CraftItemStack.asCraftMirror(stack);
|
- CraftItemStack craftItem = CraftItemStack.asCraftMirror(stack);
|
||||||
+ CraftItemStack craftItem = CraftItemStack.asCraftMirror(stack.copyWithCount(1)); // Paper - single item in event
|
+ CraftItemStack craftItem = CraftItemStack.asCraftMirror(stack.copyWithCount(1)); // Paper - single item in event
|
||||||
|
|
||||||
BlockDispenseEvent event = new BlockDispenseEvent(bukkitBlock, craftItem.clone(), new org.bukkit.util.Vector(blockposition.getX(), blockposition.getY(), blockposition.getZ()));
|
BlockDispenseEvent event = new BlockDispenseEvent(bukkitBlock, craftItem.clone(), new org.bukkit.util.Vector(blockposition.getX(), blockposition.getY(), blockposition.getZ()));
|
||||||
if (!DispenserBlock.eventFired) {
|
if (!DispenserBlock.eventFired) {
|
||||||
@@ -0,0 +0,0 @@ public interface DispenseItemBehavior {
|
@@ -0,0 +0,0 @@ public interface DispenseItemBehavior {
|
||||||
|
BlockPos blockposition = pointer.pos().relative((Direction) pointer.state().getValue(DispenserBlock.FACING));
|
||||||
// CraftBukkit start
|
// CraftBukkit start
|
||||||
org.bukkit.block.Block bukkitBlock = worldserver.getWorld().getBlockAt(pointer.getPos().getX(), pointer.getPos().getY(), pointer.getPos().getZ());
|
org.bukkit.block.Block block = CraftBlock.at(worldserver, pointer.pos());
|
||||||
- CraftItemStack craftItem = CraftItemStack.asCraftMirror(stack);
|
|
||||||
+ CraftItemStack craftItem = CraftItemStack.asCraftMirror(stack); // Paper - ignore stack size on damageable items
|
|
||||||
|
|
||||||
BlockDispenseEvent event = new BlockDispenseEvent(bukkitBlock, craftItem.clone(), new org.bukkit.util.Vector(0, 0, 0));
|
|
||||||
if (!DispenserBlock.eventFired) {
|
|
||||||
@@ -0,0 +0,0 @@ public interface DispenseItemBehavior {
|
|
||||||
BlockPos blockposition = pointer.getPos().relative((Direction) pointer.getBlockState().getValue(DispenserBlock.FACING));
|
|
||||||
// CraftBukkit start
|
|
||||||
org.bukkit.block.Block block = worldserver.getWorld().getBlockAt(pointer.getPos().getX(), pointer.getPos().getY(), pointer.getPos().getZ());
|
|
||||||
- CraftItemStack craftItem = CraftItemStack.asCraftMirror(stack);
|
- CraftItemStack craftItem = CraftItemStack.asCraftMirror(stack);
|
||||||
+ CraftItemStack craftItem = CraftItemStack.asCraftMirror(stack.copyWithCount(1)); // Paper - single item in event
|
+ CraftItemStack craftItem = CraftItemStack.asCraftMirror(stack.copyWithCount(1)); // Paper - single item in event
|
||||||
|
|
||||||
@ -366,7 +357,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
|||||||
|
|
||||||
- ItemStack itemstack1 = stack.split(1);
|
- ItemStack itemstack1 = stack.split(1);
|
||||||
+ ItemStack itemstack1 = stack.copyWithCount(1); // Paper - shrink at end and single item in event
|
+ ItemStack itemstack1 = stack.copyWithCount(1); // Paper - shrink at end and single item in event
|
||||||
org.bukkit.block.Block block = worldserver.getWorld().getBlockAt(pointer.getPos().getX(), pointer.getPos().getY(), pointer.getPos().getZ());
|
org.bukkit.block.Block block = CraftBlock.at(worldserver, pointer.pos());
|
||||||
CraftItemStack craftItem = CraftItemStack.asCraftMirror(itemstack1);
|
CraftItemStack craftItem = CraftItemStack.asCraftMirror(itemstack1);
|
||||||
|
|
||||||
@@ -0,0 +0,0 @@ public interface DispenseItemBehavior {
|
@@ -0,0 +0,0 @@ public interface DispenseItemBehavior {
|
||||||
@ -397,7 +388,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
|||||||
@@ -0,0 +0,0 @@ public interface DispenseItemBehavior {
|
@@ -0,0 +0,0 @@ public interface DispenseItemBehavior {
|
||||||
|
|
||||||
// CraftBukkit start
|
// CraftBukkit start
|
||||||
org.bukkit.block.Block bukkitBlock = worldserver.getWorld().getBlockAt(pointer.getPos().getX(), pointer.getPos().getY(), pointer.getPos().getZ());
|
org.bukkit.block.Block bukkitBlock = CraftBlock.at(worldserver, pointer.pos());
|
||||||
- CraftItemStack craftItem = CraftItemStack.asCraftMirror(stack);
|
- CraftItemStack craftItem = CraftItemStack.asCraftMirror(stack);
|
||||||
+ CraftItemStack craftItem = CraftItemStack.asCraftMirror(stack.copyWithCount(1)); // Paper - single item in event
|
+ CraftItemStack craftItem = CraftItemStack.asCraftMirror(stack.copyWithCount(1)); // Paper - single item in event
|
||||||
|
|
||||||
@ -406,7 +397,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
|||||||
@@ -0,0 +0,0 @@ public interface DispenseItemBehavior {
|
@@ -0,0 +0,0 @@ public interface DispenseItemBehavior {
|
||||||
|
|
||||||
// CraftBukkit start
|
// CraftBukkit start
|
||||||
org.bukkit.block.Block bukkitBlock = worldserver.getWorld().getBlockAt(pointer.getPos().getX(), pointer.getPos().getY(), pointer.getPos().getZ());
|
org.bukkit.block.Block bukkitBlock = CraftBlock.at(worldserver, pointer.pos());
|
||||||
- CraftItemStack craftItem = CraftItemStack.asCraftMirror(stack);
|
- CraftItemStack craftItem = CraftItemStack.asCraftMirror(stack);
|
||||||
+ CraftItemStack craftItem = CraftItemStack.asCraftMirror(stack.copyWithCount(1)); // Paper - single item in event
|
+ CraftItemStack craftItem = CraftItemStack.asCraftMirror(stack.copyWithCount(1)); // Paper - single item in event
|
||||||
|
|
||||||
@ -415,25 +406,12 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
|||||||
@@ -0,0 +0,0 @@ public interface DispenseItemBehavior {
|
@@ -0,0 +0,0 @@ public interface DispenseItemBehavior {
|
||||||
|
|
||||||
// CraftBukkit start
|
// CraftBukkit start
|
||||||
org.bukkit.block.Block bukkitBlock = worldserver.getWorld().getBlockAt(pointer.getPos().getX(), pointer.getPos().getY(), pointer.getPos().getZ());
|
org.bukkit.block.Block bukkitBlock = CraftBlock.at(worldserver, pointer.pos());
|
||||||
- CraftItemStack craftItem = CraftItemStack.asCraftMirror(stack);
|
- CraftItemStack craftItem = CraftItemStack.asCraftMirror(stack);
|
||||||
+ CraftItemStack craftItem = CraftItemStack.asCraftMirror(stack.copyWithCount(1)); // Paper - only single item in event
|
+ CraftItemStack craftItem = CraftItemStack.asCraftMirror(stack.copyWithCount(1)); // Paper - only single item in event
|
||||||
|
|
||||||
BlockDispenseEvent event = new BlockDispenseEvent(bukkitBlock, craftItem.clone(), new org.bukkit.util.Vector(blockposition.getX(), blockposition.getY(), blockposition.getZ()));
|
BlockDispenseEvent event = new BlockDispenseEvent(bukkitBlock, craftItem.clone(), new org.bukkit.util.Vector(blockposition.getX(), blockposition.getY(), blockposition.getZ()));
|
||||||
if (!DispenserBlock.eventFired) {
|
if (!DispenserBlock.eventFired) {
|
||||||
diff --git a/src/main/java/net/minecraft/core/dispenser/ShearsDispenseItemBehavior.java b/src/main/java/net/minecraft/core/dispenser/ShearsDispenseItemBehavior.java
|
|
||||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
||||||
--- a/src/main/java/net/minecraft/core/dispenser/ShearsDispenseItemBehavior.java
|
|
||||||
+++ b/src/main/java/net/minecraft/core/dispenser/ShearsDispenseItemBehavior.java
|
|
||||||
@@ -0,0 +0,0 @@ public class ShearsDispenseItemBehavior extends OptionalDispenseItemBehavior {
|
|
||||||
ServerLevel worldserver = pointer.getLevel();
|
|
||||||
// CraftBukkit start
|
|
||||||
org.bukkit.block.Block bukkitBlock = worldserver.getWorld().getBlockAt(pointer.getPos().getX(), pointer.getPos().getY(), pointer.getPos().getZ());
|
|
||||||
- CraftItemStack craftItem = CraftItemStack.asCraftMirror(stack);
|
|
||||||
+ CraftItemStack craftItem = CraftItemStack.asCraftMirror(stack); // Paper - ignore stack size on damageable items
|
|
||||||
|
|
||||||
BlockDispenseEvent event = new BlockDispenseEvent(bukkitBlock, craftItem.clone(), new org.bukkit.util.Vector(0, 0, 0));
|
|
||||||
if (!DispenserBlock.eventFired) {
|
|
||||||
diff --git a/src/main/java/net/minecraft/core/dispenser/ShulkerBoxDispenseBehavior.java b/src/main/java/net/minecraft/core/dispenser/ShulkerBoxDispenseBehavior.java
|
diff --git a/src/main/java/net/minecraft/core/dispenser/ShulkerBoxDispenseBehavior.java b/src/main/java/net/minecraft/core/dispenser/ShulkerBoxDispenseBehavior.java
|
||||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||||
--- a/src/main/java/net/minecraft/core/dispenser/ShulkerBoxDispenseBehavior.java
|
--- a/src/main/java/net/minecraft/core/dispenser/ShulkerBoxDispenseBehavior.java
|
||||||
@ -441,7 +419,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
|||||||
@@ -0,0 +0,0 @@ public class ShulkerBoxDispenseBehavior extends OptionalDispenseItemBehavior {
|
@@ -0,0 +0,0 @@ public class ShulkerBoxDispenseBehavior extends OptionalDispenseItemBehavior {
|
||||||
|
|
||||||
// CraftBukkit start
|
// CraftBukkit start
|
||||||
org.bukkit.block.Block bukkitBlock = pointer.getLevel().getWorld().getBlockAt(pointer.getPos().getX(), pointer.getPos().getY(), pointer.getPos().getZ());
|
org.bukkit.block.Block bukkitBlock = CraftBlock.at(pointer.level(), pointer.pos());
|
||||||
- CraftItemStack craftItem = CraftItemStack.asCraftMirror(stack);
|
- CraftItemStack craftItem = CraftItemStack.asCraftMirror(stack);
|
||||||
+ CraftItemStack craftItem = CraftItemStack.asCraftMirror(stack.copyWithCount(1)); // Paper - single item in event
|
+ CraftItemStack craftItem = CraftItemStack.asCraftMirror(stack.copyWithCount(1)); // Paper - single item in event
|
||||||
|
|
||||||
@ -458,8 +436,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
|||||||
- ItemStack itemstack1 = armor.split(1);
|
- ItemStack itemstack1 = armor.split(1);
|
||||||
+ ItemStack itemstack1 = armor.copyWithCount(1); // Paper - shrink below and single item in event
|
+ ItemStack itemstack1 = armor.copyWithCount(1); // Paper - shrink below and single item in event
|
||||||
// CraftBukkit start
|
// CraftBukkit start
|
||||||
Level world = pointer.getLevel();
|
Level world = pointer.level();
|
||||||
org.bukkit.block.Block block = world.getWorld().getBlockAt(pointer.getPos().getX(), pointer.getPos().getY(), pointer.getPos().getZ());
|
org.bukkit.block.Block block = CraftBlock.at(world, pointer.pos());
|
||||||
@@ -0,0 +0,0 @@ public class ArmorItem extends Item implements Equipable {
|
@@ -0,0 +0,0 @@ public class ArmorItem extends Item implements Equipable {
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -494,7 +472,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
|||||||
// EntityMinecartAbstract entityminecartabstract = EntityMinecartAbstract.createMinecart(worldserver, d0, d1 + d3, d2, ((ItemMinecart) itemstack.getItem()).type);
|
// EntityMinecartAbstract entityminecartabstract = EntityMinecartAbstract.createMinecart(worldserver, d0, d1 + d3, d2, ((ItemMinecart) itemstack.getItem()).type);
|
||||||
- ItemStack itemstack1 = stack.split(1);
|
- ItemStack itemstack1 = stack.split(1);
|
||||||
+ ItemStack itemstack1 = stack.copyWithCount(1); // Paper - shrink below and single item in event
|
+ ItemStack itemstack1 = stack.copyWithCount(1); // Paper - shrink below and single item in event
|
||||||
org.bukkit.block.Block block2 = worldserver.getWorld().getBlockAt(pointer.getPos().getX(), pointer.getPos().getY(), pointer.getPos().getZ());
|
org.bukkit.block.Block block2 = CraftBlock.at(worldserver, pointer.pos());
|
||||||
CraftItemStack craftItem = CraftItemStack.asCraftMirror(itemstack1);
|
CraftItemStack craftItem = CraftItemStack.asCraftMirror(itemstack1);
|
||||||
|
|
||||||
@@ -0,0 +0,0 @@ public class MinecartItem extends Item {
|
@@ -0,0 +0,0 @@ public class MinecartItem extends Item {
|
@ -18,6 +18,6 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
|||||||
if (!engine.isSameThread()) {
|
if (!engine.isSameThread()) {
|
||||||
- engine.executeIfPossible(() -> {
|
- engine.executeIfPossible(() -> {
|
||||||
+ engine.execute(() -> { // Paper - Fix preemptive player kick on a server shutdown.
|
+ engine.execute(() -> { // Paper - Fix preemptive player kick on a server shutdown.
|
||||||
packetProcessing.push(listener); // Paper - detailed watchdog information
|
if (MinecraftServer.getServer().hasStopped() || (listener instanceof ServerCommonPacketListenerImpl && ((ServerCommonPacketListenerImpl) listener).processedDisconnect)) return; // CraftBukkit, MC-142590
|
||||||
try { // Paper - detailed watchdog information
|
if (listener.shouldHandleMessage(packet)) {
|
||||||
if (MinecraftServer.getServer().hasStopped() || (listener instanceof ServerGamePacketListenerImpl && ((ServerGamePacketListenerImpl) listener).processedDisconnect)) return; // CraftBukkit, MC-142590
|
co.aikar.timings.Timing timing = co.aikar.timings.MinecraftTimings.getPacketTiming(packet); // Paper - timings
|
@ -40,7 +40,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
|||||||
@@ -0,0 +0,0 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
@@ -0,0 +0,0 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
||||||
absorptionAmount = 0;
|
absorptionAmount = 0;
|
||||||
}
|
}
|
||||||
this.setAbsorptionAmount(absorptionAmount);
|
this.internalSetAbsorptionAmount(absorptionAmount);
|
||||||
+
|
+
|
||||||
+ if (nbt.contains("Paper.FrictionState")) {
|
+ if (nbt.contains("Paper.FrictionState")) {
|
||||||
+ String fs = nbt.getString("Paper.FrictionState");
|
+ String fs = nbt.getString("Paper.FrictionState");
|
@ -8,9 +8,9 @@ diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListener
|
|||||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||||
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||||
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||||
@@ -0,0 +0,0 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
|
@@ -0,0 +0,0 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
|
||||||
|
|
||||||
this.resetPlayerChatState(remotechatsession_a.validate(this.player.getGameProfile(), signaturevalidator, Duration.ZERO));
|
this.resetPlayerChatState(remotechatsession_a.validate(this.player.getGameProfile(), signaturevalidator));
|
||||||
} catch (ProfilePublicKey.ValidationException profilepublickey_b) {
|
} catch (ProfilePublicKey.ValidationException profilepublickey_b) {
|
||||||
- ServerGamePacketListenerImpl.LOGGER.error("Failed to validate profile key: {}", profilepublickey_b.getMessage());
|
- ServerGamePacketListenerImpl.LOGGER.error("Failed to validate profile key: {}", profilepublickey_b.getMessage());
|
||||||
+ // ServerGamePacketListenerImpl.LOGGER.error("Failed to validate profile key: {}", profilepublickey_b.getMessage()); // Paper - unnecessary log
|
+ // ServerGamePacketListenerImpl.LOGGER.error("Failed to validate profile key: {}", profilepublickey_b.getMessage()); // Paper - unnecessary log
|
||||||
@ -31,7 +31,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
|||||||
+ continue;
|
+ continue;
|
||||||
+ }
|
+ }
|
||||||
+ // Paper end
|
+ // Paper end
|
||||||
if (string.equals(string.toLowerCase(Locale.ROOT))) {
|
if (ResourceLocation.isValidNamespace(string)) {
|
||||||
set.add(string);
|
set.add(string);
|
||||||
} else {
|
} else {
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/legacy/CraftLegacy.java b/src/main/java/org/bukkit/craftbukkit/legacy/CraftLegacy.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/legacy/CraftLegacy.java b/src/main/java/org/bukkit/craftbukkit/legacy/CraftLegacy.java
|
@ -19,7 +19,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
|||||||
+ public boolean updateTrades(int amount) {
|
+ public boolean updateTrades(int amount) {
|
||||||
+ // Paper end
|
+ // Paper end
|
||||||
VillagerData villagerdata = this.getVillagerData();
|
VillagerData villagerdata = this.getVillagerData();
|
||||||
Int2ObjectMap<VillagerTrades.ItemListing[]> int2objectmap = (Int2ObjectMap) VillagerTrades.TRADES.get(villagerdata.getProfession());
|
Int2ObjectMap int2objectmap;
|
||||||
|
|
||||||
@@ -0,0 +0,0 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
@@ -0,0 +0,0 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||||
if (avillagertrades_imerchantrecipeoption != null) {
|
if (avillagertrades_imerchantrecipeoption != null) {
|
@ -85,11 +85,11 @@ diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListener
|
|||||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||||
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||||
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||||
@@ -0,0 +0,0 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
|
@@ -0,0 +0,0 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
|
||||||
|
|
||||||
// Entity in bucket - SPIGOT-4048 and SPIGOT-6859a
|
// Entity in bucket - SPIGOT-4048 and SPIGOT-6859a
|
||||||
if ((entity instanceof Bucketable && entity instanceof LivingEntity && origItem != null && origItem.asItem() == Items.WATER_BUCKET) && (event.isCancelled() || ServerGamePacketListenerImpl.this.player.getInventory().getSelected() == null || ServerGamePacketListenerImpl.this.player.getInventory().getSelected().getItem() != origItem)) {
|
if ((entity instanceof Bucketable && entity instanceof LivingEntity && origItem != null && origItem.asItem() == Items.WATER_BUCKET) && (event.isCancelled() || ServerGamePacketListenerImpl.this.player.getInventory().getSelected() == null || ServerGamePacketListenerImpl.this.player.getInventory().getSelected().getItem() != origItem)) {
|
||||||
- ServerGamePacketListenerImpl.this.send(new ClientboundAddEntityPacket(entity));
|
- send(new ClientboundAddEntityPacket(entity));
|
||||||
+ entity.getEntityData().resendPossiblyDesyncedEntity(player); // Paper - The entire mob gets deleted, so resend it.
|
+ entity.getEntityData().resendPossiblyDesyncedEntity(player); // Paper - The entire mob gets deleted, so resend it.
|
||||||
player.containerMenu.sendAllDataToRemote();
|
player.containerMenu.sendAllDataToRemote();
|
||||||
}
|
}
|
@ -0,0 +1,32 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Jake Potrebic <jake.m.potrebic@gmail.com>
|
||||||
|
Date: Thu, 23 Jun 2022 19:25:51 -0700
|
||||||
|
Subject: [PATCH] Track projectile source for fireworks from dispensers
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/build.gradle.kts b/build.gradle.kts
|
||||||
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||||
|
--- a/build.gradle.kts
|
||||||
|
+++ b/build.gradle.kts
|
||||||
|
@@ -0,0 +0,0 @@ dependencies {
|
||||||
|
all its classes to check if they are plugins.
|
||||||
|
Scanning takes about 1-2 seconds so adding this speeds up the server start.
|
||||||
|
*/
|
||||||
|
- implementation("org.apache.logging.log4j:log4j-core:2.19.0") // Paper - implementation
|
||||||
|
+ implementation("org.apache.logging.log4j:log4j-core:2.19.0")
|
||||||
|
+ implementation(project(mapOf("path" to ":paper-api"))) // Paper - implementation
|
||||||
|
log4jPlugins.annotationProcessorConfigurationName("org.apache.logging.log4j:log4j-core:2.19.0") // Paper - Needed to generate meta for our Log4j plugins
|
||||||
|
runtimeOnly(log4jPlugins.output)
|
||||||
|
alsoShade(log4jPlugins.output)
|
||||||
|
diff --git a/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java b/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java
|
||||||
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||||
|
--- a/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java
|
||||||
|
+++ b/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java
|
||||||
|
@@ -0,0 +0,0 @@ public interface DispenseItemBehavior {
|
||||||
|
itemstack1 = CraftItemStack.asNMSCopy(event.getItem());
|
||||||
|
Vec3 vec3d = DispenseItemBehavior.getEntityPokingOutOfBlockPos(pointer, EntityType.FIREWORK_ROCKET, enumdirection);
|
||||||
|
FireworkRocketEntity entityfireworks = new FireworkRocketEntity(pointer.level(), itemstack1, vec3d.x(), vec3d.y(), vec3d.z(), true); // Paper - GH-2871 - fix last firework in stack having no effects when dispensed
|
||||||
|
+ entityfireworks.projectileSource = new org.bukkit.craftbukkit.projectiles.CraftBlockProjectileSource(pointer.blockEntity()); // Paper - track projectile source for fireworks
|
||||||
|
|
||||||
|
entityfireworks.shoot((double) enumdirection.getStepX(), (double) enumdirection.getStepY(), (double) enumdirection.getStepZ(), 0.5F, 1.0F);
|
||||||
|
pointer.level().addFreshEntity(entityfireworks);
|
@ -1,18 +0,0 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jake Potrebic <jake.m.potrebic@gmail.com>
|
|
||||||
Date: Thu, 23 Jun 2022 19:25:51 -0700
|
|
||||||
Subject: [PATCH] Track projectile source for fireworks from dispensers
|
|
||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java b/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java
|
|
||||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
||||||
--- a/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java
|
|
||||||
+++ b/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java
|
|
||||||
@@ -0,0 +0,0 @@ public interface DispenseItemBehavior {
|
|
||||||
|
|
||||||
itemstack1 = CraftItemStack.asNMSCopy(event.getItem());
|
|
||||||
FireworkRocketEntity entityfireworks = new FireworkRocketEntity(pointer.getLevel(), itemstack1, pointer.x(), pointer.y(), pointer.x(), true); // Paper - GH-2871 - fix last firework in stack having no effects when dispensed
|
|
||||||
+ entityfireworks.projectileSource = new org.bukkit.craftbukkit.projectiles.CraftBlockProjectileSource(pointer.getEntity()); // Paper - track projectile source for fireworks
|
|
||||||
|
|
||||||
DispenseItemBehavior.setEntityPokingOutOfBlock(pointer, entityfireworks, enumdirection);
|
|
||||||
entityfireworks.shoot((double) enumdirection.getStepX(), (double) enumdirection.getStepY(), (double) enumdirection.getStepZ(), 0.5F, 1.0F);
|
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren