evo/src/main/java/defpackage/an.java

189 lines
6.3 KiB
Java

package defpackage;
import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.function.Consumer;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import net.fabricmc.fabric.api.resource.SimpleSynchronousResourceReloadListener;
import net.fabricmc.loader.api.FabricLoader;
import net.minecraft.resources.Identifier;
import net.minecraft.server.packs.resources.Resource;
import net.minecraft.server.packs.resources.ResourceManager;
public class an implements SimpleSynchronousResourceReloadListener {
public Identifier getFabricId() {
return Identifier.fromNamespaceAndPath(
"holdmyitems",
"lua_animation_loader"
);
}
private String preprocessScript(String var1) {
if (var1 != null && !var1.isEmpty()) {
Pattern var2 = Pattern.compile(
"global\\.(\\w+)\\s*=\\s*([^;]+)\\s*;"
);
Pattern var3 = Pattern.compile("\\$\\{(\\w+)\\}");
HashSet var4 = new HashSet();
StringBuilder var5 = new StringBuilder();
boolean var6 = FabricLoader.getInstance()
.isModLoaded("respackopts");
String[] var7 = var1.split("\\r?\\n");
int var8 = var7.length;
for (int var9 = 0; var9 < var8; var9++) {
String var10 = var7[var9];
if (!var6) {
Matcher var11 = var3.matcher(var10);
StringBuffer var12 = new StringBuffer();
while (var11.find()) {
var11.appendReplacement(var12, "0");
}
var11.appendTail(var12);
var10 = var12.toString();
}
Matcher var18 = var2.matcher(var10);
StringBuffer var19 = new StringBuffer();
int var13;
for (var13 = 0; var18.find(); var13 = (-635426822 | 635426823) + (-635426822 & 635426823)) {
String var14 = var18.group((-1722895039 ^ 1722895040) + ((-1722895039 & 1722895040) << 1));
String var15 = var18.group(2).trim();
var4.add(var14);
var18.appendReplacement(var19, "local " + var14 + " = registry:getOrDefault('" + var14 + "', " + var15 + ")");
}
var18.appendTail(var19);
if (var13 != 0) {
var5.append(var19.toString());
} else {
var5.append(var10);
}
var5.append("\n");
}
if (!var4.isEmpty()) {
var5.append("\n-- PERSIST VARIABLES\n");
for (String var17 : (Iterable<String>)var4) {
var5.append("registry:put('")
.append(var17)
.append("', ")
.append(var17)
.append(")\n");
}
}
return var5.toString();
} else {
return var1;
}
}
public void onResourceManagerReload(ResourceManager var1) {
af.renderAsBlock.clear();
af.translateItem.clear();
af.registry.clear();
af.useDuration.clear();
af.applyBlockRotation.clear();
this.loadSingle(var1, "holdmyitems/hand_pose.lua", var0 -> {
try {
am.handScriptCache = new aj(var0);
} catch (IOException var2) {
throw new RuntimeException(var2);
}
});
this.loadSingle(var1, "holdmyitems/item_pose.lua", var0 -> {
try {
am.itemScriptCache = new aj(var0);
} catch (IOException var2) {
throw new RuntimeException(var2);
}
});
this.loadSingle(var1, "holdmyitems/hand_relative_pose.lua", var0 -> {
try {
am.handRelativeScriptCache = new aj(var0);
} catch (IOException var2) {
throw new RuntimeException(var2);
}
});
this.loadSingle(var1, "holdmyitems/item_model.lua", var0 -> {
try {
am.itemModelCache = new al(var0);
} catch (IOException var2) {
throw new RuntimeException(var2);
}
});
am.handAddonsCache = this.loadMultiple(var1, "holdmyitems/hand_addon.lua");
am.handRelativeAddonsCache = this.loadMultiple(var1, "holdmyitems/hand_relative_addon.lua");
am.itemAddonsCache = this.loadMultiple(var1, "holdmyitems/item_addon.lua");
am.itemModelAddonsCache = this.loadMultipleModel(var1, "holdmyitems/item_model_addon.lua");
}
private void loadSingle(ResourceManager var1, String var2, Consumer<String> var3) {
Identifier var4 = Identifier.fromNamespaceAndPath("minecraft", var2);
try {
Resource var5 = (Resource)var1.getResource(var4).orElse(null);
if (var5 == null) {
var3.accept("");
return;
}
try (InputStream var6 = var5.open()) {
String var7 = new String(var6.readAllBytes(), StandardCharsets.UTF_8);
var7 = this.preprocessScript(var7);
var3.accept(var7);
}
} catch (Exception var11) {
var3.accept("");
var11.printStackTrace();
}
}
private ArrayList<aj> loadMultiple(ResourceManager var1, String var2) {
Identifier var3 = Identifier.fromNamespaceAndPath("minecraft", var2);
ArrayList var4 = new ArrayList();
try {
for (Resource var6 : var1.getResourceStack(var3)) {
try (InputStream var7 = var6.open()) {
String var8 = new String(var7.readAllBytes(), StandardCharsets.UTF_8);
var8 = this.preprocessScript(var8);
var4.add(new aj(var8));
}
}
} catch (Exception var12) {
var12.printStackTrace();
}
return var4;
}
private ArrayList<al> loadMultipleModel(ResourceManager var1, String var2) {
Identifier var3 = Identifier.fromNamespaceAndPath("minecraft", var2);
ArrayList var4 = new ArrayList();
try {
for (Resource var6 : var1.getResourceStack(var3)) {
try (InputStream var7 = var6.open()) {
String var8 = new String(var7.readAllBytes(), StandardCharsets.UTF_8);
var8 = this.preprocessScript(var8);
var4.add(new al(var8));
}
}
} catch (Exception var12) {
var12.printStackTrace();
}
return var4;
}
}