Co-authored-by: Bjarne Koll <git@lynxplay.dev>
Co-authored-by: Jake Potrebic <jake.m.potrebic@gmail.com>
Co-authored-by: Lulu13022002 <41980282+Lulu13022002@users.noreply.github.com>
Co-authored-by: MiniDigger | Martin <admin@minidigger.dev>
Co-authored-by: Nassim Jahnke <nassim@njahnke.dev>
Co-authored-by: Noah van der Aa <ndvdaa@gmail.com>
Co-authored-by: Owen1212055 <23108066+Owen1212055@users.noreply.github.com>
Co-authored-by: Shane Freeder <theboyetronic@gmail.com>
Co-authored-by: Spottedleaf <Spottedleaf@users.noreply.github.com>
Co-authored-by: Tamion <70228790+notTamion@users.noreply.github.com>
Co-authored-by: Warrior <50800980+Warriorrrr@users.noreply.github.com>
This commit is contained in:
Nassim Jahnke
2025-04-12 17:26:44 +02:00
parent 0767902699
commit f00727c57e
2092 changed files with 50551 additions and 48729 deletions

View File

@@ -39,7 +39,7 @@
)) {
+ // Paper start - PreCreatureSpawnEvent
+ final com.destroystokyo.paper.event.entity.PreCreatureSpawnEvent event = new com.destroystokyo.paper.event.entity.PreCreatureSpawnEvent(
+ io.papermc.paper.util.MCUtil.toLocation(level, pos),
+ org.bukkit.craftbukkit.util.CraftLocation.toBukkit(pos, level),
+ org.bukkit.craftbukkit.entity.CraftEntityType.minecraftToBukkit(entityType),
+ reason
+ );

View File

@@ -1,21 +1,21 @@
--- a/net/minecraft/util/datafix/DataFixers.java
+++ b/net/minecraft/util/datafix/DataFixers.java
@@ -505,6 +_,18 @@
@@ -541,6 +_,18 @@
Schema schema44 = builder.addSchema(1456, SAME_NAMESPACED);
builder.addFixer(new EntityItemFrameDirectionFix(schema44, false));
Schema schema45 = builder.addSchema(1458, SAME_NAMESPACED);
Schema schema45 = builder.addSchema(1458, V1458::new);
+ // CraftBukkit start
+ builder.addFixer(new com.mojang.datafixers.DataFix(schema45, false) {
+ @Override
+ protected com.mojang.datafixers.TypeRewriteRule makeRule() {
+ return this.fixTypeEverywhereTyped("Player CustomName", this.getInputSchema().getType(References.PLAYER), (typed) -> {
+ return typed.update(DSL.remainderFinder(), (dynamic) -> {
+ return EntityCustomNameToComponentFix.fixTagCustomName(dynamic);
+ return EntityCustomNameToComponentFix.fixCustomName(dynamic.getOps(), dynamic.get("CustomName").asString(""), "minecraft:player");
+ });
+ });
+ }
+ });
+ // CraftBukkit end
builder.addFixer(new EntityCustomNameToComponentFix(schema45, false));
builder.addFixer(new ItemCustomNameToComponentFix(schema45, false));
builder.addFixer(new BlockEntityCustomNameToComponentFix(schema45, false));
builder.addFixer(new EntityCustomNameToComponentFix(schema45));
builder.addFixer(new ItemCustomNameToComponentFix(schema45));
builder.addFixer(new BlockEntityCustomNameToComponentFix(schema45));

View File

@@ -0,0 +1,39 @@
--- a/net/minecraft/util/parsing/packrat/Scope.java
+++ b/net/minecraft/util/parsing/packrat/Scope.java
@@ -281,4 +_,36 @@
return true;
}
+
+ // Paper start - track depth
+ private int depth;
+ @SuppressWarnings({"unchecked","rawtypes"})
+ public static <S> Term<S> increaseDepth() {
+ class IncreasingDepthTerm<W> implements Term<W> {
+ public static final IncreasingDepthTerm INSTANCE = new IncreasingDepthTerm();
+ @Override
+ public boolean parse(final ParseState<W> parseState, final Scope scope, final Control control) {
+ if (++scope.depth > 512) {
+ parseState.errorCollector().store(parseState.mark(), new IllegalStateException("Too deep"));
+ return false;
+ }
+ return true;
+ }
+ }
+ return (Term<S>) IncreasingDepthTerm.INSTANCE;
+ }
+
+ @SuppressWarnings({"unchecked","rawtypes"})
+ public static <S> Term<S> decreaseDepth() {
+ class DecreasingDepthTerm<W> implements Term<W> {
+ public static final DecreasingDepthTerm INSTANCE = new DecreasingDepthTerm();
+ @Override
+ public boolean parse(final ParseState<W> parseState, final Scope scope, final Control control) {
+ scope.depth--;
+ return true;
+ }
+ }
+ return (Term<S>) DecreasingDepthTerm.INSTANCE;
+ }
+ // Paper end - track depth
}

