Better Plugin Integration

Instead of plugins running instantly you are given the option to edit them using the Plugin Writer
This commit is contained in:
Konloch 2021-07-08 01:50:57 -07:00
parent 42d914d7a6
commit dca90245e5
2 changed files with 16 additions and 7 deletions

View file

@ -8,7 +8,9 @@ import javax.swing.*;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.google.gson.GsonBuilder; import com.google.gson.GsonBuilder;
import me.konloch.kontainer.io.DiskReader;
import org.apache.commons.io.FileUtils; import org.apache.commons.io.FileUtils;
import org.apache.commons.io.FilenameUtils;
import org.objectweb.asm.tree.ClassNode; import org.objectweb.asm.tree.ClassNode;
import the.bytecode.club.bootloader.Boot; import the.bytecode.club.bootloader.Boot;
import the.bytecode.club.bytecodeviewer.api.ExceptionUI; import the.bytecode.club.bytecodeviewer.api.ExceptionUI;
@ -19,6 +21,7 @@ import the.bytecode.club.bytecodeviewer.gui.MainViewerGUI;
import the.bytecode.club.bytecodeviewer.gui.resourceviewer.viewer.ResourceViewer; import the.bytecode.club.bytecodeviewer.gui.resourceviewer.viewer.ResourceViewer;
import the.bytecode.club.bytecodeviewer.obfuscators.mapping.Refactorer; import the.bytecode.club.bytecodeviewer.obfuscators.mapping.Refactorer;
import the.bytecode.club.bytecodeviewer.plugin.PluginManager; import the.bytecode.club.bytecodeviewer.plugin.PluginManager;
import the.bytecode.club.bytecodeviewer.plugin.PluginWriter;
import the.bytecode.club.bytecodeviewer.util.*; import the.bytecode.club.bytecodeviewer.util.*;
import the.bytecode.club.bytecodeviewer.resources.importing.ImportResource; import the.bytecode.club.bytecodeviewer.resources.importing.ImportResource;
@ -549,11 +552,15 @@ public class BytecodeViewer
return; return;
} }
try { try
PluginManager.runPlugin(file); {
} catch (Throwable e) { PluginWriter writer = new PluginWriter(DiskReader.loadAsString(file.getAbsolutePath()), file.getName());
writer.setSourceFile(file);
writer.setVisible(true);
} catch (Exception e) {
BytecodeViewer.handleException(e); BytecodeViewer.handleException(e);
} }
addRecentPlugin(file); addRecentPlugin(file);
} }

View file

@ -74,9 +74,9 @@ public class PluginWriter extends JFrame
menuSave.setVisible(false); menuSave.setVisible(false);
menuBar.add(menu); menuBar.add(menu);
menu.add(menuRun);
menu.add(menuSaveAs); menu.add(menuSaveAs);
menu.add(menuSave); menu.add(menuSave);
menu.add(menuRun);
setJMenuBar(menuBar); setJMenuBar(menuBar);
add(area.getScrollPane()); add(area.getScrollPane());
@ -98,7 +98,7 @@ public class PluginWriter extends JFrame
try try
{ {
//write to temporary file location //write to temporary file location
DiskWriter.replaceFile(tempFile.getAbsolutePath(), area.getText(), false); DiskWriter.replaceFile(tempFile.getAbsolutePath(), area.getText(), true);
//run plugin from that location //run plugin from that location
PluginManager.runPlugin(tempFile); PluginManager.runPlugin(tempFile);
} }
@ -170,7 +170,9 @@ public class PluginWriter extends JFrame
{ {
menuSaveAs.setVisible(false); menuSaveAs.setVisible(false);
menuSave.setVisible(true); menuSave.setVisible(true);
menuSaveAs.updateUI();
menuSave.updateUI();
savePath = file; savePath = file;
setPluginName(file.getAbsolutePath()); setPluginName(file.getName());
} }
} }