Update to Minecraft 1.20

By: md_5 <git@md-5.net>
This commit is contained in:
CraftBukkit/Spigot
2023-06-08 01:30:00 +10:00
parent bac55e67d6
commit 9d740b84b0
269 changed files with 2605 additions and 2568 deletions

View File

@@ -489,7 +489,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
if (entity instanceof EntityArrow) {
return ((EntityArrow) entity).inGround;
}
return entity.isOnGround();
return entity.onGround();
}
@Override
@@ -499,7 +499,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
@Override
public World getWorld() {
return entity.level.getWorld();
return entity.level().getWorld();
}
@Override
@@ -564,7 +564,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
public List<org.bukkit.entity.Entity> getNearbyEntities(double x, double y, double z) {
Preconditions.checkState(!entity.generation, "Cannot get nearby entities during world generation");
List<Entity> notchEntityList = entity.level.getEntities(entity, entity.getBoundingBox().inflate(x, y, z), Predicates.alwaysTrue());
List<Entity> notchEntityList = entity.level().getEntities(entity, entity.getBoundingBox().inflate(x, y, z), Predicates.alwaysTrue());
List<org.bukkit.entity.Entity> bukkitEntityList = new java.util.ArrayList<org.bukkit.entity.Entity>(notchEntityList.size());
for (Entity e : notchEntityList) {
@@ -768,7 +768,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
Preconditions.checkState(!entity.generation, "Cannot play effect during world generation");
if (type.getApplicable().isInstance(this)) {
this.getHandle().level.broadcastEntityEvent(getHandle(), type.getData());
this.getHandle().level().broadcastEntityEvent(getHandle(), type.getData());
}
}

View File

@@ -156,7 +156,7 @@ public class CraftFishHook extends CraftProjectile implements FishHook {
EntityFishingHook hook = getHandle();
if (this.biteChance == -1) {
if (hook.level.isRainingAt(BlockPosition.containing(hook.position()).offset(0, 1, 0))) {
if (hook.level().isRainingAt(BlockPosition.containing(hook.position()).offset(0, 1, 0))) {
return 1 / 300.0;
}
return 1 / 500.0;

View File

@@ -138,7 +138,7 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
Preconditions.checkArgument(location.getWorld().equals(getWorld()), "Cannot sleep across worlds");
BlockPosition blockposition = CraftLocation.toBlockPosition(location);
IBlockData iblockdata = getHandle().level.getBlockState(blockposition);
IBlockData iblockdata = getHandle().level().getBlockState(blockposition);
if (!(iblockdata.getBlock() instanceof BlockBed)) {
return false;
}
@@ -149,7 +149,7 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
// From BlockBed
iblockdata = iblockdata.setValue(BlockBed.OCCUPIED, true);
getHandle().level.setBlock(blockposition, iblockdata, 4);
getHandle().level().setBlock(blockposition, iblockdata, 4);
return true;
}
@@ -296,7 +296,7 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
if (iinventory instanceof TileEntity) {
TileEntity te = (TileEntity) iinventory;
if (!te.hasLevel()) {
te.setLevel(getHandle().level);
te.setLevel(getHandle().level());
}
}
}
@@ -341,7 +341,7 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
return null;
}
}
getHandle().openMenu(((BlockWorkbench) Blocks.CRAFTING_TABLE).getMenuProvider(null, getHandle().level, CraftLocation.toBlockPosition(location)));
getHandle().openMenu(((BlockWorkbench) Blocks.CRAFTING_TABLE).getMenuProvider(null, getHandle().level(), CraftLocation.toBlockPosition(location)));
if (force) {
getHandle().containerMenu.checkReachable = false;
}
@@ -362,7 +362,7 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
// If there isn't an enchant table we can force create one, won't be very useful though.
BlockPosition pos = CraftLocation.toBlockPosition(location);
getHandle().openMenu(((BlockEnchantmentTable) Blocks.ENCHANTING_TABLE).getMenuProvider(null, getHandle().level, pos));
getHandle().openMenu(((BlockEnchantmentTable) Blocks.ENCHANTING_TABLE).getMenuProvider(null, getHandle().level(), pos));
if (force) {
getHandle().containerMenu.checkReachable = false;
@@ -544,7 +544,7 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
private Collection<IRecipe<?>> bukkitKeysToMinecraftRecipes(Collection<NamespacedKey> recipeKeys) {
Collection<IRecipe<?>> recipes = new ArrayList<>();
CraftingManager manager = getHandle().level.getServer().getRecipeManager();
CraftingManager manager = getHandle().level().getServer().getRecipeManager();
for (NamespacedKey recipeKey : recipeKeys) {
Optional<? extends IRecipe<?>> recipe = manager.byKey(CraftNamespacedKey.toMinecraft(recipeKey));
@@ -561,7 +561,7 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
@Override
public org.bukkit.entity.Entity getShoulderEntityLeft() {
if (!getHandle().getShoulderEntityLeft().isEmpty()) {
Optional<Entity> shoulder = EntityTypes.create(getHandle().getShoulderEntityLeft(), getHandle().level);
Optional<Entity> shoulder = EntityTypes.create(getHandle().getShoulderEntityLeft(), getHandle().level());
return (!shoulder.isPresent()) ? null : shoulder.get().getBukkitEntity();
}
@@ -580,7 +580,7 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
@Override
public org.bukkit.entity.Entity getShoulderEntityRight() {
if (!getHandle().getShoulderEntityRight().isEmpty()) {
Optional<Entity> shoulder = EntityTypes.create(getHandle().getShoulderEntityRight(), getHandle().level);
Optional<Entity> shoulder = EntityTypes.create(getHandle().getShoulderEntityRight(), getHandle().level());
return (!shoulder.isPresent()) ? null : shoulder.get().getBukkitEntity();
}
@@ -681,8 +681,8 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
Preconditions.checkArgument(fireworkItemStack != null, "fireworkItemStack must not be null");
Preconditions.checkArgument(fireworkItemStack.getType() == Material.FIREWORK_ROCKET, "fireworkItemStack must be of type %s", Material.FIREWORK_ROCKET);
EntityFireworks fireworks = new EntityFireworks(getHandle().level, CraftItemStack.asNMSCopy(fireworkItemStack), getHandle());
boolean success = getHandle().level.addFreshEntity(fireworks, SpawnReason.CUSTOM);
EntityFireworks fireworks = new EntityFireworks(getHandle().level(), CraftItemStack.asNMSCopy(fireworkItemStack), getHandle());
boolean success = getHandle().level().addFreshEntity(fireworks, SpawnReason.CUSTOM);
return success ? (Firework) fireworks.getBukkitEntity() : null;
}
}

View File

@@ -48,7 +48,7 @@ public class CraftItemFrame extends CraftHanging implements ItemFrame {
// update redstone
if (!getHandle().generation) {
getHandle().getLevel().updateNeighbourForOutputSignal(getHandle().pos, Blocks.AIR);
getHandle().level().updateNeighbourForOutputSignal(getHandle().pos, Blocks.AIR);
}
}

View File

@@ -85,6 +85,7 @@ import net.minecraft.world.inventory.Container;
import net.minecraft.world.item.EnumColor;
import net.minecraft.world.level.EnumGamemode;
import net.minecraft.world.level.block.Blocks;
import net.minecraft.world.level.block.entity.SignText;
import net.minecraft.world.level.block.entity.TileEntitySign;
import net.minecraft.world.level.block.state.IBlockData;
import net.minecraft.world.level.border.IWorldBorderListener;
@@ -148,7 +149,6 @@ import org.bukkit.entity.Player;
import org.bukkit.event.player.PlayerExpCooldownChangeEvent;
import org.bukkit.event.player.PlayerHideEntityEvent;
import org.bukkit.event.player.PlayerRegisterChannelEvent;
import org.bukkit.event.player.PlayerRespawnEvent.RespawnReason;
import org.bukkit.event.player.PlayerShowEntityEvent;
import org.bukkit.event.player.PlayerSpawnChangeEvent;
import org.bukkit.event.player.PlayerTeleportEvent;
@@ -644,7 +644,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
@Override
public void sendBlockChanges(Collection<BlockState> blocks, boolean suppressLightUpdates) {
public void sendBlockChanges(Collection<BlockState> blocks) {
Preconditions.checkArgument(blocks != null, "blocks must not be null");
if (getHandle().connection == null || blocks.isEmpty()) {
@@ -669,11 +669,16 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
// Construct the packets using the data allocated above and send then to the players
for (Map.Entry<SectionPosition, ChunkSectionChanges> entry : changes.entrySet()) {
ChunkSectionChanges chunkChanges = entry.getValue();
PacketPlayOutMultiBlockChange packet = new PacketPlayOutMultiBlockChange(entry.getKey(), chunkChanges.positions(), chunkChanges.blockData().toArray(IBlockData[]::new), suppressLightUpdates);
PacketPlayOutMultiBlockChange packet = new PacketPlayOutMultiBlockChange(entry.getKey(), chunkChanges.positions(), chunkChanges.blockData().toArray(IBlockData[]::new));
getHandle().connection.send(packet);
}
}
@Override
public void sendBlockChanges(Collection<BlockState> blocks, boolean suppressLightUpdates) {
this.sendBlockChanges(blocks);
}
private record ChunkSectionChanges(ShortSet positions, List<IBlockData> blockData) {
public ChunkSectionChanges() {
@@ -736,10 +741,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
IChatBaseComponent[] components = CraftSign.sanitizeLines(lines);
TileEntitySign sign = new TileEntitySign(CraftLocation.toBlockPosition(loc), Blocks.OAK_SIGN.defaultBlockState());
sign.setColor(EnumColor.byId(dyeColor.getWoolData()));
sign.setHasGlowingText(hasGlowingText);
SignText text = sign.getFrontText();
text.setColor(EnumColor.byId(dyeColor.getWoolData()));
text.setHasGlowingText(hasGlowingText);
for (int i = 0; i < components.length; i++) {
sign.setMessage(i, components[i]);
text.setMessage(i, components[i]);
}
getHandle().connection.send(sign.getUpdatePacket());
@@ -1368,7 +1374,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
private void untrackAndHideEntity(org.bukkit.entity.Entity entity) {
// Remove this entity from the hidden player's EntityTrackerEntry
PlayerChunkMap tracker = ((WorldServer) getHandle().level).getChunkSource().chunkMap;
PlayerChunkMap tracker = ((WorldServer) getHandle().level()).getChunkSource().chunkMap;
Entity other = ((CraftEntity) entity).getHandle();
PlayerChunkMap.EntityTracker entry = tracker.entityMap.get(other.getId());
if (entry != null) {
@@ -1448,7 +1454,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
private void trackAndShowEntity(org.bukkit.entity.Entity entity) {
PlayerChunkMap tracker = ((WorldServer) getHandle().level).getChunkSource().chunkMap;
PlayerChunkMap tracker = ((WorldServer) getHandle().level()).getChunkSource().chunkMap;
Entity other = ((CraftEntity) entity).getHandle();
if (other instanceof EntityPlayer) {

View File

@@ -1,7 +1,6 @@
package org.bukkit.craftbukkit.entity;
import com.google.common.base.Preconditions;
import net.minecraft.core.BlockPosition;
import net.minecraft.world.entity.raid.EntityRaider;
import org.bukkit.Sound;
import org.bukkit.block.Block;
@@ -28,7 +27,7 @@ public abstract class CraftRaider extends CraftMonster implements Raider {
@Override
public Block getPatrolTarget() {
return getHandle().getPatrolTarget() == null ? null : CraftBlock.at(getHandle().level, getHandle().getPatrolTarget());
return getHandle().getPatrolTarget() == null ? null : CraftBlock.at(getHandle().level(), getHandle().getPatrolTarget());
}
@Override

View File

@@ -34,7 +34,7 @@ public class CraftSniffer extends CraftAnimals implements Sniffer {
@Override
public Collection<Location> getExploredLocations() {
return this.getHandle().getExploredPositions().map(blockPosition -> CraftLocation.toBukkit(blockPosition, this.getLocation().getWorld())).collect(Collectors.toList());
return this.getHandle().getExploredPositions().map(blockPosition -> CraftLocation.toBukkit(blockPosition.pos(), this.server.getServer().getLevel(blockPosition.dimension()))).collect(Collectors.toList());
}
@Override
@@ -79,19 +79,19 @@ public class CraftSniffer extends CraftAnimals implements Sniffer {
return this.getHandle().canDig();
}
private net.minecraft.world.entity.animal.sniffer.Sniffer.a stateToNMS(Sniffer.State state) {
private net.minecraft.world.entity.animal.sniffer.Sniffer.State stateToNMS(Sniffer.State state) {
return switch (state) {
case IDLING -> net.minecraft.world.entity.animal.sniffer.Sniffer.a.IDLING;
case FEELING_HAPPY -> net.minecraft.world.entity.animal.sniffer.Sniffer.a.FEELING_HAPPY;
case SCENTING -> net.minecraft.world.entity.animal.sniffer.Sniffer.a.SCENTING;
case SNIFFING -> net.minecraft.world.entity.animal.sniffer.Sniffer.a.SNIFFING;
case SEARCHING -> net.minecraft.world.entity.animal.sniffer.Sniffer.a.SEARCHING;
case DIGGING -> net.minecraft.world.entity.animal.sniffer.Sniffer.a.DIGGING;
case RISING -> net.minecraft.world.entity.animal.sniffer.Sniffer.a.RISING;
case IDLING -> net.minecraft.world.entity.animal.sniffer.Sniffer.State.IDLING;
case FEELING_HAPPY -> net.minecraft.world.entity.animal.sniffer.Sniffer.State.FEELING_HAPPY;
case SCENTING -> net.minecraft.world.entity.animal.sniffer.Sniffer.State.SCENTING;
case SNIFFING -> net.minecraft.world.entity.animal.sniffer.Sniffer.State.SNIFFING;
case SEARCHING -> net.minecraft.world.entity.animal.sniffer.Sniffer.State.SEARCHING;
case DIGGING -> net.minecraft.world.entity.animal.sniffer.Sniffer.State.DIGGING;
case RISING -> net.minecraft.world.entity.animal.sniffer.Sniffer.State.RISING;
};
}
private Sniffer.State stateToBukkit(net.minecraft.world.entity.animal.sniffer.Sniffer.a state) {
private Sniffer.State stateToBukkit(net.minecraft.world.entity.animal.sniffer.Sniffer.State state) {
return switch (state) {
case IDLING -> Sniffer.State.IDLING;
case FEELING_HAPPY -> Sniffer.State.FEELING_HAPPY;

View File

@@ -102,7 +102,7 @@ public class CraftVillager extends CraftAbstractVillager implements Villager {
Preconditions.checkState(!getHandle().generation, "Cannot sleep during world generation");
BlockPosition position = CraftLocation.toBlockPosition(location);
IBlockData iblockdata = getHandle().level.getBlockState(position);
IBlockData iblockdata = getHandle().level().getBlockState(position);
if (!(iblockdata.getBlock() instanceof BlockBed)) {
return false;
}
@@ -126,7 +126,7 @@ public class CraftVillager extends CraftAbstractVillager implements Villager {
@Override
public ZombieVillager zombify() {
EntityZombieVillager entityzombievillager = EntityZombie.zombifyVillager(getHandle().level.getMinecraftWorld(), getHandle(), getHandle().blockPosition(), isSilent(), CreatureSpawnEvent.SpawnReason.CUSTOM);
EntityZombieVillager entityzombievillager = EntityZombie.zombifyVillager(getHandle().level().getMinecraftWorld(), getHandle(), getHandle().blockPosition(), isSilent(), CreatureSpawnEvent.SpawnReason.CUSTOM);
return (entityzombievillager != null) ? (ZombieVillager) entityzombievillager.getBukkitEntity() : null;
}

View File

@@ -58,7 +58,7 @@ public class CraftWither extends CraftMonster implements Wither {
if (entityId == 0) {
return null;
}
Entity target = getHandle().getLevel().getEntity(entityId);
Entity target = getHandle().level().getEntity(entityId);
return (target != null) ? (LivingEntity) target.getBukkitEntity() : null;
}