Merge pull request #279 from toolbox4minecraft/adjustments-for-new-minecraft-versions

Adjustments for new minecraft versions
master
Stefan Dollase 2016-11-20 18:33:31 +01:00 committed by GitHub
commit 72a1c99a34
5 changed files with 24 additions and 18 deletions

View File

@ -23,7 +23,17 @@ public enum RecognisedVersion {
// TODO: Remove these versions before V1_0?
// TODO: stronghold reset on V1_9pre4?
UNKNOWN,
_1_9 ("1.9", "qwoomajzpb[Llp;mm[J[[Jmi"), // matches the launcher version id: 1.9 1.9-pre4 1.9-pre3
_1_11 ("1.11", "rroumhkfph[Llw;mt[J[[Jmp"), // matches the launcher version id: 1.11 1.11-pre1
_16w44a ("16w44a", "rqotmgkfpg[Llv;ms[J[[Jmo"), // matches the launcher version id: 16w44a
_16w43a ("16w43a", "rpotmgkfpg[Llv;ms[J[[Jmo"), // matches the launcher version id: 16w43a 16w42a 16w41a 16w40a 16w39c
_16w38a ("16w38a", "rlosmfkepf[Llu;mr[J[[Jmn"), // matches the launcher version id: 16w38a
_16w36a ("16w36a", "rkosmfkepf[Llu;mr[J[[Jmn"), // matches the launcher version id: 16w36a
_16w35a ("16w35a", "rjosmfkepf[Llu;mr[J[[Jmn"), // matches the launcher version id: 16w35a 16w33a 16w32b
_1_10_2 ("1.10.2", "rboqmdkcpd[Lls;mp[J[[Jml"), // matches the launcher version id: 1.10.2 1.10.1 1.10
_16w21b ("16w21b", "qzopmckbpc[Llr;mo[J[[Jmk"), // matches the launcher version id: 16w21b
_16w20a ("16w20a", "qxopmckbpc[Llr;mo[J[[Jmk"), // matches the launcher version id: 16w20a
_1_9_4 ("1.9.4", "qwoombkapb[Llq;mn[J[[Jmj"), // matches the launcher version id: 1.9.4 1.9.3
_1_9_2 ("1.9.2", "qwoomajzpb[Llp;mm[J[[Jmi"), // matches the launcher version id: 1.9.2 1.9.1 1.9
_1_9_pre2 ("1.9-pre2", "qvoomajzpb[Llp;mm[J[[Jmi"), // matches the launcher version id: 1.9-pre2 1.9-pre1 16w07b 16w06a 16w05b 16w04a 16w03a 16w02a
_15w51b ("15w51b", "quonmajzpa[Llp;mm[J[[Jmi"), // matches the launcher version id: 15w51b
_15w50a ("15w50a", "qtonmajzpa[Llp;mm[J[[Jmi"), // matches the launcher version id: 15w50a 15w49b 15w47c

View File

@ -44,10 +44,10 @@ public enum DefaultClassTranslator {
.thenDeclareRequired(SymbolicNames.CLASS_GEN_LAYER)
// one if the initializeAllBiomeGenerators-methods is required!
.optionalMethod(SymbolicNames.METHOD_GEN_LAYER_INITIALIZE_ALL_BIOME_GENERATORS_1, "a").real("long").end()
.optionalMethod(SymbolicNames.METHOD_GEN_LAYER_INITIALIZE_ALL_BIOME_GENERATORS_2, "a").real("long").symbolic("WorldType").end()
.optionalMethod(SymbolicNames.METHOD_GEN_LAYER_INITIALIZE_ALL_BIOME_GENERATORS_3, "a").real("long").symbolic("WorldType").real("String").end()
.optionalMethod(SymbolicNames.METHOD_GEN_LAYER_INITIALIZE_ALL_BIOME_GENERATORS_3A,"a").real("long").symbolic("WorldType").symbolic("ChunkProviderSettings").end()
.requiredMethod(SymbolicNames.METHOD_GEN_LAYER_GET_INTS, "a").real("int") .real("int") .real("int") .real("int").end()
.optionalMethod(SymbolicNames.METHOD_GEN_LAYER_INITIALIZE_ALL_BIOME_GENERATORS_2, "a").real("long").symbolic(SymbolicNames.CLASS_WORLD_TYPE).end()
.optionalMethod(SymbolicNames.METHOD_GEN_LAYER_INITIALIZE_ALL_BIOME_GENERATORS_3, "a").real("long").symbolic(SymbolicNames.CLASS_WORLD_TYPE).real("String").end()
.optionalMethod(SymbolicNames.METHOD_GEN_LAYER_INITIALIZE_ALL_BIOME_GENERATORS_4, "a").real("long").symbolic(SymbolicNames.CLASS_WORLD_TYPE).symbolic(SymbolicNames.CLASS_GEN_OPTIONS).end()
.requiredMethod(SymbolicNames.METHOD_GEN_LAYER_GET_INTS, "a").real("int") .real("int") .real("int") .real("int").end()
.next()
.ifDetect(c ->
c.getNumberOfConstructors() == 0
@ -62,14 +62,14 @@ public enum DefaultClassTranslator {
.requiredMethod(SymbolicNames.METHOD_BLOCK_INIT_INITIALIZE, "c").end()
.next()
.ifDetect(c ->
//some leeway in case Mojang adds or removes fields in the future
// some leeway in case Mojang adds or removes fields in the future
c.getNumberOfFields() > 70 && c.getNumberOfFields() < 100
&& c.getNumberOfMethods() == 0
)
.thenDeclareOptional(SymbolicNames.CLASS_GEN_OPTIONS)
.next()
.ifDetect(c ->
//same as above
// some leeway in case Mojang adds or removes fields in the future
c.getNumberOfFields() > 70 && c.getNumberOfFields() < 100
&& c.getField(0).hasFlags(AccessFlags.STATIC | AccessFlags.FINAL)
&& c.getField(1).hasFlags(AccessFlags.PUBLIC)

View File

@ -101,14 +101,10 @@ public class LocalMinecraftInterface implements MinecraftInterface {
throws IllegalAccessException, IllegalArgumentException, InvocationTargetException {
if (worldTypeClass == null) {
return (Object[]) genLayerClass.callStaticMethod(SymbolicNames.METHOD_GEN_LAYER_INITIALIZE_ALL_BIOME_GENERATORS_1, seed);
} else if (genLayerClass.hasMethod(SymbolicNames.METHOD_GEN_LAYER_INITIALIZE_ALL_BIOME_GENERATORS_3A)) {
SymbolicObject options = getGeneratorOptions(generatorOptions);
return (Object[]) genLayerClass.callStaticMethod(SymbolicNames.METHOD_GEN_LAYER_INITIALIZE_ALL_BIOME_GENERATORS_3A, seed, getWorldType(worldType).getObject(), options.getObject());
} else if (genLayerClass.hasMethod(SymbolicNames.METHOD_GEN_LAYER_INITIALIZE_ALL_BIOME_GENERATORS_4)) {
return (Object[]) genLayerClass.callStaticMethod(SymbolicNames.METHOD_GEN_LAYER_INITIALIZE_ALL_BIOME_GENERATORS_4, seed, getWorldType(worldType).getObject(), getGeneratorOptions(generatorOptions).getObject());
} else if (genLayerClass.hasMethod(SymbolicNames.METHOD_GEN_LAYER_INITIALIZE_ALL_BIOME_GENERATORS_3)) {
return (Object[]) genLayerClass.callStaticMethod(SymbolicNames.METHOD_GEN_LAYER_INITIALIZE_ALL_BIOME_GENERATORS_3, seed, getWorldType(worldType).getObject(), generatorOptions);
} else {
return (Object[]) genLayerClass.callStaticMethod(SymbolicNames.METHOD_GEN_LAYER_INITIALIZE_ALL_BIOME_GENERATORS_2, seed, getWorldType(worldType).getObject());
}
@ -116,7 +112,6 @@ public class LocalMinecraftInterface implements MinecraftInterface {
private SymbolicObject getGeneratorOptions(String generatorOptions)
throws IllegalAccessException, IllegalArgumentException, InvocationTargetException {
SymbolicObject factory = (SymbolicObject) genOptionsFactoryClass.callStaticMethod(SymbolicNames.METHOD_GEN_OPTIONS_FACTORY_JSON_TO_FACTORY, generatorOptions);
return (SymbolicObject) factory.callMethod(SymbolicNames.METHOD_GEN_OPTIONS_FACTORY_BUILD);
}

View File

@ -20,14 +20,15 @@ public enum SymbolicNames {
public static final String METHOD_GEN_LAYER_INITIALIZE_ALL_BIOME_GENERATORS_1 = "initializeAllBiomeGenerators1";
public static final String METHOD_GEN_LAYER_INITIALIZE_ALL_BIOME_GENERATORS_2 = "initializeAllBiomeGenerators2";
public static final String METHOD_GEN_LAYER_INITIALIZE_ALL_BIOME_GENERATORS_3 = "initializeAllBiomeGenerators3";
public static final String METHOD_GEN_LAYER_INITIALIZE_ALL_BIOME_GENERATORS_3A = "initializeAllBiomeGenerators3a";
public static final String METHOD_GEN_LAYER_INITIALIZE_ALL_BIOME_GENERATORS_4 = "initializeAllBiomeGenerators4";
public static final String METHOD_GEN_LAYER_GET_INTS = "getInts";
public static final String CLASS_BLOCK_INIT = "BlockInit";
public static final String METHOD_BLOCK_INIT_INITIALIZE = "initialize";
public static final String CLASS_GEN_OPTIONS = "ChunkProviderSettings";
public static final String CLASS_GEN_OPTIONS_FACTORY = CLASS_GEN_OPTIONS + ".Factory";
public static final String CLASS_GEN_OPTIONS_FACTORY = "ChunkProviderSettingsFactory";
public static final String METHOD_GEN_OPTIONS_FACTORY_JSON_TO_FACTORY = "jsonToFactory";
public static final String METHOD_GEN_OPTIONS_FACTORY_BUILD = "build";
}

File diff suppressed because one or more lines are too long