Reformat and exclude .idea
This commit is contained in:
parent
2198a126cd
commit
129ed53127
5
.gitignore
vendored
5
.gitignore
vendored
|
@ -5,10 +5,7 @@ build/
|
||||||
!**/src/test/**/build/
|
!**/src/test/**/build/
|
||||||
|
|
||||||
### IntelliJ IDEA ###
|
### IntelliJ IDEA ###
|
||||||
.idea/modules.xml
|
.idea/
|
||||||
.idea/jarRepositories.xml
|
|
||||||
.idea/compiler.xml
|
|
||||||
.idea/libraries/
|
|
||||||
*.iws
|
*.iws
|
||||||
*.iml
|
*.iml
|
||||||
*.ipr
|
*.ipr
|
||||||
|
|
3
.idea/.gitignore
vendored
3
.idea/.gitignore
vendored
|
@ -1,3 +0,0 @@
|
||||||
# Default ignored files
|
|
||||||
/shelf/
|
|
||||||
/workspace.xml
|
|
|
@ -1,17 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="GradleMigrationSettings" migrationVersion="1" />
|
|
||||||
<component name="GradleSettings">
|
|
||||||
<option name="linkedExternalProjectsSettings">
|
|
||||||
<GradleProjectSettings>
|
|
||||||
<option name="externalProjectPath" value="$PROJECT_DIR$" />
|
|
||||||
<option name="gradleHome" value="" />
|
|
||||||
<option name="modules">
|
|
||||||
<set>
|
|
||||||
<option value="$PROJECT_DIR$" />
|
|
||||||
</set>
|
|
||||||
</option>
|
|
||||||
</GradleProjectSettings>
|
|
||||||
</option>
|
|
||||||
</component>
|
|
||||||
</project>
|
|
|
@ -1,7 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="ExternalStorageConfigurationManager" enabled="true" />
|
|
||||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_21" default="true" project-jdk-name="temurin-21" project-jdk-type="JavaSDK">
|
|
||||||
<output url="file://$PROJECT_DIR$/out" />
|
|
||||||
</component>
|
|
||||||
</project>
|
|
|
@ -1,124 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="Palette2">
|
|
||||||
<group name="Swing">
|
|
||||||
<item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false">
|
|
||||||
<default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" />
|
|
||||||
</item>
|
|
||||||
<item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false">
|
|
||||||
<default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" />
|
|
||||||
</item>
|
|
||||||
<item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.svg" removable="false" auto-create-binding="false" can-attach-label="false">
|
|
||||||
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
|
|
||||||
</item>
|
|
||||||
<item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.svg" removable="false" auto-create-binding="false" can-attach-label="true">
|
|
||||||
<default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" />
|
|
||||||
</item>
|
|
||||||
<item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.svg" removable="false" auto-create-binding="true" can-attach-label="false">
|
|
||||||
<default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" />
|
|
||||||
<initial-values>
|
|
||||||
<property name="text" value="Button" />
|
|
||||||
</initial-values>
|
|
||||||
</item>
|
|
||||||
<item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.svg" removable="false" auto-create-binding="true" can-attach-label="false">
|
|
||||||
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
|
|
||||||
<initial-values>
|
|
||||||
<property name="text" value="RadioButton" />
|
|
||||||
</initial-values>
|
|
||||||
</item>
|
|
||||||
<item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.svg" removable="false" auto-create-binding="true" can-attach-label="false">
|
|
||||||
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
|
|
||||||
<initial-values>
|
|
||||||
<property name="text" value="CheckBox" />
|
|
||||||
</initial-values>
|
|
||||||
</item>
|
|
||||||
<item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.svg" removable="false" auto-create-binding="false" can-attach-label="false">
|
|
||||||
<default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
|
|
||||||
<initial-values>
|
|
||||||
<property name="text" value="Label" />
|
|
||||||
</initial-values>
|
|
||||||
</item>
|
|
||||||
<item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
|
|
||||||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
|
|
||||||
<preferred-size width="150" height="-1" />
|
|
||||||
</default-constraints>
|
|
||||||
</item>
|
|
||||||
<item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
|
|
||||||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
|
|
||||||
<preferred-size width="150" height="-1" />
|
|
||||||
</default-constraints>
|
|
||||||
</item>
|
|
||||||
<item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
|
|
||||||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
|
|
||||||
<preferred-size width="150" height="-1" />
|
|
||||||
</default-constraints>
|
|
||||||
</item>
|
|
||||||
<item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.svg" removable="false" auto-create-binding="true" can-attach-label="true">
|
|
||||||
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
|
|
||||||
<preferred-size width="150" height="50" />
|
|
||||||
</default-constraints>
|
|
||||||
</item>
|
|
||||||
<item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.svg" removable="false" auto-create-binding="true" can-attach-label="true">
|
|
||||||
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
|
|
||||||
<preferred-size width="150" height="50" />
|
|
||||||
</default-constraints>
|
|
||||||
</item>
|
|
||||||
<item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.svg" removable="false" auto-create-binding="true" can-attach-label="true">
|
|
||||||
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
|
|
||||||
<preferred-size width="150" height="50" />
|
|
||||||
</default-constraints>
|
|
||||||
</item>
|
|
||||||
<item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.svg" removable="false" auto-create-binding="true" can-attach-label="true">
|
|
||||||
<default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" />
|
|
||||||
</item>
|
|
||||||
<item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.svg" removable="false" auto-create-binding="true" can-attach-label="false">
|
|
||||||
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
|
|
||||||
<preferred-size width="150" height="50" />
|
|
||||||
</default-constraints>
|
|
||||||
</item>
|
|
||||||
<item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.svg" removable="false" auto-create-binding="true" can-attach-label="false">
|
|
||||||
<default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3">
|
|
||||||
<preferred-size width="150" height="50" />
|
|
||||||
</default-constraints>
|
|
||||||
</item>
|
|
||||||
<item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.svg" removable="false" auto-create-binding="true" can-attach-label="false">
|
|
||||||
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
|
|
||||||
<preferred-size width="150" height="50" />
|
|
||||||
</default-constraints>
|
|
||||||
</item>
|
|
||||||
<item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.svg" removable="false" auto-create-binding="true" can-attach-label="false">
|
|
||||||
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
|
|
||||||
<preferred-size width="200" height="200" />
|
|
||||||
</default-constraints>
|
|
||||||
</item>
|
|
||||||
<item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.svg" removable="false" auto-create-binding="false" can-attach-label="false">
|
|
||||||
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
|
|
||||||
<preferred-size width="200" height="200" />
|
|
||||||
</default-constraints>
|
|
||||||
</item>
|
|
||||||
<item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.svg" removable="false" auto-create-binding="true" can-attach-label="true">
|
|
||||||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
|
|
||||||
</item>
|
|
||||||
<item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.svg" removable="false" auto-create-binding="true" can-attach-label="false">
|
|
||||||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
|
|
||||||
</item>
|
|
||||||
<item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.svg" removable="false" auto-create-binding="false" can-attach-label="false">
|
|
||||||
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" />
|
|
||||||
</item>
|
|
||||||
<item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.svg" removable="false" auto-create-binding="true" can-attach-label="false">
|
|
||||||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" />
|
|
||||||
</item>
|
|
||||||
<item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.svg" removable="false" auto-create-binding="false" can-attach-label="false">
|
|
||||||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1">
|
|
||||||
<preferred-size width="-1" height="20" />
|
|
||||||
</default-constraints>
|
|
||||||
</item>
|
|
||||||
<item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.svg" removable="false" auto-create-binding="false" can-attach-label="false">
|
|
||||||
<default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" />
|
|
||||||
</item>
|
|
||||||
<item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.svg" removable="false" auto-create-binding="true" can-attach-label="false">
|
|
||||||
<default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" />
|
|
||||||
</item>
|
|
||||||
</group>
|
|
||||||
</component>
|
|
||||||
</project>
|
|
|
@ -1,6 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="VcsDirectoryMappings">
|
|
||||||
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
|
||||||
</component>
|
|
||||||
</project>
|
|
|
@ -25,7 +25,7 @@ public class HttpHelper {
|
||||||
return getString(url).map(s -> GSON.fromJson(s, JsonObject.class));
|
return getString(url).map(s -> GSON.fromJson(s, JsonObject.class));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Optional<String> getString(String url){
|
public static Optional<String> getString(String url) {
|
||||||
return Optional.ofNullable(requestCache.computeIfAbsent(url, s -> {
|
return Optional.ofNullable(requestCache.computeIfAbsent(url, s -> {
|
||||||
try (InputStream in = URI.create(url).parseServerAuthority().toURL().openStream()) {
|
try (InputStream in = URI.create(url).parseServerAuthority().toURL().openStream()) {
|
||||||
return new String(in.readAllBytes(), StandardCharsets.UTF_8);
|
return new String(in.readAllBytes(), StandardCharsets.UTF_8);
|
||||||
|
|
|
@ -5,16 +5,16 @@ import io.github.moehreag.mojmap_patcher.parser.MojmapParser;
|
||||||
|
|
||||||
public class MojMapPatcher {
|
public class MojMapPatcher {
|
||||||
|
|
||||||
public static void main(String[] args){
|
public static void main(String[] args) {
|
||||||
String version;
|
String version;
|
||||||
if (args.length == 0){
|
if (args.length == 0) {
|
||||||
version = "latest-release";
|
version = "latest-release";
|
||||||
} else {
|
} else {
|
||||||
version = args[0];
|
version = args[0];
|
||||||
}
|
}
|
||||||
MojmapLoader.get(version).map(MojmapParser::read).ifPresent(s -> {
|
MojmapLoader.get(version).map(MojmapParser::read).ifPresent(s -> {
|
||||||
//s.getClassFields().keySet().forEach(System.out::println);
|
//s.getClassFields().keySet().forEach(System.out::println);
|
||||||
s.getClassFields().get("net.minecraft.client.Minecraft").forEach((s1, s2) -> System.out.println(s1+" -> "+s2));
|
s.getClassFields().get("net.minecraft.client.Minecraft").forEach((s1, s2) -> System.out.println(s1 + " -> " + s2));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,43 +13,43 @@ public class Mapper extends Remapper {
|
||||||
|
|
||||||
private Data data;
|
private Data data;
|
||||||
|
|
||||||
public static Mapper load(){
|
public static Mapper load() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public String mapClass(String name){
|
public String mapClass(String name) {
|
||||||
return data.getClasses().getOrDefault(name, name);
|
return data.getClasses().getOrDefault(name, name);
|
||||||
}
|
}
|
||||||
|
|
||||||
private Optional<Method> mapMethodInternal(String owner, String name, String descriptor){
|
private Optional<Method> mapMethodInternal(String owner, String name, String descriptor) {
|
||||||
for (Map.Entry<Method, Method> entry : data.getClassMethods().getOrDefault(owner, Collections.emptyMap()).entrySet()) {
|
for (Map.Entry<Method, Method> entry : data.getClassMethods().getOrDefault(owner, Collections.emptyMap()).entrySet()) {
|
||||||
Method from = entry.getKey();
|
Method from = entry.getKey();
|
||||||
Method to = entry.getValue();
|
Method to = entry.getValue();
|
||||||
|
|
||||||
if (from.name().equals(name) && from.descriptor().equals(descriptor)){
|
if (from.name().equals(name) && from.descriptor().equals(descriptor)) {
|
||||||
return Optional.of(to);
|
return Optional.of(to);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return Optional.empty();
|
return Optional.empty();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Method mapMethod(String owner, String name, String descriptor){
|
public Method mapMethod(String owner, String name, String descriptor) {
|
||||||
return mapMethodInternal(owner, name, descriptor).orElse(null);
|
return mapMethodInternal(owner, name, descriptor).orElse(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
private Optional<Field> mapFieldInternal(String owner, String name, String descriptor){
|
private Optional<Field> mapFieldInternal(String owner, String name, String descriptor) {
|
||||||
for (Map.Entry<Field, Field> entry : data.getClassFields().getOrDefault(owner, Collections.emptyMap()).entrySet()) {
|
for (Map.Entry<Field, Field> entry : data.getClassFields().getOrDefault(owner, Collections.emptyMap()).entrySet()) {
|
||||||
Field from = entry.getKey();
|
Field from = entry.getKey();
|
||||||
Field to = entry.getValue();
|
Field to = entry.getValue();
|
||||||
|
|
||||||
if (from.name().equals(name) && from.descriptor().equals(descriptor)){
|
if (from.name().equals(name) && from.descriptor().equals(descriptor)) {
|
||||||
return Optional.of(to);
|
return Optional.of(to);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return Optional.empty();
|
return Optional.empty();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Field mapField(String owner, String name, String descriptor){
|
public Field mapField(String owner, String name, String descriptor) {
|
||||||
return mapFieldInternal(owner, name, descriptor).orElse(null);
|
return mapFieldInternal(owner, name, descriptor).orElse(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -8,11 +8,11 @@ public class Remapper {
|
||||||
this.mapper = mapper;
|
this.mapper = mapper;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Remapper of(Mapper mapper){
|
public static Remapper of(Mapper mapper) {
|
||||||
return new Remapper(mapper);
|
return new Remapper(mapper);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void apply(){
|
public void apply() {
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,17 +9,15 @@ import java.util.Optional;
|
||||||
public class MojmapLoader {
|
public class MojmapLoader {
|
||||||
|
|
||||||
public static Optional<String> get(String gameVersion) {
|
public static Optional<String> get(String gameVersion) {
|
||||||
|
|
||||||
return HttpHelper.getJson(Constants.VERSION_MANIFEST).map(manifest -> {
|
return HttpHelper.getJson(Constants.VERSION_MANIFEST).map(manifest -> {
|
||||||
|
|
||||||
String versionName;
|
String versionName;
|
||||||
if (gameVersion.startsWith("latest-")){
|
if (gameVersion.startsWith("latest-")) {
|
||||||
versionName = manifest.get("latest").getAsJsonObject().get(gameVersion.split("-")[1]).getAsString();
|
versionName = manifest.get("latest").getAsJsonObject().get(gameVersion.split("-")[1]).getAsString();
|
||||||
} else {
|
} else {
|
||||||
versionName = gameVersion;
|
versionName = gameVersion;
|
||||||
}
|
}
|
||||||
|
|
||||||
System.out.println("Loading version: "+versionName);
|
System.out.println("Loading version: " + versionName);
|
||||||
|
|
||||||
for (JsonElement element : manifest.get("versions").getAsJsonArray()) {
|
for (JsonElement element : manifest.get("versions").getAsJsonArray()) {
|
||||||
JsonObject version = element.getAsJsonObject();
|
JsonObject version = element.getAsJsonObject();
|
||||||
|
|
|
@ -9,29 +9,29 @@ import java.util.HashMap;
|
||||||
|
|
||||||
public class MojmapParser {
|
public class MojmapParser {
|
||||||
|
|
||||||
public static MojmapData read(String mappings){
|
public static MojmapData read(String mappings) {
|
||||||
String[] lines = mappings.split("\n");
|
String[] lines = mappings.split("\n");
|
||||||
|
|
||||||
MojmapData data = new MojmapData();
|
MojmapData data = new MojmapData();
|
||||||
String currentClass = null;
|
String currentClass = null;
|
||||||
for (String line : lines) {
|
for (String line : lines) {
|
||||||
if (line.startsWith("#")){ // Filter out comments
|
if (line.startsWith("#")) { // Filter out comments
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
String[] mapping = line.split("->");
|
String[] mapping = line.split("->");
|
||||||
String deobf = mapping[0].trim();
|
String deobf = mapping[0].trim();
|
||||||
String obf = mapping[1].trim();
|
String obf = mapping[1].trim();
|
||||||
if (line.startsWith(" ")){ // It's a field/method mapping
|
if (line.startsWith(" ")) { // It's a field/method mapping
|
||||||
if (currentClass == null){
|
if (currentClass == null) {
|
||||||
throw new IllegalStateException("Field/Method mapping outside a class");
|
throw new IllegalStateException("Field/Method mapping outside a class");
|
||||||
}
|
}
|
||||||
if (Constants.METHOD_PATTERN.matcher(deobf).matches()){
|
if (Constants.METHOD_PATTERN.matcher(deobf).matches()) {
|
||||||
String[] method = deobf.split(":");
|
String[] method = deobf.split(":");
|
||||||
String[] descriptor = method[2].split(" ");
|
String[] descriptor = method[2].split(" ");
|
||||||
int bracket = descriptor[1].indexOf("(");
|
int bracket = descriptor[1].indexOf("(");
|
||||||
data.getClassMethods().computeIfAbsent(currentClass, s -> new HashMap<>()).put(new Method(Integer.parseInt(method[0]), Integer.parseInt(method[1]), obf, descriptor[1].substring(0, bracket), descriptor[1].substring(bracket+1)),
|
data.getClassMethods().computeIfAbsent(currentClass, s -> new HashMap<>()).put(new Method(Integer.parseInt(method[0]), Integer.parseInt(method[1]), obf, descriptor[1].substring(0, bracket), descriptor[1].substring(bracket + 1)),
|
||||||
new Method(Integer.parseInt(method[0]), Integer.parseInt(method[1]), descriptor[0], descriptor[1].substring(0, bracket), descriptor[1].substring(bracket+1)));
|
new Method(Integer.parseInt(method[0]), Integer.parseInt(method[1]), descriptor[0], descriptor[1].substring(0, bracket), descriptor[1].substring(bracket + 1)));
|
||||||
} else {
|
} else {
|
||||||
String[] field = deobf.split(" ");
|
String[] field = deobf.split(" ");
|
||||||
data.getClassFields().computeIfAbsent(currentClass, s -> new HashMap<>()).put(new Field(field[1], obf), new Field(field[1], field[0]));
|
data.getClassFields().computeIfAbsent(currentClass, s -> new HashMap<>()).put(new Field(field[1], obf), new Field(field[1], field[0]));
|
||||||
|
|
Loading…
Reference in a new issue