Update paperweight & build config for Spigot changes

This commit is contained in:
Kyle Wood 2021-06-11 06:23:18 -05:00
parent 211b20ffa5
commit 604ebc2cac
No known key found for this signature in database
GPG key ID: 86AF5613ACA30CC5
12 changed files with 44 additions and 5607 deletions

View file

@ -3,22 +3,20 @@
# Hopper.getLevel()
# Entity.getCommandSenderWorld()
# to getWorld(), which confuses our ability to map this method properly. This patch disambiguates it
net/minecraft/world/level/block/entity/IHopper v ()Lnet/minecraft/world/level/World; getLevel
net/minecraft/world/entity/vehicle/EntityMinecartHopper v ()Lnet/minecraft/world/level/World; getLevel
net/minecraft/world/item/trading/IMerchant eV ()Lnet/minecraft/world/level/World; getLevel
net/minecraft/world/entity/npc/EntityVillagerAbstract eV ()Lnet/minecraft/world/level/World; getLevel
net/minecraft/world/item/trading/IMerchant fD ()Lnet/minecraft/world/level/World; getLevel
net/minecraft/world/entity/npc/EntityVillagerAbstract fD ()Lnet/minecraft/world/level/World; getLevel
# CraftBukkit mappings sometimes have mappings for child classes and not parent classes
# We handle this fine for deobf but this breaks reobf. These Patches fix those cases
# BossBattle -> BossBattleServer
net/minecraft/world/BossBattle a (F)V setProgress
net/minecraft/world/BossBattle c (Z)Lnet/minecraft/world/BossBattle; setCreateFog
net/minecraft/world/BossBattle a (Z)Lnet/minecraft/world/BossBattle; setDarkenSky
net/minecraft/world/BossBattle b (Z)Lnet/minecraft/world/BossBattle; setPlayMusic
# net/minecraft/world/BossBattle a (F)V setProgress
# net/minecraft/world/BossBattle c (Z)Lnet/minecraft/world/BossBattle; setCreateFog
# net/minecraft/world/BossBattle a (Z)Lnet/minecraft/world/BossBattle; setDarkenSky
# net/minecraft/world/BossBattle b (Z)Lnet/minecraft/world/BossBattle; setPlayMusic
# IChunkProvider -> ChunkProviderServer
net/minecraft/world/level/chunk/IChunkProvider b (II)Z isLoaded
# net/minecraft/world/level/chunk/IChunkProvider b (II)Z isLoaded
# BehaviorWorkComposter -> BehaviorWork
net/minecraft/world/entity/ai/behavior/BehaviorWorkComposter a (Lnet/minecraft/server/level/WorldServer;Lnet/minecraft/world/entity/npc/EntityVillager;)V doWork
# net/minecraft/world/entity/ai/behavior/BehaviorWorkComposter a (Lnet/minecraft/server/level/WorldServer;Lnet/minecraft/world/entity/npc/EntityVillager;)V doWork

View file

