geforkt von Mirrors/Paper
0c4a1c4496
Add to gradle build so that this is automatically done throughout the update
117 Zeilen
8.6 KiB
Diff
117 Zeilen
8.6 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Jake Potrebic <jake.m.potrebic@gmail.com>
|
|
Date: Fri, 25 Feb 2022 07:14:48 -0800
|
|
Subject: [PATCH] CB fixes
|
|
|
|
* Missing Level -> LevelStem generic in StructureCheck
|
|
Need to use the right for injectDatafixingContext (Spottedleaf)
|
|
|
|
* Removed incorrect parent perm for `minecraft.debugstick.always` (Machine_Maker)
|
|
|
|
* Fixed method signature of Marker#addPassenger (Machine_Maker)
|
|
|
|
* Removed unneeded UOE in CustomWorldChunkManager (extends BiomeSource) (Machine_Maker)
|
|
|
|
* Honor Server#getLootTable method contract (Machine_Maker)
|
|
|
|
Co-authored-by: Spottedleaf <Spottedleaf@users.noreply.github.com>
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
|
index 82435da47f0f7db73556310f84dc538a7c5f0809..ebae711991a3ae35e35c2cffa8d928677c205492 100644
|
|
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
|
|
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
|
@@ -298,7 +298,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
|
|
|
long l = minecraftserver.getWorldData().worldGenOptions().seed();
|
|
|
|
- this.structureCheck = new StructureCheck(this.chunkSource.chunkScanner(), this.registryAccess(), minecraftserver.getStructureManager(), resourcekey, chunkgenerator, this.chunkSource.randomState(), this, chunkgenerator.getBiomeSource(), l, datafixer);
|
|
+ this.structureCheck = new StructureCheck(this.chunkSource.chunkScanner(), this.registryAccess(), minecraftserver.getStructureManager(), this.getTypeKey(), chunkgenerator, this.chunkSource.randomState(), this, chunkgenerator.getBiomeSource(), l, datafixer); // Paper - Fix missing CB diff
|
|
this.structureManager = new StructureManager(this, this.serverLevelData.worldGenOptions(), this.structureCheck); // CraftBukkit
|
|
if ((this.dimension() == Level.END && this.dimensionTypeRegistration().is(BuiltinDimensionTypes.END)) || env == org.bukkit.World.Environment.THE_END) { // CraftBukkit - Allow to create EnderDragonBattle in default and custom END
|
|
this.dragonFight = new EndDragonFight(this, this.serverLevelData.worldGenOptions().seed(), this.serverLevelData.endDragonFightData()); // CraftBukkit
|
|
diff --git a/src/main/java/net/minecraft/world/entity/Marker.java b/src/main/java/net/minecraft/world/entity/Marker.java
|
|
index 299d0755b782a26af6c6acc00e3d8ab0269348a9..70791a052c1ec8f41d7f1e65c33eee4f0b1b53b2 100644
|
|
--- a/src/main/java/net/minecraft/world/entity/Marker.java
|
|
+++ b/src/main/java/net/minecraft/world/entity/Marker.java
|
|
@@ -49,8 +49,8 @@ public class Marker extends Entity {
|
|
}
|
|
|
|
@Override
|
|
- protected void addPassenger(Entity passenger) {
|
|
- throw new IllegalStateException("Should never addPassenger without checking couldAcceptPassenger()");
|
|
+ protected boolean addPassenger(Entity passenger) { // Paper - fix return type
|
|
+ return false; // Paper
|
|
}
|
|
|
|
@Override
|
|
diff --git a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java
|
|
index 40cdff9eaa1e78e02060d970e477d96f960cfed3..c853123c451c41beb42209c7edc14a5dcffa2a50 100644
|
|
--- a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java
|
|
+++ b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java
|
|
@@ -446,9 +446,9 @@ public class Camel extends AbstractHorse implements PlayerRideableJumping, Rider
|
|
}
|
|
|
|
@Override
|
|
- protected void actuallyHurt(DamageSource source, float amount) {
|
|
+ protected boolean damageEntity0(DamageSource source, float amount) { // Paper - fix CB method rename issue
|
|
this.standUpInstantly();
|
|
- super.actuallyHurt(source, amount);
|
|
+ return super.damageEntity0(source, amount); // Paper - fix CB method rename issue
|
|
}
|
|
|
|
@Override
|
|
diff --git a/src/main/java/net/minecraft/world/level/levelgen/structure/StructureCheck.java b/src/main/java/net/minecraft/world/level/levelgen/structure/StructureCheck.java
|
|
index 161ad6ab1443b2ce33a2d7d91d189c855db0453b..15a9736a870055d639d03063c7cf67fd769fff36 100644
|
|
--- a/src/main/java/net/minecraft/world/level/levelgen/structure/StructureCheck.java
|
|
+++ b/src/main/java/net/minecraft/world/level/levelgen/structure/StructureCheck.java
|
|
@@ -43,7 +43,7 @@ public class StructureCheck {
|
|
private final Registry<Biome> biomes;
|
|
private final Registry<Structure> structureConfigs;
|
|
private final StructureTemplateManager structureTemplateManager;
|
|
- private final ResourceKey<Level> dimension;
|
|
+ private final ResourceKey<net.minecraft.world.level.dimension.LevelStem> dimension; // Paper - fix missing CB diff
|
|
private final ChunkGenerator chunkGenerator;
|
|
private final RandomState randomState;
|
|
private final LevelHeightAccessor heightAccessor;
|
|
@@ -53,7 +53,7 @@ public class StructureCheck {
|
|
private final Long2ObjectMap<Object2IntMap<Structure>> loadedChunks = new Long2ObjectOpenHashMap<>();
|
|
private final Map<Structure, Long2BooleanMap> featureChecks = new HashMap<>();
|
|
|
|
- public StructureCheck(ChunkScanAccess chunkIoWorker, RegistryAccess registryManager, StructureTemplateManager structureTemplateManager, ResourceKey<Level> worldKey, ChunkGenerator chunkGenerator, RandomState noiseConfig, LevelHeightAccessor world, BiomeSource biomeSource, long seed, DataFixer dataFixer) {
|
|
+ public StructureCheck(ChunkScanAccess chunkIoWorker, RegistryAccess registryManager, StructureTemplateManager structureTemplateManager, ResourceKey<net.minecraft.world.level.dimension.LevelStem> worldKey, ChunkGenerator chunkGenerator, RandomState noiseConfig, LevelHeightAccessor world, BiomeSource biomeSource, long seed, DataFixer dataFixer) { // Paper - fix missing CB diff
|
|
this.storageAccess = chunkIoWorker;
|
|
this.registryAccess = registryManager;
|
|
this.structureTemplateManager = structureTemplateManager;
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
|
index 9c82e4d2f5676808bb57c5e7dd19d0e7615ca884..9874d0d3ae16e79f2598d9c1f93a9b7cc40f56b0 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
|
@@ -2324,7 +2324,13 @@ public final class CraftServer implements Server {
|
|
Validate.notNull(key, "NamespacedKey cannot be null");
|
|
|
|
LootDataManager registry = this.getServer().getLootData();
|
|
- return new CraftLootTable(key, registry.getLootTable(CraftNamespacedKey.toMinecraft(key)));
|
|
+ // Paper start - honor method contract
|
|
+ final ResourceLocation lootTableKey = CraftNamespacedKey.toMinecraft(key);
|
|
+ if (registry.getLootTable(lootTableKey) == net.minecraft.world.level.storage.loot.LootTable.EMPTY) {
|
|
+ return null;
|
|
+ }
|
|
+ return new CraftLootTable(key, registry.getLootTable(lootTableKey));
|
|
+ // Paper end
|
|
}
|
|
|
|
@Override
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/util/permissions/CraftDefaultPermissions.java b/src/main/java/org/bukkit/craftbukkit/util/permissions/CraftDefaultPermissions.java
|
|
index c93eec7a81ed83dc9190417dd51acb2780d3b60d..70d3949616c63038ad3e9bd1069db5ea2fb3f3b8 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/util/permissions/CraftDefaultPermissions.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/util/permissions/CraftDefaultPermissions.java
|
|
@@ -15,7 +15,7 @@ public final class CraftDefaultPermissions {
|
|
DefaultPermissions.registerPermission(CraftDefaultPermissions.ROOT + ".nbt.place", "Gives the user the ability to place restricted blocks with NBT in creative", org.bukkit.permissions.PermissionDefault.OP, parent);
|
|
DefaultPermissions.registerPermission(CraftDefaultPermissions.ROOT + ".nbt.copy", "Gives the user the ability to copy NBT in creative", org.bukkit.permissions.PermissionDefault.TRUE, parent);
|
|
DefaultPermissions.registerPermission(CraftDefaultPermissions.ROOT + ".debugstick", "Gives the user the ability to use the debug stick in creative", org.bukkit.permissions.PermissionDefault.OP, parent);
|
|
- DefaultPermissions.registerPermission(CraftDefaultPermissions.ROOT + ".debugstick.always", "Gives the user the ability to use the debug stick in all game modes", org.bukkit.permissions.PermissionDefault.FALSE, parent);
|
|
+ DefaultPermissions.registerPermission(CraftDefaultPermissions.ROOT + ".debugstick.always", "Gives the user the ability to use the debug stick in all game modes", org.bukkit.permissions.PermissionDefault.FALSE/* , parent */); // Paper - should not have this parent, as it's not a "vanilla" utility
|
|
// Spigot end
|
|
parent.recalculatePermissibles();
|
|
}
|