Update AGP to 1.23
This commit is contained in:
parent
31bb3bbecc
commit
999b9bb30e
|
@ -65,7 +65,7 @@ dependencies {
|
||||||
annotationProcessor 'com.github.ArclightTeam:mixin-tools:1.0.0'
|
annotationProcessor 'com.github.ArclightTeam:mixin-tools:1.0.0'
|
||||||
|
|
||||||
implementation 'jline:jline:2.12.1'
|
implementation 'jline:jline:2.12.1'
|
||||||
implementation 'net.md-5:SpecialSource:1.9.0'
|
implementation 'net.md-5:SpecialSource:1.11.0'
|
||||||
implementation 'org.apache.logging.log4j:log4j-jul:2.15.0'
|
implementation 'org.apache.logging.log4j:log4j-jul:2.15.0'
|
||||||
implementation 'net.md-5:bungeecord-chat:1.16-R0.4'
|
implementation 'net.md-5:bungeecord-chat:1.16-R0.4'
|
||||||
implementation 'mysql:mysql-connector-java:5.1.49'
|
implementation 'mysql:mysql-connector-java:5.1.49'
|
||||||
|
|
|
@ -109,7 +109,7 @@ public abstract class ServerLevelMixin extends LevelMixin implements ServerWorld
|
||||||
// @formatter:on
|
// @formatter:on
|
||||||
|
|
||||||
@SuppressWarnings({"FieldCanBeLocal", "unused"})
|
@SuppressWarnings({"FieldCanBeLocal", "unused"})
|
||||||
public PrimaryLevelData $$worldDataServer;
|
public PrimaryLevelData M; // TODO f_8549_ check on update
|
||||||
private int tickPosition;
|
private int tickPosition;
|
||||||
public LevelStorageSource.LevelStorageAccess convertable;
|
public LevelStorageSource.LevelStorageAccess convertable;
|
||||||
public UUID uuid;
|
public UUID uuid;
|
||||||
|
@ -153,10 +153,10 @@ public abstract class ServerLevelMixin extends LevelMixin implements ServerWorld
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (worldInfo instanceof PrimaryLevelData) {
|
if (worldInfo instanceof PrimaryLevelData) {
|
||||||
this.$$worldDataServer = (PrimaryLevelData) worldInfo;
|
this.M = (PrimaryLevelData) worldInfo;
|
||||||
} else if (worldInfo instanceof DerivedLevelData) {
|
} else if (worldInfo instanceof DerivedLevelData) {
|
||||||
// damn spigot again
|
// damn spigot again
|
||||||
this.$$worldDataServer = DelegateWorldInfo.wrap(((DerivedLevelData) worldInfo));
|
this.M = DelegateWorldInfo.wrap(((DerivedLevelData) worldInfo));
|
||||||
((DerivedWorldInfoBridge) worldInfo).bridge$setDimType(this.getTypeKey());
|
((DerivedWorldInfoBridge) worldInfo).bridge$setDimType(this.getTypeKey());
|
||||||
if (ArclightConfig.spec().getCompat().isSymlinkWorld()) {
|
if (ArclightConfig.spec().getCompat().isSymlinkWorld()) {
|
||||||
WorldSymlink.create((DerivedLevelData) worldInfo, levelSave.getDimensionPath(this.dimension()).toFile());
|
WorldSymlink.create((DerivedLevelData) worldInfo, levelSave.getDimensionPath(this.dimension()).toFile());
|
||||||
|
@ -165,7 +165,7 @@ public abstract class ServerLevelMixin extends LevelMixin implements ServerWorld
|
||||||
this.spigotConfig = new SpigotWorldConfig(worldInfo.getLevelName());
|
this.spigotConfig = new SpigotWorldConfig(worldInfo.getLevelName());
|
||||||
this.uuid = WorldUUID.getUUID(levelSave.getDimensionPath(this.dimension()).toFile());
|
this.uuid = WorldUUID.getUUID(levelSave.getDimensionPath(this.dimension()).toFile());
|
||||||
((ServerChunkProviderBridge) this.chunkSource).bridge$setViewDistance(spigotConfig.viewDistance);
|
((ServerChunkProviderBridge) this.chunkSource).bridge$setViewDistance(spigotConfig.viewDistance);
|
||||||
((WorldInfoBridge) this.$$worldDataServer).bridge$setWorld((ServerLevel) (Object) this);
|
((WorldInfoBridge) this.M).bridge$setWorld((ServerLevel) (Object) this);
|
||||||
var data = this.getDataStorage().computeIfAbsent(LevelPersistentData::new, () -> new LevelPersistentData(null), "bukkit_pdc");
|
var data = this.getDataStorage().computeIfAbsent(LevelPersistentData::new, () -> new LevelPersistentData(null), "bukkit_pdc");
|
||||||
this.bridge$getWorld().readBukkitValues(data.getTag());
|
this.bridge$getWorld().readBukkitValues(data.getTag());
|
||||||
}
|
}
|
||||||
|
|
|
@ -44,12 +44,12 @@ public abstract class LevelChunkMixin extends ChunkAccessMixin implements ChunkB
|
||||||
public boolean mustNotSave;
|
public boolean mustNotSave;
|
||||||
public boolean needsDecoration;
|
public boolean needsDecoration;
|
||||||
private transient boolean arclight$doPlace;
|
private transient boolean arclight$doPlace;
|
||||||
public ServerLevel $$level;
|
public ServerLevel q; // TODO f_62776_ check on update
|
||||||
|
|
||||||
@Inject(method = "<init>(Lnet/minecraft/world/level/Level;Lnet/minecraft/world/level/ChunkPos;Lnet/minecraft/world/level/chunk/UpgradeData;Lnet/minecraft/world/ticks/LevelChunkTicks;Lnet/minecraft/world/ticks/LevelChunkTicks;J[Lnet/minecraft/world/level/chunk/LevelChunkSection;Lnet/minecraft/world/level/chunk/LevelChunk$PostLoadProcessor;Lnet/minecraft/world/level/levelgen/blending/BlendingData;)V", at = @At("RETURN"))
|
@Inject(method = "<init>(Lnet/minecraft/world/level/Level;Lnet/minecraft/world/level/ChunkPos;Lnet/minecraft/world/level/chunk/UpgradeData;Lnet/minecraft/world/ticks/LevelChunkTicks;Lnet/minecraft/world/ticks/LevelChunkTicks;J[Lnet/minecraft/world/level/chunk/LevelChunkSection;Lnet/minecraft/world/level/chunk/LevelChunk$PostLoadProcessor;Lnet/minecraft/world/level/levelgen/blending/BlendingData;)V", at = @At("RETURN"))
|
||||||
private void arclight$init(Level worldIn, ChunkPos p_196855_, UpgradeData p_196856_, LevelChunkTicks<Block> p_196857_, LevelChunkTicks<Fluid> p_196858_, long p_196859_, @Nullable LevelChunkSection[] p_196860_, @Nullable LevelChunk.PostLoadProcessor p_196861_, @Nullable BlendingData p_196862_, CallbackInfo ci) {
|
private void arclight$init(Level worldIn, ChunkPos p_196855_, UpgradeData p_196856_, LevelChunkTicks<Block> p_196857_, LevelChunkTicks<Fluid> p_196858_, long p_196859_, @Nullable LevelChunkSection[] p_196860_, @Nullable LevelChunk.PostLoadProcessor p_196861_, @Nullable BlendingData p_196862_, CallbackInfo ci) {
|
||||||
if (DistValidate.isValid(worldIn)) {
|
if (DistValidate.isValid(worldIn)) {
|
||||||
this.$$level = ((ServerLevel) worldIn);
|
this.q = ((ServerLevel) worldIn);
|
||||||
this.bukkitChunk = new CraftChunk((LevelChunk) (Object) this);
|
this.bukkitChunk = new CraftChunk((LevelChunk) (Object) this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,6 @@ import com.google.common.collect.Maps;
|
||||||
import org.objectweb.asm.Opcodes;
|
import org.objectweb.asm.Opcodes;
|
||||||
import org.objectweb.asm.tree.AbstractInsnNode;
|
import org.objectweb.asm.tree.AbstractInsnNode;
|
||||||
import org.objectweb.asm.tree.ClassNode;
|
import org.objectweb.asm.tree.ClassNode;
|
||||||
import org.objectweb.asm.tree.FieldInsnNode;
|
|
||||||
import org.objectweb.asm.tree.FieldNode;
|
import org.objectweb.asm.tree.FieldNode;
|
||||||
import org.objectweb.asm.tree.InsnList;
|
import org.objectweb.asm.tree.InsnList;
|
||||||
import org.objectweb.asm.tree.MethodInsnNode;
|
import org.objectweb.asm.tree.MethodInsnNode;
|
||||||
|
@ -106,10 +105,10 @@ public class ArclightMixinPlugin implements IMixinConfigPlugin {
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
// damn spigot
|
// damn spigot
|
||||||
private final Map<String, Map<String, String>> fieldRenames = ImmutableMap.<String, Map<String, String>>builder()
|
//private final Map<String, Map<String, String>> fieldRenames = ImmutableMap.<String, Map<String, String>>builder()
|
||||||
.put("net.minecraft.world.level.chunk.LevelChunk", ImmutableMap.of("$$level", "f_62776_"))
|
// .put("net.minecraft.world.level.chunk.LevelChunk", ImmutableMap.of("$$level", "f_62776_"))
|
||||||
.put("net.minecraft.server.level.ServerLevel", ImmutableMap.of("$$worldDataServer", "f_8549_"))
|
// .put("net.minecraft.server.level.ServerLevel", ImmutableMap.of("$$worldDataServer", "f_8549_"))
|
||||||
.build();
|
// .build();
|
||||||
|
|
||||||
private final Set<String> modifyConstructor = ImmutableSet.<String>builder()
|
private final Set<String> modifyConstructor = ImmutableSet.<String>builder()
|
||||||
.add("net.minecraft.world.level.Level")
|
.add("net.minecraft.world.level.Level")
|
||||||
|
@ -173,23 +172,6 @@ public class ArclightMixinPlugin implements IMixinConfigPlugin {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
modifyConstructor(targetClassName, targetClass);
|
modifyConstructor(targetClassName, targetClass);
|
||||||
renameFields(targetClassName, targetClass);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void renameFields(String targetClassName, ClassNode classNode) {
|
|
||||||
Map<String, String> map = this.fieldRenames.get(targetClassName);
|
|
||||||
if (map != null) {
|
|
||||||
for (FieldNode field : classNode.fields) {
|
|
||||||
field.name = map.getOrDefault(field.name, field.name);
|
|
||||||
}
|
|
||||||
for (MethodNode method : classNode.methods) {
|
|
||||||
for (AbstractInsnNode instruction : method.instructions) {
|
|
||||||
if (instruction instanceof FieldInsnNode node) {
|
|
||||||
node.name = map.getOrDefault(node.name, node.name);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void modifyConstructor(String targetClassName, ClassNode classNode) {
|
private void modifyConstructor(String targetClassName, ClassNode classNode) {
|
||||||
|
|
|
@ -18,6 +18,8 @@ import java.io.BufferedReader;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStreamReader;
|
import java.io.InputStreamReader;
|
||||||
|
import java.io.StringReader;
|
||||||
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
|
@ -68,8 +70,18 @@ public class ArclightRemapper {
|
||||||
new BufferedReader(new InputStreamReader(ArclightRemapper.class.getResourceAsStream("/bukkit_srg.srg"))),
|
new BufferedReader(new InputStreamReader(ArclightRemapper.class.getResourceAsStream("/bukkit_srg.srg"))),
|
||||||
null, null, false
|
null, null, false
|
||||||
);
|
);
|
||||||
|
// TODO workaround for https://github.com/md-5/SpecialSource/pull/81
|
||||||
|
// remove on update
|
||||||
|
var content = new String(ArclightRemapper.class.getResourceAsStream("/bukkit_srg.srg").readAllBytes(), StandardCharsets.UTF_8);
|
||||||
|
var i = content.indexOf("net/minecraft/server/level/ChunkMap net/minecraft/server/level/ChunkTracker");
|
||||||
|
var nextSection = content.substring(i).lines().skip(1).dropWhile(it -> it.startsWith("\t")).findFirst().orElseThrow();
|
||||||
|
var nextIndex = content.indexOf(nextSection);
|
||||||
this.toBukkitMapping.loadMappings(
|
this.toBukkitMapping.loadMappings(
|
||||||
new BufferedReader(new InputStreamReader(ArclightRemapper.class.getResourceAsStream("/bukkit_srg.srg"))),
|
new BufferedReader(new StringReader(content.substring(0, i) + content.substring(nextIndex))),
|
||||||
|
null, null, true
|
||||||
|
);
|
||||||
|
this.toBukkitMapping.loadMappings(
|
||||||
|
new BufferedReader(new StringReader(content.substring(i, nextIndex))),
|
||||||
null, null, true
|
null, null, true
|
||||||
);
|
);
|
||||||
BiMap<String, String> inverseClassMap = HashBiMap.create(toNmsMapping.classes).inverse();
|
BiMap<String, String> inverseClassMap = HashBiMap.create(toNmsMapping.classes).inverse();
|
||||||
|
|
|
@ -200,7 +200,7 @@ public class ClassLoaderRemapper extends LenientJarRemapper {
|
||||||
private String mapField(Field field) {
|
private String mapField(Field field) {
|
||||||
String owner = Type.getInternalName(field.getDeclaringClass());
|
String owner = Type.getInternalName(field.getDeclaringClass());
|
||||||
String srgName = field.getName();
|
String srgName = field.getName();
|
||||||
String desc = Type.getInternalName(field.getType());
|
String desc = Type.getDescriptor(field.getType());
|
||||||
return toBukkitRemapper.mapFieldName(owner, srgName, desc, -1);
|
return toBukkitRemapper.mapFieldName(owner, srgName, desc, -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -44,7 +44,7 @@ repositories {
|
||||||
def embedLibs = [/*"org.spongepowered:mixin:$mixinVersion", */ 'org.yaml:snakeyaml:1.30',
|
def embedLibs = [/*"org.spongepowered:mixin:$mixinVersion", */ 'org.yaml:snakeyaml:1.30',
|
||||||
'org.xerial:sqlite-jdbc:3.36.0.3', 'mysql:mysql-connector-java:8.0.27',
|
'org.xerial:sqlite-jdbc:3.36.0.3', 'mysql:mysql-connector-java:8.0.27',
|
||||||
/*'commons-lang:commons-lang:2.6',*/ 'com.googlecode.json-simple:json-simple:1.1.1',
|
/*'commons-lang:commons-lang:2.6',*/ 'com.googlecode.json-simple:json-simple:1.1.1',
|
||||||
'org.apache.logging.log4j:log4j-jul:2.17.0', 'net.md-5:SpecialSource:1.10.0',
|
'org.apache.logging.log4j:log4j-jul:2.17.0', 'net.md-5:SpecialSource:1.11.0',
|
||||||
'org.jline:jline-terminal-jansi:3.12.1', 'org.fusesource.jansi:jansi:1.18',
|
'org.jline:jline-terminal-jansi:3.12.1', 'org.fusesource.jansi:jansi:1.18',
|
||||||
/*'org.jline:jline-terminal:3.12.1', 'org.jline:jline-reader:3.12.1',*/
|
/*'org.jline:jline-terminal:3.12.1', 'org.jline:jline-reader:3.12.1',*/
|
||||||
'jline:jline:2.12.1', 'org.apache.maven:maven-resolver-provider:3.8.1',
|
'jline:jline:2.12.1', 'org.apache.maven:maven-resolver-provider:3.8.1',
|
||||||
|
|
|
@ -12,7 +12,7 @@ allprojects {
|
||||||
}
|
}
|
||||||
|
|
||||||
ext {
|
ext {
|
||||||
agpVersion = '1.22'
|
agpVersion = '1.23'
|
||||||
minecraftVersion = '1.18.2'
|
minecraftVersion = '1.18.2'
|
||||||
forgeVersion = '40.1.31'
|
forgeVersion = '40.1.31'
|
||||||
apiVersion = '1.2.6'
|
apiVersion = '1.2.6'
|
||||||
|
|
Loading…
Reference in New Issue
Block a user