diff --git a/src/main/java/com/multi/icyadmin/data/ActionsEnum.java b/src/main/java/com/multi/icyadmin/data/ActionsEnum.java index 9dcf275..141649e 100644 --- a/src/main/java/com/multi/icyadmin/data/ActionsEnum.java +++ b/src/main/java/com/multi/icyadmin/data/ActionsEnum.java @@ -18,6 +18,7 @@ public enum ActionsEnum { CLEAR_INVENTORY(true, false), UNPOTION(true, false), TITLE(false, false), + LINK(false, false), PLAYER(false, false), PAGE(false, false), CMD_EXEC(false, false), diff --git a/src/main/java/com/multi/icyadmin/gui/InfiPanelGui.java b/src/main/java/com/multi/icyadmin/gui/InfiPanelGui.java index b2512e2..0321eea 100644 --- a/src/main/java/com/multi/icyadmin/gui/InfiPanelGui.java +++ b/src/main/java/com/multi/icyadmin/gui/InfiPanelGui.java @@ -1,9 +1,9 @@ package com.multi.icyadmin.gui; import com.multi.icyadmin.Core; +import com.multi.icyadmin.data.ActionsEnum; import com.multi.icyadmin.data.ItemListNode; import com.multi.icyadmin.data.MenuElement; -import com.multi.icyadmin.data.ActionsEnum; import com.multi.icyadmin.data.RequestEnum; import com.multi.icyadmin.gui.elements.ItemList; import com.multi.icyadmin.handlers.packets.RequestPacket; @@ -19,6 +19,7 @@ import net.minecraft.util.ChatStyle; import net.minecraft.util.EnumChatFormatting; import org.lwjgl.input.Keyboard; +import java.net.URI; import java.util.ArrayList; import java.util.List; import java.util.regex.Matcher; @@ -158,6 +159,14 @@ public class InfiPanelGui extends GuiScreen { if (node.getType() == ActionsEnum.PAGE) { cur_menu = node.getCommandData(); reloadMenu(true); + } else if (node.getType() == ActionsEnum.LINK) { + try { + Class oclass = Class.forName("java.awt.Desktop"); + Object object = oclass.getMethod("getDesktop", new Class[0]).invoke(null); + oclass.getMethod("browse", new Class[]{URI.class}).invoke(object, new URI(node.getCommandData())); + } catch (Throwable throwable) { + Core.logger.error("Couldn\'t open link", throwable); + } } else if (node.getType() == ActionsEnum.CMD_EXEC) { if (!Core.proxy.canClientUsePanel()) { printNoPerms(); diff --git a/src/main/java/com/multi/icyadmin/utils/MenuParser.java b/src/main/java/com/multi/icyadmin/utils/MenuParser.java index 68c127c..132096a 100644 --- a/src/main/java/com/multi/icyadmin/utils/MenuParser.java +++ b/src/main/java/com/multi/icyadmin/utils/MenuParser.java @@ -67,17 +67,6 @@ public class MenuParser { return FileProcessor.getHash(f); } - public boolean removeMenu(String s) { - File f = new File(CLIENT_MENUS_LOCATION, s); - System.out.println("exists: " + f.exists()); - System.out.println("read: " + f.canRead()); - System.out.println("write: " + f.canWrite()); - boolean b = f.delete(); - System.out.println("removed: " + b); - //WTF - return b; - } - public boolean bytesToClientMenu(byte[] bytes, String s) { File f = new File(CLIENT_MENUS_LOCATION, s); OutputStream is = null; @@ -218,7 +207,7 @@ public class MenuParser { } else if (!isStringValid(as)) { Core.logger_parser.error("Line without action, this is UNACCEPTABLE!"); return false; - } else if (as.equals("PAGE")) { + } else if (as.equals("PAGE") || as.equals("LINK")) { String to = getTagValue("to", slist); if (!isStringValid(to)) { @@ -228,7 +217,12 @@ public class MenuParser { node = ItemListNode.create(name); node.setColor(getTagHEXInt("color", slist)); - node.setType(ActionsEnum.PAGE); + if (as.equals("LINK")) { + node.setType(ActionsEnum.LINK); + } else { + node.setType(ActionsEnum.PAGE); + } + node.setCommandData(to); } else if (as.equals("CMD_EXEC")) { diff --git a/src/main/resources/assets/icyadmin/lang/ru_RU.lang b/src/main/resources/assets/icyadmin/lang/ru_RU.lang index 49d4889..20f3d40 100644 --- a/src/main/resources/assets/icyadmin/lang/ru_RU.lang +++ b/src/main/resources/assets/icyadmin/lang/ru_RU.lang @@ -1,5 +1,5 @@ key.iadmin.open=Открыть Админ-панель -icyadmin.menufile=en.menu +icyadmin.menufile=ru.menu icyadmin.confirm=Подтвердить icyadmin.turned.on=[IcyAdmin] Параметр %1$s теперь активен. icyadmin.turned.off=[IcyAdmin] Параметр %1$s больше не активен. diff --git a/src/main/resources/assets/icyadmin/menus/en.menu b/src/main/resources/assets/icyadmin/menus/en.menu index be8cb68..894304c 100644 --- a/src/main/resources/assets/icyadmin/menus/en.menu +++ b/src/main/resources/assets/icyadmin/menus/en.menu @@ -43,7 +43,12 @@ add " Play sound (extended)" as CMD_EXEC cmd "playsound $Sound $Play_sound_fo add " Say" as CMD_EXEC cmd "say $Text_to_say" color #38B5E1 add " Set world spawn here" as CMD_EXEC cmd "setworldspawn" color #38B5E1 add "=============================================" as TITLE color #406BC7 - +add SEPARATOR +add SEPARATOR +add SEPARATOR +#todo +add " IcyAdmin by MultiMote" as TITLE color #B4A217 +add " Open forum link" as LINK to "http://google.com" color #FFE500 end MAIN_PAGE diff --git a/src/main/resources/assets/icyadmin/menus/ru.menu b/src/main/resources/assets/icyadmin/menus/ru.menu index 09482b8..3d6f32a 100644 --- a/src/main/resources/assets/icyadmin/menus/ru.menu +++ b/src/main/resources/assets/icyadmin/menus/ru.menu @@ -4,11 +4,6 @@ menu_file_begin begin MAIN_PAGE add "=============================================" as TITLE color #406BC7 -add " ===[ Главное меню ]=== " as TITLE color #1092E8 -add " | Логи администрации" as NOTHING color #1092E8 -add " | Логи смертей" as NOTHING color #1092E8 -add " | Время" as NOTHING color #1092E8 -add " | Погода" as NOTHING color #1092E8 -add " | Наборы" as NOTHING color #1092E8 +add "Команда со всплывающим окном" as CMD_EXEC cmd "say $Что_сказать" add "=============================================" as TITLE color #406BC7 end MAIN_PAGE