This commit is contained in:
Owen1212055 2024-10-23 10:08:40 -04:00
parent 4ed93c52b4
commit e486dd7445
15 changed files with 14 additions and 24 deletions

View file

@ -60,9 +60,9 @@ diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java b/sr
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java
@@ -0,0 +0,0 @@ import org.bukkit.entity.Villager; @@ -0,0 +0,0 @@ import org.bukkit.entity.ZombieVillager;
import org.bukkit.entity.ZombieVillager;
import org.bukkit.event.entity.CreatureSpawnEvent; import org.bukkit.event.entity.CreatureSpawnEvent;
import org.bukkit.event.entity.EntityTransformEvent;
+// Paper start +// Paper start
+import com.destroystokyo.paper.entity.villager.Reputation; +import com.destroystokyo.paper.entity.villager.Reputation;

View file

@ -10,10 +10,10 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
--- a/src/main/java/net/minecraft/world/entity/raid/Raider.java --- a/src/main/java/net/minecraft/world/entity/raid/Raider.java
+++ b/src/main/java/net/minecraft/world/entity/raid/Raider.java +++ b/src/main/java/net/minecraft/world/entity/raid/Raider.java
@@ -0,0 +0,0 @@ public abstract class Raider extends PatrollingMonster { @@ -0,0 +0,0 @@ public abstract class Raider extends PatrollingMonster {
}
@Override private boolean cannotPickUpBanner() {
public boolean canUse() {
+ if (!this.mob.level().getGameRules().getBoolean(net.minecraft.world.level.GameRules.RULE_MOBGRIEFING) || !this.mob.canPickUpLoot()) return false; // Paper - respect game and entity rules for picking up items + if (!this.mob.level().getGameRules().getBoolean(net.minecraft.world.level.GameRules.RULE_MOBGRIEFING) || !this.mob.canPickUpLoot()) return false; // Paper - respect game and entity rules for picking up items
Raid raid = this.mob.getCurrentRaid(); if (!this.mob.hasActiveRaid()) {
return true;
if (this.mob.hasActiveRaid() && !this.mob.getCurrentRaid().isOver() && this.mob.canBeLeader() && !ItemStack.matches(this.mob.getItemBySlot(EquipmentSlot.HEAD), Raid.getLeaderBannerInstance(this.mob.registryAccess().lookupOrThrow(Registries.BANNER_PATTERN)))) { } else if (this.mob.getCurrentRaid().isOver()) {

View file

@ -36,7 +36,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
--- a/src/main/java/net/minecraft/world/level/block/piston/PistonBaseBlock.java --- a/src/main/java/net/minecraft/world/level/block/piston/PistonBaseBlock.java
+++ b/src/main/java/net/minecraft/world/level/block/piston/PistonBaseBlock.java +++ b/src/main/java/net/minecraft/world/level/block/piston/PistonBaseBlock.java
@@ -0,0 +0,0 @@ public class PistonBaseBlock extends DirectionalBlock { @@ -0,0 +0,0 @@ public class PistonBaseBlock extends DirectionalBlock {
} BlockState iblockdata2;
for (j = list.size() - 1; j >= 0; --j) { for (j = list.size() - 1; j >= 0; --j) {
- blockposition3 = (BlockPos) list.get(j); - blockposition3 = (BlockPos) list.get(j);
@ -48,16 +48,14 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
+ // Paper end - fix a variety of piston desync dupes + // Paper end - fix a variety of piston desync dupes
blockposition3 = blockposition3.relative(enumdirection1); blockposition3 = blockposition3.relative(enumdirection1);
map.remove(blockposition3); map.remove(blockposition3);
BlockState iblockdata2 = (BlockState) Blocks.MOVING_PISTON.defaultBlockState().setValue(PistonBaseBlock.FACING, dir); iblockdata2 = (BlockState) Blocks.MOVING_PISTON.defaultBlockState().setValue(PistonBaseBlock.FACING, dir);
world.setBlock(blockposition3, iblockdata2, 68); world.setBlock(blockposition3, iblockdata2, 68);
- world.setBlockEntity(MovingPistonBlock.newMovingBlockEntity(blockposition3, iblockdata2, (BlockState) list1.get(j), dir, retract, false));
+ // Paper start - fix a variety of piston desync dupes + // Paper start - fix a variety of piston desync dupes
+ if (!allowDesync) { + if (!allowDesync) {
+ iblockdata1 = world.getBlockState(oldPos); + iblockdata1 = world.getBlockState(oldPos);
+ map.replace(oldPos, iblockdata1); + map.replace(oldPos, iblockdata1);
+ } + }
+ world.setBlockEntity(MovingPistonBlock.newMovingBlockEntity(blockposition3, iblockdata2, allowDesync ? list1.get(j) : iblockdata1, dir, retract, false)); world.setBlockEntity(MovingPistonBlock.newMovingBlockEntity(blockposition3, iblockdata2, (BlockState) list1.get(j), dir, extend, false));
+ if (!allowDesync) { + if (!allowDesync) {
+ world.setBlock(oldPos, Blocks.AIR.defaultBlockState(), Block.UPDATE_CLIENTS | Block.UPDATE_KNOWN_SHAPE | Block.UPDATE_MOVE_BY_PISTON | 1024); // set air to prevent later physics updates from seeing this block + world.setBlock(oldPos, Blocks.AIR.defaultBlockState(), Block.UPDATE_CLIENTS | Block.UPDATE_KNOWN_SHAPE | Block.UPDATE_MOVE_BY_PISTON | 1024); // set air to prevent later physics updates from seeing this block
+ } + }

View file

@ -762,7 +762,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
--- a/src/main/java/net/minecraft/world/entity/ai/goal/Goal.java --- a/src/main/java/net/minecraft/world/entity/ai/goal/Goal.java
+++ b/src/main/java/net/minecraft/world/entity/ai/goal/Goal.java +++ b/src/main/java/net/minecraft/world/entity/ai/goal/Goal.java
@@ -0,0 +0,0 @@ public abstract class Goal { @@ -0,0 +0,0 @@ public abstract class Goal {
return Mth.positiveCeilDiv(serverTicks, 2); return (ServerLevel)world;
} }
+ // Paper start - Mob goal api + // Paper start - Mob goal api

View file

@ -18,7 +18,7 @@ diff --git a/src/main/java/net/minecraft/world/item/MapItem.java b/src/main/java
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
--- a/src/main/java/net/minecraft/world/item/MapItem.java --- a/src/main/java/net/minecraft/world/item/MapItem.java
+++ b/src/main/java/net/minecraft/world/item/MapItem.java +++ b/src/main/java/net/minecraft/world/item/MapItem.java
@@ -0,0 +0,0 @@ public class MapItem extends ComplexItem { @@ -0,0 +0,0 @@ public class MapItem extends Item {
int r = (j / i + o - 64) * i; int r = (j / i + o - 64) * i;
int s = (k / i + p - 64) * i; int s = (k / i + p - 64) * i;
Multiset<MapColor> multiset = LinkedHashMultiset.create(); Multiset<MapColor> multiset = LinkedHashMultiset.create();

View file

@ -11,14 +11,6 @@ diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
@@ -0,0 +0,0 @@ import net.minecraft.nbt.CompoundTag;
import net.minecraft.network.chat.Component;
import net.minecraft.network.protocol.game.ClientboundOpenScreenPacket;
import net.minecraft.network.protocol.game.ServerboundContainerClosePacket;
+import net.minecraft.server.level.ServerLevel;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.world.MenuProvider;
import net.minecraft.world.entity.Entity;
@@ -0,0 +0,0 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { @@ -0,0 +0,0 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
return this.getHandle().sleepCounter; return this.getHandle().sleepCounter;
} }
@ -32,7 +24,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
+ return null; + return null;
+ } + }
+ +
+ ServerLevel worldServer = handle.server.getLevel(handle.getRespawnDimension()); + net.minecraft.server.level.ServerLevel worldServer = handle.server.getLevel(handle.getRespawnDimension());
+ if (worldServer == null) { + if (worldServer == null) {
+ return null; + return null;
+ } + }

View file

@ -9,7 +9,7 @@ diff --git a/src/main/java/net/minecraft/world/item/MapItem.java b/src/main/java
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
--- a/src/main/java/net/minecraft/world/item/MapItem.java --- a/src/main/java/net/minecraft/world/item/MapItem.java
+++ b/src/main/java/net/minecraft/world/item/MapItem.java +++ b/src/main/java/net/minecraft/world/item/MapItem.java
@@ -0,0 +0,0 @@ public class MapItem extends ComplexItem { @@ -0,0 +0,0 @@ public class MapItem extends Item {
for (int n = 0; n < 128; n++) { for (int n = 0; n < 128; n++) {
for (int o = 0; o < 128; o++) { for (int o = 0; o < 128; o++) {