Skip to content

Commit

Permalink
Modularize to support 1.16, 1.15 and 1.14 with the same jar
Browse files Browse the repository at this point in the history
  • Loading branch information
thecatcore committed Aug 5, 2020
1 parent b854763 commit ecc357b
Show file tree
Hide file tree
Showing 41 changed files with 609 additions and 72 deletions.
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -116,3 +116,7 @@ run/

# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored)
!gradle-wrapper.jar

.run_1.15.2/

1.14.4/
6 changes: 6 additions & 0 deletions 1.15.2/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
archivesBaseName = "1.15.2"
version = getSubprojectVersion()

dependencies {
compile project(path: ':common')
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package fr.catcore.translated.server.mixin;
package fr.catcore.translated.server.mixin_1_14;

import net.minecraft.advancement.AdvancementManager;
import net.minecraft.text.TranslatableText;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
package fr.catcore.translated.server.mixin_1_14;

import fr.catcore.translated.server.TranslatedServerLog;
import fr.catcore.translated.server.resource.language.ServerLanguage;
import fr.catcore.translated.server.resource.language.ServerTranslationStorage;
import net.minecraft.util.Language;
import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Mutable;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;

@Mixin(Language.class)
public class MixinLanguage {

@Mutable
@Shadow @Final private static Language INSTANCE;
private static boolean loaded = false;

@Inject(method = "<init>", cancellable = true, at = @At("RETURN"))
private void server_getInstance(CallbackInfo ci) {
if (loaded) return;
loaded = true;
TranslatedServerLog.onInitialize();
INSTANCE = ServerLanguage.getInstance();
}

@Inject(method = "translate", cancellable = true, at = @At("RETURN"))
private void server_translate(String string, CallbackInfoReturnable<String> cir) {
cir.setReturnValue(((ServerTranslationStorage)INSTANCE).getServerTranslation(string));
}

@Inject(method = "hasTranslation", cancellable = true, at = @At("RETURN"))
private void server_hasTranslation(String string, CallbackInfoReturnable<Boolean> cir) {
cir.setReturnValue(((ServerTranslationStorage)INSTANCE).hasServerTranslation(string));
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
package fr.catcore.translated.server.mixin_1_14;

import net.minecraft.server.dedicated.MinecraftDedicatedServer;
import net.minecraft.text.TranslatableText;
import net.minecraft.world.GameMode;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.ModifyArg;

@Mixin(MinecraftDedicatedServer.class)
public class MixinMinecraftDedicatedServer {

@ModifyArg(method = "setupServer", at = @At(value = "INVOKE", target = "Lorg/apache/logging/log4j/Logger;info(Ljava/lang/String;)V", ordinal = 0), index = 0)
private String translated_startingServer(String string) {
return new TranslatableText("text.translated_server.starting_version", string.replace("Starting minecraft server version ", "")).getString();
}

@ModifyArg(method = "setupServer", at = @At(value = "INVOKE", target = "Lorg/apache/logging/log4j/Logger;info(Ljava/lang/String;)V", ordinal = 1), index = 0)
private String translated_loadingProperties(String string) {
return new TranslatableText("text.translated_server.loading.properties", "null").getString();
}

@ModifyArg(method = "setupServer", at = @At(value = "INVOKE", target = "Lorg/apache/logging/log4j/Logger;info(Ljava/lang/String;Ljava/lang/Object;)V", ordinal = 0), index = 0)
private String translated_gamemode(String string, Object p0) {
return new TranslatableText("text.translated_server.loading.gamemode", ((GameMode)p0).getTranslatableName().getString()).getString();
}

@ModifyArg(method = "setupServer", at = @At(value = "INVOKE", target = "Lorg/apache/logging/log4j/Logger;info(Ljava/lang/String;)V", ordinal = 2), index = 0)
private String translated_generatingKeypair(String string) {
return new TranslatableText("text.translated_server.generate.keypair", "null").getString();
}

@ModifyArg(method = "setupServer", at = @At(value = "INVOKE", target = "Lorg/apache/logging/log4j/Logger;info(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V", ordinal = 0), index = 0)
private String translated_ip(String string, Object p0, Object p1) {
return new TranslatableText("text.translated_server.loading.ip", p0, p1).getString();
}

@ModifyArg(method = "setupServer", at = @At(value = "INVOKE", target = "Lorg/apache/logging/log4j/Logger;info(Ljava/lang/String;Ljava/lang/Object;)V", ordinal = 1), index = 0)
private String translated_preparingLevel(String string, Object p0) {
return new TranslatableText("text.translated_server.preparing.level", p0).getString();
}

@ModifyArg(method = "setupServer", at = @At(value = "INVOKE", target = "Lorg/apache/logging/log4j/Logger;info(Ljava/lang/String;Ljava/lang/Object;)V", ordinal = 2), index = 0)
private String translated_done(String string, Object p0) {
return new TranslatableText("text.translated_server.done", p0).getString();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
package fr.catcore.translated.server.mixin_1_14;

import net.minecraft.server.MinecraftServer;
import net.minecraft.text.TranslatableText;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.ModifyArg;

@Mixin(MinecraftServer.class)
public class MixinMinecraftServer {

@ModifyArg(method = "prepareStartRegion", at = @At(value = "INVOKE", target = "Lorg/apache/logging/log4j/Logger;info(Ljava/lang/String;)V"), index = 0)
private String translated_preparingDimension(String string) {
return new TranslatableText("text.translated_server.preparing.dimension", string.replace("Preparing start region for dimension ","")).getString();
}

@ModifyArg(method = "save", at = @At(value = "INVOKE", target = "Lorg/apache/logging/log4j/Logger;info(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V", ordinal = 0), index = 0)
private String translated_saveChunks(String string, Object p0, Object p1) {
return new TranslatableText("text.translated_server.save.chunks", p0, p1).getString();
}

@ModifyArg(method = "shutdown", at = @At(value = "INVOKE", target = "Lorg/apache/logging/log4j/Logger;info(Ljava/lang/String;)V", ordinal = 0), index = 0)
private String translated_stopping(String string) {
return new TranslatableText("commands.stop.stopping", "null").getString();
}

@ModifyArg(method = "shutdown", at = @At(value = "INVOKE", target = "Lorg/apache/logging/log4j/Logger;info(Ljava/lang/String;)V", ordinal = 1), index = 0)
private String translated_savePlayers(String string) {
return new TranslatableText("text.translated_server.save.players", "null").getString();
}

@ModifyArg(method = "shutdown", at = @At(value = "INVOKE", target = "Lorg/apache/logging/log4j/Logger;info(Ljava/lang/String;)V", ordinal = 2), index = 0)
private String translated_saveWorlds(String string) {
return new TranslatableText("text.translated_server.save.worlds", "null").getString();
}

@ModifyArg(method = "reloadDataPacks", at = @At(value = "INVOKE", target = "Lorg/apache/logging/log4j/Logger;info(Ljava/lang/String;Ljava/lang/Object;)V", ordinal = 0), index = 0)
private String translated_reloadData(String string, Object p0) {
return new TranslatableText("text.translated_server.new.datapack", p0).getString();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
package fr.catcore.translated.server.mixin_1_14;

import net.fabricmc.loader.api.FabricLoader;
import net.fabricmc.loader.api.SemanticVersion;
import net.fabricmc.loader.api.VersionParsingException;
import org.objectweb.asm.tree.ClassNode;
import org.spongepowered.asm.mixin.extensibility.IMixinConfigPlugin;
import org.spongepowered.asm.mixin.extensibility.IMixinInfo;

import java.util.List;
import java.util.Set;

public class MixinPlugin implements IMixinConfigPlugin {
@Override
public void onLoad(String mixinPackage) {

}

@Override
public String getRefMapperConfig() {
return null;
}

@Override
public boolean shouldApplyMixin(String targetClassName, String mixinClassName) {
try {
return SemanticVersion.parse(FabricLoader.getInstance().getModContainer("minecraft").get().getMetadata().getVersion().getFriendlyString()).compareTo(SemanticVersion.parse("1.16")) < 0;
} catch (VersionParsingException e) {
e.printStackTrace();
}
return false;
}

@Override
public void acceptTargets(Set<String> myTargets, Set<String> otherTargets) {

}

@Override
public List<String> getMixins() {
return null;
}

@Override
public void preApply(String targetClassName, ClassNode targetClass, String mixinClassName, IMixinInfo mixinInfo) {

}

@Override
public void postApply(String targetClassName, ClassNode targetClass, String mixinClassName, IMixinInfo mixinInfo) {

}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package fr.catcore.translated.server.mixin;
package fr.catcore.translated.server.mixin_1_14;

import net.minecraft.recipe.RecipeManager;
import net.minecraft.text.TranslatableText;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package fr.catcore.translated.server.mixin_1_14;

import net.minecraft.resource.ReloadableResourceManagerImpl;
import org.spongepowered.asm.mixin.Mixin;

@Mixin(ReloadableResourceManagerImpl.class)
public class MixinReloadableResourceManagerImpl {

// TODO: find a way to fix this mixin.
// @ModifyArg(method = "beginMonitoredReload", at = @At(value = "INVOKE", target = "Lorg/apache/logging/log4j/Logger;info(Ljava/lang/String;Ljava/lang/Object;)V"), index = 0)
// private String translated_loading(String string, Object p0) {
// System.out.println(p0);
// return new TranslatableText("text.translated_server.loading.datapacks", p0.toString()).getString();
// }
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package fr.catcore.translated.server.mixin_1_14;

import net.minecraft.server.world.ThreadedAnvilChunkStorage;
import net.minecraft.text.TranslatableText;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.ModifyArg;

@Mixin(ThreadedAnvilChunkStorage.class)
public class MixinThreadedAnvilChunkStorage {



@ModifyArg(method = "save(Z)V", at = @At(value = "INVOKE", target = "Lorg/apache/logging/log4j/Logger;info(Ljava/lang/String;Ljava/lang/Object;)V", ordinal = 0), index = 0)
private String translated_reloadData(String string, Object p0) {
return new TranslatableText("text.translated_server.saved", p0).getString();
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package fr.catcore.translated.server.mixin;
package fr.catcore.translated.server.mixin_1_14;

import net.minecraft.server.WorldGenerationProgressLogger;
import net.minecraft.text.TranslatableText;
Expand Down
20 changes: 20 additions & 0 deletions 1.15.2/src/main/resources/fabric.mod.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"schemaVersion": 1,
"id": "translated_server_1_15",
"version": "${version}",
"name": "Translated Server Log 1.15",
"description": "",
"authors": [
"CatCore"
],
"contact": {},
"license": "MIT",
"environment": "server",
"entrypoints": {},
"mixins": [
"translated.server.1_15.mixins.json"
],
"depends": {
"fabricloader": ">=0.9.0+build.204"
}
}
20 changes: 20 additions & 0 deletions 1.15.2/src/main/resources/translated.server.1_15.mixins.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"required": true,
"minVersion": "0.8",
"package": "fr.catcore.translated.server.mixin_1_14",
"compatibilityLevel": "JAVA_8",
"mixins": [
"MixinAdvancementManager",
"MixinLanguage",
"MixinMinecraftDedicatedServer",
"MixinMinecraftServer",
"MixinRecipeManager",
"MixinReloadableResourceManagerImpl",
"MixinThreadedAnvilChunkStorage",
"MixinWorldGenerationProgressLogger"
],
"injectors": {
"defaultRequire": 1
},
"plugin": "fr.catcore.translated.server.mixin_1_14.MixinPlugin"
}
6 changes: 6 additions & 0 deletions 1.16.1/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
archivesBaseName = "1.16.1"
version = getSubprojectVersion()

dependencies {
compile project(path: ':common')
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package fr.catcore.translated.server.mixin_1_16;

import net.minecraft.advancement.AdvancementManager;
import net.minecraft.text.TranslatableText;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.ModifyArg;

@Mixin(AdvancementManager.class)
public class MixinAdvancementManager {

@ModifyArg(method = "load", at = @At(value = "INVOKE", target = "Lorg/apache/logging/log4j/Logger;info(Ljava/lang/String;Ljava/lang/Object;)V", ordinal = 0), index = 0)
private String translated_loaded(String string, Object p0) {
return new TranslatableText("text.translated_server.loaded.advancement", p0).getString();
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package fr.catcore.translated.server.mixin;
package fr.catcore.translated.server.mixin_1_16;

import fr.catcore.translated.server.TranslatedServerLog;
import fr.catcore.translated.server.resource.language.ServerLanguage;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package fr.catcore.translated.server.mixin;
package fr.catcore.translated.server.mixin_1_16;

import net.minecraft.server.dedicated.MinecraftDedicatedServer;
import net.minecraft.text.TranslatableText;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package fr.catcore.translated.server.mixin;
package fr.catcore.translated.server.mixin_1_16;

import net.minecraft.server.MinecraftServer;
import net.minecraft.text.TranslatableText;
Expand Down Expand Up @@ -33,4 +33,14 @@ private String translated_savePlayers(String string) {
private String translated_saveWorlds(String string) {
return new TranslatableText("text.translated_server.save.worlds").getString();
}

@ModifyArg(method = "loadDataPacks", at = @At(value = "INVOKE", target = "Lorg/apache/logging/log4j/Logger;info(Ljava/lang/String;Ljava/lang/Object;)V", ordinal = 0), index = 0)
private static String translated_reloadData(String string, Object p0) {
return new TranslatableText("text.translated_server.new.datapack", p0).getString();
}

@ModifyArg(method = "loadDataPacks", at = @At(value = "INVOKE", target = "Lorg/apache/logging/log4j/Logger;info(Ljava/lang/String;)V", ordinal = 0), index = 0)
private static String translated_forcingVanilla(String string) {
return new TranslatableText("text.translated_server.force").getString();
}
}
Loading

0 comments on commit ecc357b

Please sign in to comment.