@ -1,17 +0,0 @@
--- a/net/minecraft/world/entity/ai/behavior/BehaviorWorkComposter.patch
+++ b/net/minecraft/world/entity/ai/behavior/BehaviorWorkComposter.patch
@@ -1,14 +1,5 @@
--- a/net/minecraft/world/entity/ai/behavior/BehaviorWorkComposter.java
+++ b/net/minecraft/world/entity/ai/behavior/BehaviorWorkComposter.java
-@@ -24,7 +24,7 @@
- public BehaviorWorkComposter() {}
-
- @Override
-- protected void a(WorldServer worldserver, EntityVillager entityvillager) {
-+ protected void doWork(WorldServer worldserver, EntityVillager entityvillager) { // PAIL
- Optional<GlobalPos> optional = entityvillager.getBehaviorController().getMemory(MemoryModuleType.JOB_SITE);
-
- if (optional.isPresent()) {
@@ -43,7 +43,7 @@
BlockPosition blockposition = globalpos.getBlockPosition();

View file

@ -1,40 +0,0 @@
--- a/net/minecraft/server/level/ChunkProviderServer.patch
+++ b/net/minecraft/server/level/ChunkProviderServer.patch
@@ -74,8 +74,8 @@
+ return playerchunk == null || playerchunk.oldTicketLevel > i; // CraftBukkit using oldTicketLevel for isLoaded checks
}
- public boolean isLoaded(int i, int j) {
-@@ -282,19 +308,19 @@
+ @Override
+@@ -283,19 +309,19 @@
public boolean a(Entity entity) {
long i = ChunkCoordIntPair.pair(MathHelper.floor(entity.locX()) >> 4, MathHelper.floor(entity.locZ()) >> 4);
@@ -98,7 +98,7 @@
}
private boolean a(long i, Function<PlayerChunk, CompletableFuture<Either<Chunk, PlayerChunk.Failure>>> function) {
-@@ -316,11 +342,31 @@
+@@ -317,11 +343,31 @@
@Override
public void close() throws IOException {
@@ -131,7 +131,7 @@
public void tick(BooleanSupplier booleansupplier) {
this.world.getMethodProfiler().enter("purge");
this.chunkMapDistance.purgeTickets();
-@@ -340,12 +386,12 @@
+@@ -341,12 +387,12 @@
this.lastTickTime = i;
WorldData worlddata = this.world.getWorldData();
boolean flag = this.world.isDebugWorld();
@@ -146,7 +146,7 @@
this.world.getMethodProfiler().enter("naturalSpawnCount");
int l = this.chunkMapDistance.b();
-@@ -532,12 +578,18 @@
+@@ -533,12 +579,18 @@
@Override
protected boolean executeNext() {

View file

@ -10,41 +10,41 @@ c net/minecraft/world/level/World net/minecraft/world/level/Level
# CraftBukkit adds the server field, clashes with a Mojang field
c net/minecraft/server/network/PlayerConnection net/minecraft/server/network/ServerGamePacketListenerImpl
f Lorg/bukkit/craftbukkit/CraftServer; server craftServer
m ()Lorg/bukkit/craftbukkit/entity/CraftPlayer; getPlayer getCraftPlayer
# CraftBukkit adds the player field, clashes with a Mojang field
c net/minecraft/world/inventory/ContainerWorkbench net/minecraft/world/inventory/CraftingMenu
f Lnet/minecraft/world/entity/player/PlayerInventory; player playerInventory
#c net/minecraft/world/inventory/ContainerWorkbench net/minecraft/world/inventory/CraftingMenu
# f Lnet/minecraft/world/entity/player/PlayerInventory; player playerInventory
# CraftBukkit adds the getType() method, clashes with a Mojang method
c net/minecraft/world/entity/EntityAreaEffectCloud net/minecraft/world/entity/AreaEffectCloud
m ()Ljava/lang/String; getType getTypeCb
m ()Ljava/lang/String; getType getPotionType
# CraftBukkit adds the getType() method, clashes with a Mojang method
c net/minecraft/world/entity/projectile/EntityTippedArrow net/minecraft/world/entity/projectile/Arrow
m ()Ljava/lang/String; getType getTypeCb
m ()Ljava/lang/String; getType getPotionType
# CraftBukkit adds the getLevel() method, clashes with original method
c net/minecraft/world/level/block/entity/TileEntityBeacon net/minecraft/world/level/block/entity/BeaconBlockEntity
m ()I getLevel getLevelCb
#c net/minecraft/world/level/block/entity/TileEntityBeacon net/minecraft/world/level/block/entity/BeaconBlockEntity
# m ()I getLevel getLevelCb
# CraftBukkit adds the getLootTable() method, clashes with original method
c net/minecraft/world/entity/EntityInsentient net/minecraft/world/entity/Mob
m ()Lnet/minecraft/resources/MinecraftKey; getLootTable getLootTableCb
#c net/minecraft/world/entity/EntityInsentient net/minecraft/world/entity/Mob
# m ()Lnet/minecraft/resources/MinecraftKey; getLootTable getLootTableCb
# CraftBukkit adds the canCollideWith() method, clashes with original method
c net/minecraft/world/entity/Entity net/minecraft/world/entity/Entity
m (Lnet/minecraft/world/entity/Entity;)Z canCollideWith canCollideWithCb
#c net/minecraft/world/entity/Entity net/minecraft/world/entity/Entity
# m (Lnet/minecraft/world/entity/Entity;)Z canCollideWith canCollideWithCb
# CraftBukkit adds a new `a` method which allows passing the Entity parameter
# It uses `a` to match the original method (with just 1 param), so this patch makes them match
c net/minecraft/server/level/WorldServer net/minecraft/server/level/ServerLevel
m (Lnet/minecraft/server/level/WorldServer;Lnet/minecraft/world/entity/Entity;)V a makeObsidianPlatform
#c net/minecraft/server/level/WorldServer net/minecraft/server/level/ServerLevel
# m (Lnet/minecraft/server/level/WorldServer;Lnet/minecraft/world/entity/Entity;)V a makeObsidianPlatform
# CraftBukkit adds `getMinecraftWorld()` to `GeneratorAccess`, which matches `WorldAccess.getMinecraftWorld()`
# But that method in `WorldAccess` is called `getLevel()` in Mojang mappings
c net/minecraft/world/level/GeneratorAccess net/minecraft/world/level/LevelAccessor
m ()Lnet/minecraft/server/level/WorldServer; getMinecraftWorld getLevel
#c net/minecraft/world/level/GeneratorAccess net/minecraft/world/level/LevelAccessor
# m ()Lnet/minecraft/server/level/WorldServer; getMinecraftWorld getLevel
# SpecialSource2 automatically maps methods to the name of synthetic methods that point to it in an attempt to
# normalize method names with what is expected by the super class. This is _extremely_ stupid and flawed however
@ -68,9 +68,9 @@ c net/minecraft/world/level/GeneratorAccess net/minecraft/world/level/LevelAcces
# This is allowed because the synthetic method for serialize() has a different descriptor, using Object as the second
# parameter. This breaks when SpecialSource2 does it's "magic" of course. This patch manually fixes this case by adding
# both correct mappings
c net/minecraft/world/level/storage/loot/entries/LootEntryAbstract$Serializer net/minecraft/world/level/storage/loot/entries/LootPoolEntryContainer$Serializer
m (Lcom/google/gson/JsonObject;Lnet/minecraft/world/level/storage/loot/entries/LootEntryAbstract;Lcom/google/gson/JsonSerializationContext;)V a serialize
p 0 json
p 1 entry
p 2 context
m (Lcom/google/gson/JsonObject;Lnet/minecraft/world/level/storage/loot/entries/LootEntryAbstract;Lcom/google/gson/JsonSerializationContext;)V serializeType serializeCustom
#c net/minecraft/world/level/storage/loot/entries/LootEntryAbstract$Serializer net/minecraft/world/level/storage/loot/entries/LootPoolEntryContainer$Serializer
# m (Lcom/google/gson/JsonObject;Lnet/minecraft/world/level/storage/loot/entries/LootEntryAbstract;Lcom/google/gson/JsonSerializationContext;)V a serialize
# p 0 json
# p 1 entry
# p 2 context
# m (Lcom/google/gson/JsonObject;Lnet/minecraft/world/level/storage/loot/entries/LootEntryAbstract;Lcom/google/gson/JsonSerializationContext;)V serializeType serializeCustom