Skip to content

Commit

Permalink
1.2.7
Browse files Browse the repository at this point in the history
  • Loading branch information
3093FengMing committed Jan 25, 2023
1 parent b1a6590 commit 3214287
Show file tree
Hide file tree
Showing 12 changed files with 62 additions and 32 deletions.
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ apply plugin: 'net.minecraftforge.gradle'
apply plugin: 'org.spongepowered.mixin'


version = 'forge-1.2.6+1.18.2'
version = 'forge-1.2.7+1.18.2'
group = 'me.fengming.vaultpatcher' // http://maven.apache.org/guides/mini/guide-naming-conventions.html
archivesBaseName = 'vaultpatcher'

Expand Down
19 changes: 14 additions & 5 deletions src/main/java/me/fengming/vaultpatcher/ThePatcher.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,24 +11,33 @@ public ThePatcher() {
}

public static String patch(String s) {
if (s == null || s.trim().equals("")) {
if (s == null || s.isBlank()) {
return s;
}
VaultPatcher.exportList.add(s);
Utils.addToExportList(s);
// VaultPatcher.LOGGER.info(Arrays.toString(Thread.currentThread().getStackTrace()));
String ret;
for (VaultPatcherPatch vpp : VaultPatcher.vpps) {
StackTraceElement[] stacks = Thread.currentThread().getStackTrace();
ret = vpp.patch(s, stacks);
DebugMode debug = VaultPatcherConfig.getDebugMode();
String format = debug.getOutputFormat();
if (ret != null && !ret.equals(s)) {
if (debug.isEnable() && debug.getOutputMode() == 0) {
VaultPatcher.LOGGER.info(String.format(debug.getOutputFormat(), s, ret, Arrays.toString(stacks)));
if (debug.isEnable() && (debug.getOutputMode() == 1 || debug.getOutputMode() == 0)) {
VaultPatcher.LOGGER.info(
format.replace("<source>", s)
.replace("<target>", ret)
.replace("<stack>", Arrays.toString(stacks))
);
}
return ret;
} else {
if (debug.isEnable() && debug.getOutputMode() == 1) {
VaultPatcher.LOGGER.info(String.format(debug.getOutputFormat(), s, ret, Arrays.toString(stacks)));
VaultPatcher.LOGGER.info(
format.replace("<source>", s)
.replace("<target>", s)
.replace("<stack>", Arrays.toString(stacks))
);
}
return s;
}
Expand Down
15 changes: 15 additions & 0 deletions src/main/java/me/fengming/vaultpatcher/Utils.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,21 @@
package me.fengming.vaultpatcher;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

public class Utils {
public static final String MOD_ID = "vaultpatcher";
public static final String MOD_NAME = "Vault Patcher";
public static ArrayList<String> exportList = new ArrayList<>();
public static Map<String, Boolean> exported = new HashMap<>();
public static void addToExportList(String text) {
if (!exported.getOrDefault(text, false) || !isInExportList(text)) {
exported.put(text, true);
exportList.add(text);
}
}
public static boolean isInExportList(String text) {
return exportList.lastIndexOf(text) != -1;
}
}
1 change: 0 additions & 1 deletion src/main/java/me/fengming/vaultpatcher/VaultPatcher.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@
@Mod(Utils.MOD_ID)
public class VaultPatcher {
public static final Logger LOGGER = LogUtils.getLogger();
public static ArrayList<String> exportList = new ArrayList<>();
public static List<VaultPatcherPatch> vpps = new ArrayList<>();

@Mod.EventBusSubscriber(modid = Utils.MOD_ID, bus = Mod.EventBusSubscriber.Bus.MOD)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package me.fengming.vaultpatcher.command;

import com.mojang.brigadier.CommandDispatcher;
import com.mojang.brigadier.tree.LiteralCommandNode;
import me.fengming.vaultpatcher.Utils;
import net.minecraft.commands.CommandSourceStack;
import net.minecraft.commands.Commands;
Expand All @@ -14,18 +15,18 @@ public class CommandEventHandler {
@SubscribeEvent(priority = EventPriority.HIGHEST)
public static void registerClientCommands(RegisterClientCommandsEvent event) {
CommandDispatcher<CommandSourceStack> dispatcher = event.getDispatcher();
dispatcher.register(
LiteralCommandNode<CommandSourceStack> cmd = dispatcher.register(
Commands.literal(Utils.MOD_ID
).then(
Commands.literal("export")
.executes(ExportCommand.instance)
).then(
Commands.literal("list")
.executes(ListCommand.instance)
).then(
Commands.literal("reload")
.executes(ReloadCommand.instance)
)
);
).then(
Commands.literal("export")
.executes(ExportCommand.instance)
).then(
Commands.literal("list")
.executes(ListCommand.instance)
).then(
Commands.literal("reload")
.executes(ReloadCommand.instance)
));
dispatcher.register(Commands.literal("vp").redirect(cmd));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import com.google.gson.reflect.TypeToken;
import com.mojang.brigadier.Command;
import com.mojang.brigadier.context.CommandContext;
import me.fengming.vaultpatcher.Utils;
import net.minecraft.commands.CommandSourceStack;
import net.minecraft.network.chat.TranslatableComponent;
import net.minecraftforge.fml.loading.FMLPaths;
Expand All @@ -14,7 +15,6 @@
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;

import static me.fengming.vaultpatcher.VaultPatcher.exportList;


public class ExportCommand implements Command<CommandSourceStack> {
Expand All @@ -24,9 +24,9 @@ public class ExportCommand implements Command<CommandSourceStack> {
public int run(CommandContext<CommandSourceStack> context) {
context.getSource().sendSuccess(new TranslatableComponent("commands.vaultpatcher.export.warning.wip"), true);
Gson gson = new Gson();
String json = gson.toJson(exportList, new TypeToken<ArrayList<String>>() {
String json = gson.toJson(Utils.exportList, new TypeToken<ArrayList<String>>() {
}.getType());
//Export langs
// Export
try {
BufferedWriter bw = new BufferedWriter(
new FileWriter(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ public class DebugMode {

private int outputMode = 0;

private String outputFormat = "%s -> %s";
private String outputFormat = "<source> -> <target>";

public boolean isEnable() {
return isEnable;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ public void readConfig() throws IOException {
if (Files.notExists(patchFile)) {
Files.createFile(patchFile);
}
try (var jsonReader = GSON.newJsonReader(new InputStreamReader(new FileInputStream(patchFile.toFile())))) {
try (JsonReader jsonReader = GSON.newJsonReader(new InputStreamReader(new FileInputStream(patchFile.toFile())))) {
readConfig(jsonReader);
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package me.fengming.vaultpatcher.mixin;

import me.fengming.vaultpatcher.ThePatcher;
import me.fengming.vaultpatcher.Utils;
import net.minecraft.network.chat.*;
import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin;
Expand Down Expand Up @@ -39,6 +40,9 @@ private void proxy_getSiblings(CallbackInfoReturnable<List<Component>> cir) {
@Shadow
public abstract MutableComponent copy();

@Shadow
public abstract Style getStyle();

@ModifyArg(
method = "getVisualOrderText",
at = @At(
Expand All @@ -49,7 +53,7 @@ private void proxy_getSiblings(CallbackInfoReturnable<List<Component>> cir) {
private FormattedText proxy_getVisualOrder(FormattedText p_128116_) {
if (p_128116_ instanceof TextComponent) {
String c = ThePatcher.patch(p_128116_.getString());
return new TextComponent(c);
return new TextComponent(c).setStyle(this.getStyle());
}
return p_128116_;
}
Expand All @@ -61,7 +65,7 @@ private FormattedText proxy_getVisualOrder(FormattedText p_128116_) {
)
private void proxy_append(Component p_130585_, CallbackInfoReturnable<MutableComponent> cir) {
String c = ThePatcher.patch(p_130585_.getString());
this.siblings.add(new TextComponent(c));
this.siblings.add(new TextComponent(c).setStyle(this.getStyle()));
cir.setReturnValue(this.copy());
}

Expand Down
3 changes: 2 additions & 1 deletion src/main/java/me/fengming/vaultpatcher/mixin/FontMixin.java
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
package me.fengming.vaultpatcher.mixin;

import me.fengming.vaultpatcher.ThePatcher;
import me.fengming.vaultpatcher.Utils;
import net.minecraft.client.gui.Font;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.ModifyArg;

import java.util.Objects;

@Mixin(value = Font.class, priority = Integer.MAX_VALUE)
@Mixin(value = Font.class)
public class FontMixin {

// String
Expand Down
Original file line number Diff line number Diff line change
@@ -1,28 +1,29 @@
package me.fengming.vaultpatcher.mixin;

import me.fengming.vaultpatcher.ThePatcher;
import me.fengming.vaultpatcher.Utils;
import net.minecraft.network.chat.TextComponent;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.gen.Accessor;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;

@Mixin(value = TextComponent.class, priority = Integer.MAX_VALUE)
@Mixin(value = TextComponent.class)
public abstract class TextComponentMixin {

@Accessor("text")
abstract String getText1();
abstract String getText_();

@Inject(method = "getContents", at = @At("HEAD"), cancellable = true)
private void proxy_getContents(CallbackInfoReturnable<String> cir) {
String c = ThePatcher.patch(this.getText1());
String c = ThePatcher.patch(this.getText_());
if (c != null) cir.setReturnValue(c);
}

@Inject(method = "getText", at = @At("HEAD"), cancellable = true)
private void proxy_getText(CallbackInfoReturnable<String> cir) {
String c = ThePatcher.patch(this.getText1());
String c = ThePatcher.patch(this.getText_());
if (c != null) cir.setReturnValue(c);
}

Expand Down
2 changes: 1 addition & 1 deletion src/main/resources/META-INF/mods.toml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ modId = "vaultpatcher" #mandatory
# The version number of the mod - there's a few well known ${} variables useable here or just hardcode it
# ${file.jarVersion} will substitute the value of the Implementation-Version as read from the mod's JAR file metadata
# see the associated build.gradle script for how to populate this completely automatically during a build
version = "1.2.6+1.18.2" #mandatory
version = "1.2.7+1.18.2" #mandatory
# A display name for the mod
displayName = "Vault Patcher" #mandatory
# A URL to query for updates for this mod. See the JSON update specification https://mcforge.readthedocs.io/en/latest/gettingstarted/autoupdate/
Expand Down

0 comments on commit 3214287

Please sign in to comment.