Skip to content

Commit

Permalink
Jeg har opdateret modul systemet og tilføjet en debug menu
Browse files Browse the repository at this point in the history
  • Loading branch information
TFSMads committed Nov 28, 2023
1 parent af8b9e2 commit d52b230
Show file tree
Hide file tree
Showing 23 changed files with 863 additions and 476 deletions.
55 changes: 27 additions & 28 deletions src/main/java/ml/volder/transporter/TransporterAddon.java
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,10 @@
import java.io.File;
import java.net.InetSocketAddress;
import java.net.SocketAddress;
import java.util.Arrays;
import java.util.List;
import java.util.UUID;
import java.util.stream.Collectors;

//Feature todo list
// Auto Transporter feature - Done
Expand All @@ -41,13 +44,7 @@ public class TransporterAddon extends AddonMain {
private static TransporterAddon instance;

private ItemManager transporterItemManager;

private AutoTransporter autoTransporter;
private MessagesModule messagesModule;
private AutoGetModule autoGetModule;

DataManager<Data> dataManager;

private Key settingsKeybind;

public static boolean isEnabled() {
Expand Down Expand Up @@ -108,21 +105,26 @@ public void onEnable() {

TransporterModulesMenu.addSetting(dropDownElement);

StringElement element = new StringElement(
"Lobbyer",
"updateServere",
new ControlElement.IconData(Material.PAPER),
"limbo,larmelobby,shoppylobby,maskinrummet,creepylobby",
dataManager
);
element.addCallback(this::updateServers);
updateServers(element.getCurrentValue());
TransporterModulesMenu.addSetting(element);


TransporterModulesMenu.addSetting(new HeaderElement(ModColor.WHITE + "Transporter Addon" + ModColor.GRAY + " - " + ModColor.WHITE + "Features"));


//Modules
autoTransporter = new AutoTransporter("autoTransporter", this);
new ServerListModule("serverSelector");
messagesModule = new MessagesModule("messageModule");
new McmmoModule("mcmmoModule");
new ServerModule("serverTrackerModule", this);
new GuiModulesModule("guiModule");
new TransporterMenuModule("transporterMenuModule");
autoGetModule = new AutoGetModule("autoGetModule", this);
new SignToolsModule("signToolsModule");
new BalanceModule("balanceTrackerModule", this);
ModuleManager.getInstance().registerModules();
ModuleManager.getInstance().initModules();
ModuleManager.getInstance().enableModules();


//Events
EventManager.registerEvents(new KeyboardListener());
Expand All @@ -139,30 +141,27 @@ public void onEnable() {
UnikAPI.LOGGER.info("TransporterAddon finished loading");
}

public ItemManager getTransporterItemManager() {
return transporterItemManager;
}
private List<String> serverList;

public MessagesModule getMessagesModule() {
return messagesModule;
private void updateServers(String serverString) {
serverList = Arrays.stream(serverString.split(",")).collect(Collectors.toList());
}

public AutoTransporter getAutoTransporter() {
return autoTransporter;
public List<String> getServerList() {
return serverList;
}

public ItemManager getTransporterItemManager() {
return transporterItemManager;
}
public Key getSettingsKeybind() {
return settingsKeybind;
}

public AutoGetModule getAutoGetModule() {
return autoGetModule;
}

//@Override
public void openSettings(Object o) {
if (PlayerAPI.getAPI().getCurrentScreen() instanceof TransporterModulesMenu)
return;
PlayerAPI.getAPI().openGuiScreen(new TransporterModulesMenu(TransporterAddon.getInstance(), null));
PlayerAPI.getAPI().openGuiScreen(new TransporterModulesMenu(null));
}
}
11 changes: 11 additions & 0 deletions src/main/java/ml/volder/transporter/classes/items/ItemManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -384,6 +384,17 @@ public ItemManager() {
Material.SPRUCE_SAPLING
));

itemList.add(new Item(
"minecraft:glass",
1,
0,
"Glass",
"glass",
"glass",
"glass",
Material.GLASS
));


for (int i = 0; i < 16; i++) {
itemList.add(new Item(
Expand Down
124 changes: 124 additions & 0 deletions src/main/java/ml/volder/transporter/gui/AddonInfoScreen.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
package ml.volder.transporter.gui;

import ml.volder.transporter.TransporterAddon;
import ml.volder.transporter.modules.ModuleManager;
import ml.volder.transporter.modules.SimpleModule;
import ml.volder.transporter.updater.UpdateManager;
import ml.volder.unikapi.UnikAPI;
import ml.volder.unikapi.api.draw.DrawAPI;
import ml.volder.unikapi.api.minecraft.MinecraftAPI;
import ml.volder.unikapi.api.player.PlayerAPI;
import ml.volder.unikapi.keysystem.Key;
import ml.volder.unikapi.keysystem.MouseButton;
import ml.volder.unikapi.types.ModColor;
import ml.volder.unikapi.wrappers.guibutton.WrappedGuiButton;
import ml.volder.unikapi.wrappers.guiscreen.WrappedGuiScreen;

import java.io.IOException;
import java.math.BigInteger;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class AddonInfoScreen extends WrappedGuiScreen {
private static String jarChecksum = null;
private WrappedGuiScreen lastScreen;
private WrappedGuiButton buttonBack;

public AddonInfoScreen(WrappedGuiScreen lastScreen) {
this.lastScreen = lastScreen;
}

@Override
public void updateScreen() {

}

@Override
public void initGui() {
this.clearButtonList();
this.buttonBack = new WrappedGuiButton(1, this.getWidth() / 2 - 100, 20, 22, 20, "<");
this.addButton(buttonBack);
if(jarChecksum == null) {
Path filePath = Paths.get(UpdateManager.getJarLocation());

try {
byte[] data = Files.readAllBytes(filePath);
byte[] hash = MessageDigest.getInstance("SHA-256").digest(data);
jarChecksum = new BigInteger(1, hash).toString(16);
} catch (Exception ignored) {}
}
}

@Override
public void actionPerformed(WrappedGuiButton wrappedGuiButton) {
if(wrappedGuiButton.getId() == 1) {
if(lastScreen != null){
PlayerAPI.getAPI().openGuiScreen(lastScreen);
}else{
PlayerAPI.getAPI().openGuiScreen(null);
}
}
}

@Override
public void drawScreen(int i, int i1, float v) {
DrawAPI drawAPI = DrawAPI.getAPI();
drawAPI.drawAutoDimmedBackground(0);
drawAPI.drawOverlayBackground(0, 45);
drawAPI.drawGradientShadowTop(45.0D, 0.0D, (double)this.getWidth());
drawAPI.drawOverlayBackground(this.getHeight() - 30, this.getHeight());
drawAPI.drawGradientShadowBottom((double)(this.getHeight() - 30), 0.0D, (double)this.getWidth());
drawAPI.drawString("Transporter Addon - Addon Info", (double)(this.getWidth() / 2 - 100 + 30), 25.0D);

int drawY = 50;
drawAPI.drawString("Addon version: " + UpdateManager.currentVersion + " (" + jarChecksum + ")", 10, drawY);
drawY += drawAPI.getFontHeight()+2;
drawAPI.drawString("Understøttet Minecraft versioner: " + UnikAPI.getMinecraftVersion(), 10, drawY);
drawY += drawAPI.getFontHeight()+2;
drawAPI.drawString("Client brand: " + UnikAPI.getClientBrand() + (UnikAPI.getOtherVersion() != null ? " v:" + UnikAPI.getOtherVersion() : ""), 10, drawY);
drawY += drawAPI.getFontHeight()+2;
drawAPI.drawString("Addon lokation: " + UpdateManager.getJarLocation(), 10, drawY);
drawY += drawAPI.getFontHeight()+2;
drawAPI.drawString("System Info: " + System.getProperty("os.name") + " - " + System.getProperty("os.version") + " - " + System.getProperty("os.arch"), 10, drawY);
drawY += drawAPI.getFontHeight()+2;
drawAPI.drawString("Features:", 10, drawY);
for (SimpleModule module : ModuleManager.getInstance().getLoadedModules().values()) {
drawY += drawAPI.getFontHeight()+2;
drawAPI.drawString(module.getDisplayName() + ": " + (module.isFeatureActive() ? ModColor.GREEN + "Aktiv" : ModColor.RED + "Deaktiveret"), 20, drawY);
}

}

@Override
public void mouseClicked(int i, int i1, MouseButton mouseButton) {

}

@Override
public void mouseClickMove(int i, int i1, MouseButton mouseButton, long l) {

}

@Override
public void mouseReleased(int i, int i1, MouseButton mouseButton) {

}

@Override
public void handleMouseInput() {

}

@Override
public void keyTyped(char c, Key key) {

}

@Override
public void onGuiClosed() {

}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import ml.volder.transporter.TransporterAddon;
import ml.volder.unikapi.api.draw.DrawAPI;
import ml.volder.unikapi.api.player.PlayerAPI;
import ml.volder.unikapi.guisystem.ModTextures;
import ml.volder.unikapi.guisystem.elements.*;
import ml.volder.unikapi.keysystem.Key;
import ml.volder.unikapi.keysystem.MouseButton;
Expand Down Expand Up @@ -34,10 +35,27 @@ public static void addSetting(SettingsElement element) {
private boolean skipDrawDescription = false;

private final double startY = 50D;
private TransporterAddon addon;

public TransporterModulesMenu(TransporterAddon addon, WrappedGuiScreen lastScreen) {
this.addon = addon;
private WrappedGuiButton buttonAddonInfo;

private void createButton() {
this.buttonAddonInfo = new WrappedGuiButton(11, 0, 0, 23, 20, "");
}

private void renderAddonInfoButton(int mouseX, int mouseY) {
if (this.path.size() < 1 && this.buttonAddonInfo != null) {
this.buttonAddonInfo.setX(this.getWidth() - (23 + 5));
this.buttonAddonInfo.setY(this.getHeight() - 25);
this.buttonAddonInfo.setEnabled(true);
this.buttonAddonInfo.drawButton(mouseX, mouseY);
DrawAPI drawAPI = DrawAPI.getAPI();
drawAPI.bindTexture(ModTextures.BUTTON_ADVANCED);
drawAPI.drawTexture((double)(this.buttonAddonInfo.getX() + 4), (double)(this.buttonAddonInfo.getY() + 3), 0.0, 0.0, 256.0, 256.0, 14.0, 14.0, 2.0F);
}

}

public TransporterModulesMenu(WrappedGuiScreen lastScreen) {
this.lastScreen = lastScreen;
}

Expand All @@ -51,6 +69,7 @@ public void initGui() {
this.scrollbar.init();
this.buttonBack = new WrappedGuiButton(1, this.getWidth() / 2 - 100, 20, 22, 20, "<");
this.addButton(buttonBack);
createButton();
}

private void doQuery(String query) {
Expand Down Expand Up @@ -178,6 +197,8 @@ public void drawScreen(int mouseX, int mouseY, float partialTicks) {
if (!this.skipDrawDescription) {
this.drawDescriptions(mouseX, mouseY, 75, this.getHeight() - 30);
}

renderAddonInfoButton(mouseX, mouseY);
}

private void drawDescriptions(int mouseX, int mouseY, int minY, int maxY) {
Expand Down Expand Up @@ -299,6 +320,10 @@ public void mouseClicked(int mouseX, int mouseY, MouseButton mouseButton) {
}
}
}

if(buttonAddonInfo.isEnabled() && buttonAddonInfo.isMouseOver()) {
PlayerAPI.getAPI().openGuiScreen(new AddonInfoScreen(this));
}
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,6 @@ public void onKeyInput(ClientKeyPressEvent event) {
if(TransporterAddon.getInstance().getSettingsKeybind() == null || TransporterAddon.getInstance().getSettingsKeybind().equals(Key.NONE))
return;
if (InputAPI.getAPI().isKeyDown(TransporterAddon.getInstance().getSettingsKeybind()) && !PlayerAPI.getAPI().hasOpenScreen())
PlayerAPI.getAPI().openGuiScreen(new TransporterModulesMenu(TransporterAddon.getInstance(), null));
PlayerAPI.getAPI().openGuiScreen(new TransporterModulesMenu(null));
}
}
Loading

0 comments on commit d52b230

Please sign in to comment.