Somehow a bunch of items were missed

This commit is contained in:
Jake Potrebic
2024-12-14 22:35:35 -08:00
parent 35afd218f5
commit 172a80cb66
25 changed files with 475 additions and 25 deletions

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/world/level/BaseSpawner.java
+++ b/net/minecraft/world/level/BaseSpawner.java
@@ -44,9 +_,11 @@
@@ -44,13 +_,15 @@
public int maxNearbyEntities = 6;
public int requiredPlayerRange = 16;
public int spawnRange = 4;
@@ -12,6 +12,11 @@
}
public boolean isNearPlayer(Level level, BlockPos pos) {
- return level.hasNearbyAlivePlayer(pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, this.requiredPlayerRange);
+ return level.hasNearbyAlivePlayerThatAffectsSpawning(pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, this.requiredPlayerRange); // Paper - Affects Spawning API
}
public void clientTick(Level level, BlockPos pos) {
@@ -73,13 +_,19 @@
}
@@ -72,7 +77,7 @@
+ if (mob.level().spigotConfig.nerfSpawnerMobs) {
+ mob.aware = false;
+ }
+ // Spigot End
+ // Spigot End
}
- if (!serverLevel.tryAddFreshEntityWithPassengers(entity)) {

View File

@@ -1,28 +1,30 @@
--- a/net/minecraft/world/level/block/entity/BeaconBlockEntity.java
+++ b/net/minecraft/world/level/block/entity/BeaconBlockEntity.java
@@ -106,6 +_,51 @@
@@ -106,6 +_,53 @@
return 3;
}
};
+ // CraftBukkit start - add fields and methods
+ @Nullable
+ public org.bukkit.potion.PotionEffect getPrimaryEffect() {
+ return (this.primaryPower != null)
+ ? org.bukkit.craftbukkit.potion.CraftPotionUtil.toBukkit(new MobEffectInstance(
+ this.primaryPower,
+ BeaconBlockEntity.getLevel(this.levels),
+ BeaconBlockEntity.getAmplification(this.levels, this.primaryPower, this.secondaryPower),
+ BeaconBlockEntity.computeEffectDuration(this.levels),
+ BeaconBlockEntity.computeEffectAmplifier(this.levels, this.primaryPower, this.secondaryPower),
+ true,
+ true
+ ))
+ : null;
+ }
+
+ @Nullable
+ public org.bukkit.potion.PotionEffect getSecondaryEffect() {
+ return (BeaconBlockEntity.hasSecondaryEffect(this.levels, this.primaryPower, this.secondaryPower))
+ ? org.bukkit.craftbukkit.potion.CraftPotionUtil.toBukkit(new MobEffectInstance(
+ this.secondaryPower,
+ BeaconBlockEntity.getLevel(this.levels),
+ BeaconBlockEntity.getAmplification(this.levels, this.primaryPower, this.secondaryPower),
+ BeaconBlockEntity.computeEffectDuration(this.levels),
+ BeaconBlockEntity.computeEffectAmplifier(this.levels, this.primaryPower, this.secondaryPower),
+ true,
+ true
+ ))

View File

@@ -12,7 +12,7 @@
+
+ @Override
+ public java.util.List<net.minecraft.world.item.ItemStack> getContents() {
+ return Collections.singletonList(this.item);
+ return java.util.Collections.singletonList(this.item);
+ }
+
+ @Override

View File

@@ -34,7 +34,7 @@
+ // I don't want to know why this is a generic type.
+ Entity entityCasted = (Entity)entity;
+ boolean wasRemoved = entityCasted.isRemoved();
+ boolean screened = ca.spottedleaf.moonrise.common.util.ChunkSystem.screenEntity((net.minecraft.server.level.ServerLevel)entityCasted.level(), entityCasted, existing, true);
+ boolean screened = ca.spottedleaf.moonrise.common.util.ChunkSystem.screenEntity((net.minecraft.server.level.ServerLevel)entityCasted.level(), entityCasted, worldGenSpawned, true);
+ if ((!wasRemoved && entityCasted.isRemoved()) || !screened) {
+ // removed by callback
+ return false;
@@ -107,7 +107,7 @@
this.requestChunkLoad(chunkPosValue);
return false;
} else {
+ if (callEvent) org.bukkit.craftbukkit.event.CraftEventFactory.callEntitiesUnloadEvent(((net.minecraft.world.level.chunk.storage.EntityStorage) this.permanentStorage).level, new ChunkPos(i), list.stream().map(entity -> (Entity) entity).collect(Collectors.toList())); // CraftBukkit
+ if (callEvent) org.bukkit.craftbukkit.event.CraftEventFactory.callEntitiesUnloadEvent(((net.minecraft.world.level.chunk.storage.EntityStorage) this.permanentStorage).level, new ChunkPos(chunkPosValue), list.stream().map(entity -> (Entity) entity).collect(Collectors.toList())); // CraftBukkit
this.permanentStorage.storeEntities(new ChunkEntities<>(new ChunkPos(chunkPosValue), list));
list.forEach(entityAction);
return true;
@@ -149,7 +149,7 @@
this.chunkLoadStatuses.put(chunkEntities.getPos().toLong(), PersistentEntitySectionManager.ChunkLoadStatus.LOADED);
+ // CraftBukkit start - call entity load event
+ List<Entity> entities = this.getEntities(chunkEntities.getPos());
+ org.bukkit.craftbukkit.event.CraftEventFactory.callEntitiesLoadEvent(((net.minecraft.world.level.chunk.storage.EntityStorage) this.permanentStorage).level, chunkentities.getPos(), entities);
+ org.bukkit.craftbukkit.event.CraftEventFactory.callEntitiesLoadEvent(((net.minecraft.world.level.chunk.storage.EntityStorage) this.permanentStorage).level, chunkEntities.getPos(), entities);
+ // CraftBukkit end
}
}