View File

@@ -0,0 +1,28 @@
--- a/net/minecraft/util/random/WeightedList.java
+++ b/net/minecraft/util/random/WeightedList.java
@@ -13,14 +_,14 @@
import net.minecraft.util.ExtraCodecs;
import net.minecraft.util.RandomSource;
-public final class WeightedList<E> {
+public class WeightedList<E> { // Paper - non-final
private static final int FLAT_THRESHOLD = 64;
private final int totalWeight;
private final List<Weighted<E>> items;
@Nullable
private final WeightedList.Selector<E> selector;
- WeightedList(List<? extends Weighted<E>> items) {
+ protected WeightedList(List<? extends Weighted<E>> items) { // Paper - protected
this.items = List.copyOf(items);
this.totalWeight = WeightedRandom.getTotalWeight(items, Weighted::weight);
if (this.totalWeight == 0) {
@@ -122,7 +_,7 @@
}
public static class Builder<E> {
- private final ImmutableList.Builder<Weighted<E>> result = ImmutableList.builder();
+ protected final ImmutableList.Builder<Weighted<E>> result = ImmutableList.builder();
public WeightedList.Builder<E> add(E element) {
return this.add(element, 1);

View File

@@ -1,7 +1,7 @@
--- a/net/minecraft/util/worldupdate/WorldUpgrader.java
+++ b/net/minecraft/util/worldupdate/WorldUpgrader.java
@@ -79,7 +_,7 @@
LevelStorageSource.LevelStorageAccess levelStorage, DataFixer dataFixer, RegistryAccess registryAccess, boolean eraseCache, boolean recreateRegionFiles
@@ -87,7 +_,7 @@
boolean recreateRegionFiles
) {
this.dimensions = registryAccess.lookupOrThrow(Registries.LEVEL_STEM);
- this.levels = this.dimensions.registryKeySet().stream().map(Registries::levelStemToLevel).collect(Collectors.toUnmodifiableSet());
@@ -9,12 +9,12 @@
this.eraseCache = eraseCache;
this.dataFixer = dataFixer;
this.levelStorage = levelStorage;
@@ -358,7 +_,7 @@
@@ -369,7 +_,7 @@
int version = ChunkStorage.getVersion(compoundTag);
ChunkGenerator chunkGenerator = WorldUpgrader.this.dimensions.getValueOrThrow(Registries.levelToLevelStem(dimension)).generator();
CompoundTag compoundTag1 = chunkStorage.upgradeChunkTag(
- dimension, () -> WorldUpgrader.this.overworldDataStorage, compoundTag, chunkGenerator.getTypeNameForDataFixer()
+ Registries.levelToLevelStem(dimension), () -> WorldUpgrader.this.overworldDataStorage, compoundTag, chunkGenerator.getTypeNameForDataFixer(), chunkPos, null // CraftBukkit
);
ChunkPos chunkPos1 = new ChunkPos(compoundTag1.getInt("xPos"), compoundTag1.getInt("zPos"));
ChunkPos chunkPos1 = new ChunkPos(compoundTag1.getIntOr("xPos", 0), compoundTag1.getIntOr("zPos", 0));
if (!chunkPos1.equals(chunkPos)) {