diff --git a/src/main/java/exopandora/worldhandler/WorldHandler.java b/src/main/java/exopandora/worldhandler/WorldHandler.java index 703de49..09ced55 100644 --- a/src/main/java/exopandora/worldhandler/WorldHandler.java +++ b/src/main/java/exopandora/worldhandler/WorldHandler.java @@ -21,6 +21,12 @@ import exopandora.worldhandler.util.UtilKeyBinding; import net.minecraft.client.Minecraft; import net.minecraft.client.settings.KeyBinding; import net.minecraft.command.ICommand; +import net.minecraft.util.text.ChatType; +import net.minecraft.util.text.Style; +import net.minecraft.util.text.TextComponentString; +import net.minecraft.util.text.TextComponentTranslation; +import net.minecraft.util.text.event.ClickEvent; +import net.minecraft.util.text.event.ClickEvent.Action; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.common.config.Configuration; import net.minecraftforge.fml.client.registry.ClientRegistry; @@ -168,4 +174,22 @@ public class WorldHandler } } } + + public static void throwError(Exception exception) + { + if(!Minecraft.getMinecraft().inGameHasFocus) + { + Minecraft.getMinecraft().displayGuiScreen(null); + Minecraft.getMinecraft().setIngameFocus(); + } + + TextComponentString name = new TextComponentString(Main.NAME); + name.setStyle(new Style().setUnderlined(true).setClickEvent(new ClickEvent(Action.OPEN_URL, "$url"))); + + TextComponentTranslation message = new TextComponentTranslation("worldhandler.error.gui", name); + message.setStyle(new Style().setColor(net.minecraft.util.text.TextFormatting.RED)); + + Minecraft.getMinecraft().ingameGUI.addChatMessage(ChatType.SYSTEM, message); + exception.printStackTrace(); + } } \ No newline at end of file diff --git a/src/main/java/exopandora/worldhandler/config/ConfigButcher.java b/src/main/java/exopandora/worldhandler/config/ConfigButcher.java index 10753d0..e58dbae 100644 --- a/src/main/java/exopandora/worldhandler/config/ConfigButcher.java +++ b/src/main/java/exopandora/worldhandler/config/ConfigButcher.java @@ -13,7 +13,7 @@ import net.minecraftforge.fml.relauncher.SideOnly; @SideOnly(Side.CLIENT) public class ConfigButcher -{ +{ private static Map ENTITIES = new HashMap(); public static final String CATEGORY = "butcher"; diff --git a/src/main/java/exopandora/worldhandler/event/EventListener.java b/src/main/java/exopandora/worldhandler/event/EventListener.java index 02d464b..f6f6ca3 100644 --- a/src/main/java/exopandora/worldhandler/event/EventListener.java +++ b/src/main/java/exopandora/worldhandler/event/EventListener.java @@ -17,6 +17,7 @@ import net.minecraft.client.renderer.RenderGlobal; import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; +import net.minecraft.util.text.ChatType; import net.minecraft.util.text.TextComponentString; import net.minecraftforge.client.event.ClientChatEvent; import net.minecraftforge.client.event.RenderWorldLastEvent; @@ -142,22 +143,29 @@ public class EventListener { if(!UtilPlayer.canIssueCommand() && ConfigSettings.isPermissionQueryEnabled()) { - Minecraft.getMinecraft().player.sendMessage(new TextComponentString(ChatFormatting.RED + I18n.format("worldhandler.permission.refused"))); - Minecraft.getMinecraft().player.sendMessage(new TextComponentString(ChatFormatting.RED + I18n.format("worldhandler.permission.refused.change", I18n.format("gui.worldhandler.config.key.settings.permission_query")))); + Minecraft.getMinecraft().ingameGUI.addChatMessage(ChatType.GAME_INFO, new TextComponentString(ChatFormatting.RED + I18n.format("worldhandler.permission.refused"))); + Minecraft.getMinecraft().ingameGUI.addChatMessage(ChatType.GAME_INFO, new TextComponentString(ChatFormatting.RED + I18n.format("worldhandler.permission.refused.change", I18n.format("gui.worldhandler.config.key.settings.permission_query")))); } else { - if(BlockHelper.isFocusedBlockEqualTo(Blocks.STANDING_SIGN) || BlockHelper.isFocusedBlockEqualTo(Blocks.WALL_SIGN)) + try { - Minecraft.getMinecraft().displayGuiScreen(new GuiWorldHandlerContainer(Contents.SIGN_EDITOR)); + if(BlockHelper.isFocusedBlockEqualTo(Blocks.STANDING_SIGN) || BlockHelper.isFocusedBlockEqualTo(Blocks.WALL_SIGN)) + { + Minecraft.getMinecraft().displayGuiScreen(new GuiWorldHandlerContainer(Contents.SIGN_EDITOR)); + } + else if(BlockHelper.isFocusedBlockEqualTo(Blocks.NOTEBLOCK)) + { + Minecraft.getMinecraft().displayGuiScreen(new GuiWorldHandlerContainer(Contents.NOTE_EDITOR)); + } + else + { + Minecraft.getMinecraft().displayGuiScreen(new GuiWorldHandlerContainer(Contents.MAIN)); + } } - else if(BlockHelper.isFocusedBlockEqualTo(Blocks.NOTEBLOCK)) + catch(Exception e) { - Minecraft.getMinecraft().displayGuiScreen(new GuiWorldHandlerContainer(Contents.NOTE_EDITOR)); - } - else - { - Minecraft.getMinecraft().displayGuiScreen(new GuiWorldHandlerContainer(Contents.MAIN)); + WorldHandler.throwError(e); } } } diff --git a/src/main/java/exopandora/worldhandler/gui/button/GuiButtonKeyboard.java b/src/main/java/exopandora/worldhandler/gui/button/GuiButtonKeyboard.java index 6190686..b61b14e 100644 --- a/src/main/java/exopandora/worldhandler/gui/button/GuiButtonKeyboard.java +++ b/src/main/java/exopandora/worldhandler/gui/button/GuiButtonKeyboard.java @@ -3,6 +3,7 @@ package exopandora.worldhandler.gui.button; import org.lwjgl.input.Mouse; import exopandora.worldhandler.Main; +import exopandora.worldhandler.WorldHandler; import exopandora.worldhandler.config.ConfigSkin; import exopandora.worldhandler.gui.container.Container; import exopandora.worldhandler.gui.content.Content; @@ -148,7 +149,15 @@ public class GuiButtonKeyboard extends GuiButtonWorldHandler if(mousePressed(minecraft, mouseX, mouseY) && Mouse.isButtonDown(0)) { this.playPressSound(minecraft.getSoundHandler()); - this.content.actionPerformed(this.container, this); + + try + { + this.content.actionPerformed(this.container, this); + } + catch(Exception e) + { + WorldHandler.throwError(e); + } } this.lastMousePressed = mousePressed(minecraft, mouseX, mouseY); diff --git a/src/main/java/exopandora/worldhandler/gui/button/GuiButtonList.java b/src/main/java/exopandora/worldhandler/gui/button/GuiButtonList.java index 7a02174..0b5f84d 100644 --- a/src/main/java/exopandora/worldhandler/gui/button/GuiButtonList.java +++ b/src/main/java/exopandora/worldhandler/gui/button/GuiButtonList.java @@ -4,7 +4,7 @@ import com.mojang.realmsclient.gui.ChatFormatting; import exopandora.worldhandler.format.TextFormatting; import exopandora.worldhandler.gui.button.logic.IListButtonLogic; -import exopandora.worldhandler.gui.button.persistence.ButtonValues; +import exopandora.worldhandler.gui.button.persistence.ButtonValue; import exopandora.worldhandler.gui.container.Container; import exopandora.worldhandler.gui.content.Content; import net.minecraft.client.Minecraft; @@ -18,7 +18,7 @@ import net.minecraftforge.fml.relauncher.SideOnly; public class GuiButtonList extends GuiButtonWorldHandler { private final IListButtonLogic logic; - private final ButtonValues persistence; + private final ButtonValue persistence; private int mouseX; private int mouseY; diff --git a/src/main/java/exopandora/worldhandler/gui/button/GuiSlider.java b/src/main/java/exopandora/worldhandler/gui/button/GuiSlider.java index 835da31..62fa5d8 100644 --- a/src/main/java/exopandora/worldhandler/gui/button/GuiSlider.java +++ b/src/main/java/exopandora/worldhandler/gui/button/GuiSlider.java @@ -2,8 +2,8 @@ package exopandora.worldhandler.gui.button; import exopandora.worldhandler.config.ConfigSkin; import exopandora.worldhandler.gui.button.logic.ISliderResponder; -import exopandora.worldhandler.gui.button.persistence.ButtonValues; -import exopandora.worldhandler.gui.button.persistence.SliderValues; +import exopandora.worldhandler.gui.button.persistence.ButtonValue; +import exopandora.worldhandler.gui.button.persistence.SliderValue; import exopandora.worldhandler.gui.container.Container; import exopandora.worldhandler.gui.content.Content; import exopandora.worldhandler.helper.ResourceHelper; @@ -25,7 +25,7 @@ public class GuiSlider extends GuiButton private final String name; private final ISliderResponder responder; private final Container frame; - private final ButtonValues persistence; + private final ButtonValue persistence; public GuiSlider(Content content, Container frame, Object key, int x, int y, int width, int height, String name, double min, double max, double start, ISliderResponder responder) { @@ -45,16 +45,16 @@ public class GuiSlider extends GuiButton { if(min == max) { - this.persistence.setObject(new SliderValues(min, max, 0.0D)); + this.persistence.setObject(new SliderValue(min, max, 0.0D)); } else { - this.persistence.setObject(new SliderValues(min, max, (start - min) / (max - min))); + this.persistence.setObject(new SliderValue(min, max, (start - min) / (max - min))); } } else if(this.persistence.getObject().getMin() != min || this.persistence.getObject().getMax() != max) { - this.persistence.setObject(new SliderValues(min, max, (int) MathHelper.clamp(this.getValue(), min, max))); + this.persistence.setObject(new SliderValue(min, max, (int) MathHelper.clamp(this.getValue(), min, max))); } } diff --git a/src/main/java/exopandora/worldhandler/gui/button/logic/ColorListButtonLogic.java b/src/main/java/exopandora/worldhandler/gui/button/logic/ColorListButtonLogic.java index a2350b6..126776f 100644 --- a/src/main/java/exopandora/worldhandler/gui/button/logic/ColorListButtonLogic.java +++ b/src/main/java/exopandora/worldhandler/gui/button/logic/ColorListButtonLogic.java @@ -5,7 +5,7 @@ import java.util.Arrays; import com.mojang.realmsclient.gui.ChatFormatting; import exopandora.worldhandler.format.EnumColor; -import exopandora.worldhandler.gui.button.persistence.ButtonValues; +import exopandora.worldhandler.gui.button.persistence.ButtonValue; import net.minecraft.client.resources.I18n; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; @@ -26,13 +26,13 @@ public abstract class ColorListButtonLogic implements IListButtonLogic } @Override - public String getTooltipString(ButtonValues values) + public String getTooltipString(ButtonValue values) { return null; } @Override - public String getDisplayString(ButtonValues values) + public String getDisplayString(ButtonValue values) { EnumColor color = EnumColor.getColorFromId(values.getIndex()); return color + I18n.format("gui.worldhandler.color") + ": " + I18n.format("gui.worldhandler.color." + color.getFormat()); diff --git a/src/main/java/exopandora/worldhandler/gui/button/logic/IListButtonLogic.java b/src/main/java/exopandora/worldhandler/gui/button/logic/IListButtonLogic.java index 0f3ce55..47f6b45 100644 --- a/src/main/java/exopandora/worldhandler/gui/button/logic/IListButtonLogic.java +++ b/src/main/java/exopandora/worldhandler/gui/button/logic/IListButtonLogic.java @@ -1,6 +1,6 @@ package exopandora.worldhandler.gui.button.logic; -import exopandora.worldhandler.gui.button.persistence.ButtonValues; +import exopandora.worldhandler.gui.button.persistence.ButtonValue; import exopandora.worldhandler.gui.container.Container; import net.minecraft.client.gui.GuiButton; import net.minecraftforge.fml.relauncher.Side; @@ -9,15 +9,15 @@ import net.minecraftforge.fml.relauncher.SideOnly; @SideOnly(Side.CLIENT) public interface IListButtonLogic { - void actionPerformed(Container container, GuiButton button, ButtonValues values); + void actionPerformed(Container container, GuiButton button, ButtonValue values); int getMax(); T getObject(int index); - String getDisplayString(ButtonValues values); + String getDisplayString(ButtonValue values); - default String getTooltipString(ButtonValues values) + default String getTooltipString(ButtonValue values) { if(values != null && values.getObject() != null) { diff --git a/src/main/java/exopandora/worldhandler/gui/button/persistence/ButtonValue.java b/src/main/java/exopandora/worldhandler/gui/button/persistence/ButtonValue.java index 8f9018e..62ac17e 100644 --- a/src/main/java/exopandora/worldhandler/gui/button/persistence/ButtonValue.java +++ b/src/main/java/exopandora/worldhandler/gui/button/persistence/ButtonValue.java @@ -4,7 +4,7 @@ import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; @SideOnly(Side.CLIENT) -public class ButtonValues +public class ButtonValue { private int index; private T object; diff --git a/src/main/java/exopandora/worldhandler/gui/button/persistence/SliderValue.java b/src/main/java/exopandora/worldhandler/gui/button/persistence/SliderValue.java index 01b54c3..25b16cb 100644 --- a/src/main/java/exopandora/worldhandler/gui/button/persistence/SliderValue.java +++ b/src/main/java/exopandora/worldhandler/gui/button/persistence/SliderValue.java @@ -3,27 +3,26 @@ package exopandora.worldhandler.gui.button.persistence; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; - @SideOnly(Side.CLIENT) -public class SliderValues +public class SliderValue { private final double min; private final double max; private double position; - private SliderValues(double min, double max) + private SliderValue(double min, double max) { this.min = min; this.max = max; } - public SliderValues(double min, double max, double position) + public SliderValue(double min, double max, double position) { this(min, max); this.position = position; } - public SliderValues(double min, double max, int value) + public SliderValue(double min, double max, int value) { this(min, max); this.position = this.valueToPosition(value); diff --git a/src/main/java/exopandora/worldhandler/gui/category/Category.java b/src/main/java/exopandora/worldhandler/gui/category/Category.java index e9f000e..8f8aeb9 100644 --- a/src/main/java/exopandora/worldhandler/gui/category/Category.java +++ b/src/main/java/exopandora/worldhandler/gui/category/Category.java @@ -9,6 +9,7 @@ import javax.annotation.Nullable; import exopandora.worldhandler.Main; import exopandora.worldhandler.gui.content.Content; import exopandora.worldhandler.gui.content.Contents; +import exopandora.worldhandler.gui.content.impl.ContentPlaysound; import net.minecraft.util.ResourceLocation; import net.minecraft.util.registry.RegistryNamespaced; import net.minecraftforge.fml.relauncher.Side; @@ -61,7 +62,7 @@ public class Category public static void registerCategories() { registerCategory(0, "main", new Category(Contents.MAIN, Contents.CONTAINERS, Contents.MULTIPLAYER)); - registerCategory(1, "entities", new Category(Contents.SUMMON)); + registerCategory(1, "entities", new Category(Contents.SUMMON, new ContentPlaysound())); registerCategory(2, "items", new Category(Contents.CUSTOM_ITEM, Contents.ENCHANTMENT, Contents.RECIPES)); registerCategory(3, "blocks", new Category(Contents.EDIT_BLOCKS, Contents.SIGN_EDITOR, Contents.NOTE_EDITOR)); registerCategory(4, "world", new Category(Contents.WORLD_INFO, Contents.GAMERULES)); diff --git a/src/main/java/exopandora/worldhandler/gui/container/impl/GuiWorldHandlerContainer.java b/src/main/java/exopandora/worldhandler/gui/container/impl/GuiWorldHandlerContainer.java index 4bf5a03..3a7f08f 100644 --- a/src/main/java/exopandora/worldhandler/gui/container/impl/GuiWorldHandlerContainer.java +++ b/src/main/java/exopandora/worldhandler/gui/container/impl/GuiWorldHandlerContainer.java @@ -67,7 +67,7 @@ public class GuiWorldHandlerContainer extends Container private static final BuilderWorldHandler BUILDER_WORLD_HANDLER = new BuilderWorldHandler(); - public GuiWorldHandlerContainer(Content content) + public GuiWorldHandlerContainer(Content content) throws Exception { this.content = content; this.tabSize = this.content.getCategory().getSize(); @@ -81,75 +81,82 @@ public class GuiWorldHandlerContainer extends Container @Override public void initGui() { - this.finalButtons.clear(); - this.elements.clear(); - - //INIT - this.content.onPlayerNameChanged(this.getPlayer()); - this.content.initGui(this, this.getContentX(), this.getContentY()); - - //ELEMENTS - - for(IElement element : this.elements) + try { - element.initGui(this); - } - - //SHORTCUTS - - final int x = this.width / 2 - 10; - final int delta = 21; - - if(ConfigSettings.areShortcutsEnabled()) - { - this.finalButtons.add(new GuiButtonWorldHandler(-1, x - delta * 7, 0, 20, 20, null, I18n.format("gui.worldhandler.shortcuts.tooltip.time", I18n.format("gui.worldhandler.shortcuts.tooltip.time.dawn", ConfigSettings.getDawn())), EnumTooltip.RIGHT, EnumIcon.TIME_DAWN)); - this.finalButtons.add(new GuiButtonWorldHandler(-2, x - delta * 6, 0, 20, 20, null, I18n.format("gui.worldhandler.shortcuts.tooltip.time", I18n.format("gui.worldhandler.shortcuts.tooltip.time.noon", ConfigSettings.getNoon())), EnumTooltip.RIGHT, EnumIcon.TIME_NOON)); - this.finalButtons.add(new GuiButtonWorldHandler(-3, x - delta * 5, 0, 20, 20, null, I18n.format("gui.worldhandler.shortcuts.tooltip.time", I18n.format("gui.worldhandler.shortcuts.tooltip.time.sunset", ConfigSettings.getSunset())), EnumTooltip.RIGHT, EnumIcon.TIME_SUNSET)); - this.finalButtons.add(new GuiButtonWorldHandler(-4, x - delta * 4, 0, 20, 20, null, I18n.format("gui.worldhandler.shortcuts.tooltip.time", I18n.format("gui.worldhandler.shortcuts.tooltip.time.midnight", ConfigSettings.getMidnight())), EnumTooltip.RIGHT, EnumIcon.TIME_MIDNIGHT)); - this.finalButtons.add(new GuiButtonWorldHandler(-5, x - delta * 3, 0, 20, 20, null, I18n.format("gui.worldhandler.shortcuts.tooltip.weather", I18n.format("gui.worldhandler.shortcuts.tooltip.weather.clear")), EnumTooltip.RIGHT, EnumIcon.WEATHER_SUN)); - this.finalButtons.add(new GuiButtonWorldHandler(-6, x - delta * 2, 0, 20, 20, null, I18n.format("gui.worldhandler.shortcuts.tooltip.weather", I18n.format("gui.worldhandler.shortcuts.tooltip.weather.rainy")), EnumTooltip.RIGHT, EnumIcon.WEATHER_RAIN)); - this.finalButtons.add(new GuiButtonWorldHandler(-7, x - delta * 1, 0, 20, 20, null, I18n.format("gui.worldhandler.shortcuts.tooltip.weather", I18n.format("gui.worldhandler.shortcuts.tooltip.weather.thunder")), EnumTooltip.RIGHT, EnumIcon.WEATHER_STORM)); - this.finalButtons.add(new GuiButtonWorldHandler(-8, x - delta * 0, 0, 20, 20, null, I18n.format("gui.worldhandler.shortcuts.tooltip.difficulty", I18n.format("gui.worldhandler.shortcuts.tooltip.difficulty.peaceful")), EnumTooltip.RIGHT, EnumIcon.DIFFICULTY_PEACEFUL)); - this.finalButtons.add(new GuiButtonWorldHandler(-9, x + delta * 1, 0, 20, 20, null, I18n.format("gui.worldhandler.shortcuts.tooltip.difficulty", I18n.format("gui.worldhandler.shortcuts.tooltip.difficulty.easy")), EnumTooltip.RIGHT, EnumIcon.DIFFICULTY_EASY)); - this.finalButtons.add(new GuiButtonWorldHandler(-10, x + delta * 2, 0, 20, 20, null, I18n.format("gui.worldhandler.shortcuts.tooltip.difficulty", I18n.format("gui.worldhandler.shortcuts.tooltip.difficulty.normal")), EnumTooltip.RIGHT, EnumIcon.DIFFICULTY_NORMAL)); - this.finalButtons.add(new GuiButtonWorldHandler(-11, x + delta * 3, 0, 20, 20, null, I18n.format("gui.worldhandler.shortcuts.tooltip.difficulty", I18n.format("gui.worldhandler.shortcuts.tooltip.difficulty.hard")), EnumTooltip.RIGHT, EnumIcon.DIFFICULTY_HARD)); - this.finalButtons.add(new GuiButtonWorldHandler(-12, x + delta * 4, 0, 20, 20, null, I18n.format("gui.worldhandler.shortcuts.tooltip.gamemode", I18n.format("gui.worldhandler.shortcuts.tooltip.gamemode.survival")), EnumTooltip.RIGHT, EnumIcon.GAMEMODE_SURVIVAL)); - this.finalButtons.add(new GuiButtonWorldHandler(-13, x + delta * 5, 0, 20, 20, null, I18n.format("gui.worldhandler.shortcuts.tooltip.gamemode", I18n.format("gui.worldhandler.shortcuts.tooltip.gamemode.creative")), EnumTooltip.RIGHT, EnumIcon.GAMEMODE_CREATIVE)); - this.finalButtons.add(new GuiButtonWorldHandler(-14, x + delta * 6, 0, 20, 20, null, I18n.format("gui.worldhandler.shortcuts.tooltip.gamemode", I18n.format("gui.worldhandler.shortcuts.tooltip.gamemode.adventure")), EnumTooltip.RIGHT, EnumIcon.GAMEMODE_ADVENTURE)); - this.finalButtons.add(new GuiButtonWorldHandler(-15, x + delta * 7, 0, 20, 20, null, I18n.format("gui.worldhandler.shortcuts.tooltip.gamemode", I18n.format("gui.worldhandler.shortcuts.tooltip.gamemode.spectator")), EnumTooltip.RIGHT, EnumIcon.GAMEMODE_SPECTATOR)); - } - - //SYNTAX - - if(ConfigSettings.isCommandSyntaxEnabled()) - { - this.syntaxField = new GuiTextFieldTooltip(x - delta * 7 + 1, this.height - 22, delta * 15 - 3, 20); - this.updateSyntax(); - } - - //NAME - - this.nameField = new GuiTextFieldTooltip(0, 0, 0, 11); - this.nameField.setMaxStringLength(16); - this.nameField.setText(this.getPlayer()); - this.updateNameField(); - - final int backgroundX = this.getBackgroundX(); - final int backgroundY = this.getBackgroundY(); - - this.forEachTab((index, xOffset) -> - { - IContent tab = this.content.getCategory().getContent(index); + this.finalButtons.clear(); + this.elements.clear(); - if(!this.content.getActiveContent().equals(tab)) + //INIT + this.content.onPlayerNameChanged(this.getPlayer()); + this.content.initGui(this, this.getContentX(), this.getContentY()); + + //ELEMENTS + + for(IElement element : this.elements) { - this.finalButtons.add(new GuiButtonTab(-16, (int) (backgroundX + xOffset), backgroundY - 20, (int) this.tabWidth + (int) Math.ceil(this.tabEpsilon / this.tabSize), 21, index)); + element.initGui(this); } - }); - - //BUTTONS - - this.initButtons(); + + //SHORTCUTS + + final int x = this.width / 2 - 10; + final int delta = 21; + + if(ConfigSettings.areShortcutsEnabled()) + { + this.finalButtons.add(new GuiButtonWorldHandler(-1, x - delta * 7, 0, 20, 20, null, I18n.format("gui.worldhandler.shortcuts.tooltip.time", I18n.format("gui.worldhandler.shortcuts.tooltip.time.dawn", ConfigSettings.getDawn())), EnumTooltip.RIGHT, EnumIcon.TIME_DAWN)); + this.finalButtons.add(new GuiButtonWorldHandler(-2, x - delta * 6, 0, 20, 20, null, I18n.format("gui.worldhandler.shortcuts.tooltip.time", I18n.format("gui.worldhandler.shortcuts.tooltip.time.noon", ConfigSettings.getNoon())), EnumTooltip.RIGHT, EnumIcon.TIME_NOON)); + this.finalButtons.add(new GuiButtonWorldHandler(-3, x - delta * 5, 0, 20, 20, null, I18n.format("gui.worldhandler.shortcuts.tooltip.time", I18n.format("gui.worldhandler.shortcuts.tooltip.time.sunset", ConfigSettings.getSunset())), EnumTooltip.RIGHT, EnumIcon.TIME_SUNSET)); + this.finalButtons.add(new GuiButtonWorldHandler(-4, x - delta * 4, 0, 20, 20, null, I18n.format("gui.worldhandler.shortcuts.tooltip.time", I18n.format("gui.worldhandler.shortcuts.tooltip.time.midnight", ConfigSettings.getMidnight())), EnumTooltip.RIGHT, EnumIcon.TIME_MIDNIGHT)); + this.finalButtons.add(new GuiButtonWorldHandler(-5, x - delta * 3, 0, 20, 20, null, I18n.format("gui.worldhandler.shortcuts.tooltip.weather", I18n.format("gui.worldhandler.shortcuts.tooltip.weather.clear")), EnumTooltip.RIGHT, EnumIcon.WEATHER_SUN)); + this.finalButtons.add(new GuiButtonWorldHandler(-6, x - delta * 2, 0, 20, 20, null, I18n.format("gui.worldhandler.shortcuts.tooltip.weather", I18n.format("gui.worldhandler.shortcuts.tooltip.weather.rainy")), EnumTooltip.RIGHT, EnumIcon.WEATHER_RAIN)); + this.finalButtons.add(new GuiButtonWorldHandler(-7, x - delta * 1, 0, 20, 20, null, I18n.format("gui.worldhandler.shortcuts.tooltip.weather", I18n.format("gui.worldhandler.shortcuts.tooltip.weather.thunder")), EnumTooltip.RIGHT, EnumIcon.WEATHER_STORM)); + this.finalButtons.add(new GuiButtonWorldHandler(-8, x - delta * 0, 0, 20, 20, null, I18n.format("gui.worldhandler.shortcuts.tooltip.difficulty", I18n.format("gui.worldhandler.shortcuts.tooltip.difficulty.peaceful")), EnumTooltip.RIGHT, EnumIcon.DIFFICULTY_PEACEFUL)); + this.finalButtons.add(new GuiButtonWorldHandler(-9, x + delta * 1, 0, 20, 20, null, I18n.format("gui.worldhandler.shortcuts.tooltip.difficulty", I18n.format("gui.worldhandler.shortcuts.tooltip.difficulty.easy")), EnumTooltip.RIGHT, EnumIcon.DIFFICULTY_EASY)); + this.finalButtons.add(new GuiButtonWorldHandler(-10, x + delta * 2, 0, 20, 20, null, I18n.format("gui.worldhandler.shortcuts.tooltip.difficulty", I18n.format("gui.worldhandler.shortcuts.tooltip.difficulty.normal")), EnumTooltip.RIGHT, EnumIcon.DIFFICULTY_NORMAL)); + this.finalButtons.add(new GuiButtonWorldHandler(-11, x + delta * 3, 0, 20, 20, null, I18n.format("gui.worldhandler.shortcuts.tooltip.difficulty", I18n.format("gui.worldhandler.shortcuts.tooltip.difficulty.hard")), EnumTooltip.RIGHT, EnumIcon.DIFFICULTY_HARD)); + this.finalButtons.add(new GuiButtonWorldHandler(-12, x + delta * 4, 0, 20, 20, null, I18n.format("gui.worldhandler.shortcuts.tooltip.gamemode", I18n.format("gui.worldhandler.shortcuts.tooltip.gamemode.survival")), EnumTooltip.RIGHT, EnumIcon.GAMEMODE_SURVIVAL)); + this.finalButtons.add(new GuiButtonWorldHandler(-13, x + delta * 5, 0, 20, 20, null, I18n.format("gui.worldhandler.shortcuts.tooltip.gamemode", I18n.format("gui.worldhandler.shortcuts.tooltip.gamemode.creative")), EnumTooltip.RIGHT, EnumIcon.GAMEMODE_CREATIVE)); + this.finalButtons.add(new GuiButtonWorldHandler(-14, x + delta * 6, 0, 20, 20, null, I18n.format("gui.worldhandler.shortcuts.tooltip.gamemode", I18n.format("gui.worldhandler.shortcuts.tooltip.gamemode.adventure")), EnumTooltip.RIGHT, EnumIcon.GAMEMODE_ADVENTURE)); + this.finalButtons.add(new GuiButtonWorldHandler(-15, x + delta * 7, 0, 20, 20, null, I18n.format("gui.worldhandler.shortcuts.tooltip.gamemode", I18n.format("gui.worldhandler.shortcuts.tooltip.gamemode.spectator")), EnumTooltip.RIGHT, EnumIcon.GAMEMODE_SPECTATOR)); + } + + //SYNTAX + + if(ConfigSettings.isCommandSyntaxEnabled()) + { + this.syntaxField = new GuiTextFieldTooltip(x - delta * 7 + 1, this.height - 22, delta * 15 - 3, 20); + this.updateSyntax(); + } + + //NAME + + this.nameField = new GuiTextFieldTooltip(0, 0, 0, 11); + this.nameField.setMaxStringLength(16); + this.nameField.setText(this.getPlayer()); + this.updateNameField(); + + final int backgroundX = this.getBackgroundX(); + final int backgroundY = this.getBackgroundY(); + + this.forEachTab((index, xOffset) -> + { + IContent tab = this.content.getCategory().getContent(index); + + if(!this.content.getActiveContent().equals(tab)) + { + this.finalButtons.add(new GuiButtonTab(-16, (int) (backgroundX + xOffset), backgroundY - 20, (int) this.tabWidth + (int) Math.ceil(this.tabEpsilon / this.tabSize), 21, index)); + } + }); + + //BUTTONS + + this.initButtons(); + } + catch(Exception e) + { + WorldHandler.throwError(e); + } } public void initButtons() @@ -192,8 +199,15 @@ public class GuiWorldHandlerContainer extends Container @Override public void updateScreen() { - this.content.updateScreen(this); - this.updateSyntax(); + try + { + this.content.updateScreen(this); + this.updateSyntax(); + } + catch(Exception e) + { + WorldHandler.throwError(e); + } } private int getBackgroundX() @@ -270,80 +284,87 @@ public class GuiWorldHandlerContainer extends Container @Override protected void actionPerformed(GuiButton button) throws IOException { - buttons: - switch(button.id) + try { - case 1: - Minecraft.getMinecraft().displayGuiScreen((GuiScreen) null); - Minecraft.getMinecraft().setIngameFocus(); - break; - case 0: - if(this.content.getBackContent() != null) - { - Minecraft.getMinecraft().displayGuiScreen(new GuiWorldHandlerContainer(this.content.getBackContent())); - } - break; - case -1: - WorldHandler.sendCommand(new BuilderTime(EnumMode.SET, ConfigSettings.getDawn())); - break; - case -2: - WorldHandler.sendCommand(new BuilderTime(EnumMode.SET, ConfigSettings.getNoon())); - break; - case -3: - WorldHandler.sendCommand(new BuilderTime(EnumMode.SET, ConfigSettings.getSunset())); - break; - case -4: - WorldHandler.sendCommand(new BuilderTime(EnumMode.SET, ConfigSettings.getMidnight())); - break; - case -5: - WorldHandler.sendCommand(new BuilderWeather(EnumWeather.CLEAR)); - break; - case -6: - WorldHandler.sendCommand(new BuilderWeather(EnumWeather.RAIN)); - break; - case -7: - WorldHandler.sendCommand(new BuilderWeather(EnumWeather.THUNDER)); - break; - case -8: - WorldHandler.sendCommand(new BuilderDifficulty(EnumDifficulty.PEACEFUL)); - break; - case -9: - WorldHandler.sendCommand(new BuilderDifficulty(EnumDifficulty.EASY)); - break; - case -10: - WorldHandler.sendCommand(new BuilderDifficulty(EnumDifficulty.NORMAL)); - break; - case -11: - WorldHandler.sendCommand(new BuilderDifficulty(EnumDifficulty.HARD)); - break; - case -12: - WorldHandler.sendCommand(new BuilderGamemode(EnumGamemode.SURVIVAL)); - break; - case -13: - WorldHandler.sendCommand(new BuilderGamemode(EnumGamemode.CREATIVE)); - break; - case -14: - WorldHandler.sendCommand(new BuilderGamemode(EnumGamemode.ADVENTURE)); - break; - case -15: - WorldHandler.sendCommand(new BuilderGamemode(EnumGamemode.SPECTATOR)); - break; - case -16: - if(button instanceof GuiButtonTab) - { - Minecraft.getMinecraft().displayGuiScreen(new GuiWorldHandlerContainer(this.content.getCategory().getContent(((GuiButtonTab)button).getIndex()))); - } - break; - default: - for(IElement element : this.elements) - { - if(element.actionPerformed(this, button)) + buttons: + switch(button.id) + { + case 1: + Minecraft.getMinecraft().displayGuiScreen((GuiScreen) null); + Minecraft.getMinecraft().setIngameFocus(); + break; + case 0: + if(this.content.getBackContent() != null) { - break buttons; + Minecraft.getMinecraft().displayGuiScreen(new GuiWorldHandlerContainer(this.content.getBackContent())); } - } - this.content.actionPerformed(this, button); - break; + break; + case -1: + WorldHandler.sendCommand(new BuilderTime(EnumMode.SET, ConfigSettings.getDawn())); + break; + case -2: + WorldHandler.sendCommand(new BuilderTime(EnumMode.SET, ConfigSettings.getNoon())); + break; + case -3: + WorldHandler.sendCommand(new BuilderTime(EnumMode.SET, ConfigSettings.getSunset())); + break; + case -4: + WorldHandler.sendCommand(new BuilderTime(EnumMode.SET, ConfigSettings.getMidnight())); + break; + case -5: + WorldHandler.sendCommand(new BuilderWeather(EnumWeather.CLEAR)); + break; + case -6: + WorldHandler.sendCommand(new BuilderWeather(EnumWeather.RAIN)); + break; + case -7: + WorldHandler.sendCommand(new BuilderWeather(EnumWeather.THUNDER)); + break; + case -8: + WorldHandler.sendCommand(new BuilderDifficulty(EnumDifficulty.PEACEFUL)); + break; + case -9: + WorldHandler.sendCommand(new BuilderDifficulty(EnumDifficulty.EASY)); + break; + case -10: + WorldHandler.sendCommand(new BuilderDifficulty(EnumDifficulty.NORMAL)); + break; + case -11: + WorldHandler.sendCommand(new BuilderDifficulty(EnumDifficulty.HARD)); + break; + case -12: + WorldHandler.sendCommand(new BuilderGamemode(EnumGamemode.SURVIVAL)); + break; + case -13: + WorldHandler.sendCommand(new BuilderGamemode(EnumGamemode.CREATIVE)); + break; + case -14: + WorldHandler.sendCommand(new BuilderGamemode(EnumGamemode.ADVENTURE)); + break; + case -15: + WorldHandler.sendCommand(new BuilderGamemode(EnumGamemode.SPECTATOR)); + break; + case -16: + if(button instanceof GuiButtonTab) + { + Minecraft.getMinecraft().displayGuiScreen(new GuiWorldHandlerContainer(this.content.getCategory().getContent(((GuiButtonTab)button).getIndex()))); + } + break; + default: + for(IElement element : this.elements) + { + if(element.actionPerformed(this, button)) + { + break buttons; + } + } + this.content.actionPerformed(this, button); + break; + } + } + catch(Exception e) + { + WorldHandler.throwError(e); } } @@ -399,318 +420,346 @@ public class GuiWorldHandlerContainer extends Container @Override public void drawScreen(int mouseX, int mouseY, float partialTicks) { - final int backgroundX = this.getBackgroundX(); - final int backgroundY = this.getBackgroundY(); - - //DEFAULT BACKGROUND - - if(ConfigSkin.isBackgroundDrawingEnabled()) + try { - super.drawDefaultBackground(); - } - - //COLOR - - this.defaultColor(); - - //BACKGROUND - - this.bindBackground(); - this.drawTexturedModalRect(backgroundX, backgroundY, 0, 0, this.bgTextureWidth, this.bgTextureHeight); - - //TABS - - this.forEachTab((index, xOffset) -> - { - IContent tab = this.content.getCategory().getContent(index); - int yOffset; - int fHeight; - int color; + final int backgroundX = this.getBackgroundX(); + final int backgroundY = this.getBackgroundY(); - if(this.content.getActiveContent().equals(tab)) + //DEFAULT BACKGROUND + + if(ConfigSkin.isBackgroundDrawingEnabled()) { - yOffset = -22; - fHeight = 25; - color = 0xFFFFFF; - this.defaultColor(); - } - else - { - yOffset = -20; - fHeight = 20; - color = 0xE0E0E0; - this.darkColor(); + super.drawDefaultBackground(); } + //COLOR + + this.defaultColor(); + + //BACKGROUND + this.bindBackground(); - this.drawTexturedModalRect((int) (backgroundX + xOffset), (int) (backgroundY + yOffset), 0, 0, (int) Math.ceil(this.tabHalf), fHeight); - this.drawTexturedModalRect((int) (backgroundX + this.tabHalf + xOffset), (int) (backgroundY + yOffset), this.bgTextureWidth - (int) Math.ceil(this.tabHalf), 0, (int) Math.ceil(this.tabHalf), fHeight); + this.drawTexturedModalRect(backgroundX, backgroundY, 0, 0, this.bgTextureWidth, this.bgTextureHeight); - if(!ConfigSkin.areSharpEdgesEnabled()) + //TABS + + this.forEachTab((index, xOffset) -> { + IContent tab = this.content.getCategory().getContent(index); + int yOffset; + int fHeight; + int color; + if(this.content.getActiveContent().equals(tab)) { - //RIGHT TAB CURVATURE - - if(index < this.tabSize - 1 || this.tabSize == 1) - { - int factor = 2; - - for(int x = 0; x < factor; x++) - { - this.drawTexturedModalRect((int) (backgroundX + this.tabWidth + xOffset - x - 1), (int) (backgroundY + x + 1), (int) (this.tabWidth - x - 1), x + 1, x + 1, 1); - } - } - - //LEFT TAB CURVATURE - - if(index > 0) - { - int factor = 2; - - for(int x = 0; x < factor; x++) - { - this.drawTexturedModalRect((int) (backgroundX + xOffset), (int) (backgroundY + x + 1), xOffset.intValue(), x + 1, x + 1, 1); - } - } - - int width = (int)(this.tabWidth - 3); - int interval = 5; - - //LEFT GRADIENT - - if(index == 0) - { - for(int x = 0; x < width; x += interval) - { - this.defaultColor(1.0F - (x / (width + 5.0F * interval))); - this.drawTexturedModalRect((int) (backgroundX + xOffset), (int) (backgroundY + yOffset + fHeight + x / interval), 0, fHeight, width - x, 1); - } - } - - //RIGHT GRADIENT - - if(index == this.tabSize - 1 && this.tabSize > 1) - { - int offset = 3; - - for(int x = 0; x < width; x += interval) - { - this.defaultColor(1.0F - (x / (width + 5.0F * interval))); - this.drawTexturedModalRect((int) (backgroundX + Math.ceil(xOffset) + x + offset), (int) (backgroundY + yOffset + fHeight + x / interval), this.bgTextureWidth - width + x, fHeight, width - x, 1); - } - } + yOffset = -22; + fHeight = 25; + color = 0xFFFFFF; + this.defaultColor(); } else { - //LEFT CORNER FILLER - - if(index == 0) + yOffset = -20; + fHeight = 20; + color = 0xE0E0E0; + this.darkColor(); + } + + this.bindBackground(); + this.drawTexturedModalRect((int) (backgroundX + xOffset), (int) (backgroundY + yOffset), 0, 0, (int) Math.ceil(this.tabHalf), fHeight); + this.drawTexturedModalRect((int) (backgroundX + this.tabHalf + xOffset), (int) (backgroundY + yOffset), this.bgTextureWidth - (int) Math.ceil(this.tabHalf), 0, (int) Math.ceil(this.tabHalf), fHeight); + + if(!ConfigSkin.areSharpEdgesEnabled()) + { + if(this.content.getActiveContent().equals(tab)) { - int factor = 2; + //RIGHT TAB CURVATURE - for(int x = 0; x < factor; x++) + if(index < this.tabSize - 1 || this.tabSize == 1) { - this.drawTexturedModalRect(backgroundX, backgroundY + x, 0, fHeight, factor - x, 1); + int factor = 2; + + for(int x = 0; x < factor; x++) + { + this.drawTexturedModalRect((int) (backgroundX + this.tabWidth + xOffset - x - 1), (int) (backgroundY + x + 1), (int) (this.tabWidth - x - 1), x + 1, x + 1, 1); + } + } + + //LEFT TAB CURVATURE + + if(index > 0) + { + int factor = 2; + + for(int x = 0; x < factor; x++) + { + this.drawTexturedModalRect((int) (backgroundX + xOffset), (int) (backgroundY + x + 1), xOffset.intValue(), x + 1, x + 1, 1); + } + } + + int width = (int)(this.tabWidth - 3); + int interval = 5; + + //LEFT GRADIENT + + if(index == 0) + { + for(int x = 0; x < width; x += interval) + { + this.defaultColor(1.0F - (x / (width + 5.0F * interval))); + this.drawTexturedModalRect((int) (backgroundX + xOffset), (int) (backgroundY + yOffset + fHeight + x / interval), 0, fHeight, width - x, 1); + } + } + + //RIGHT GRADIENT + + if(index == this.tabSize - 1 && this.tabSize > 1) + { + int offset = 3; + + for(int x = 0; x < width; x += interval) + { + this.defaultColor(1.0F - (x / (width + 5.0F * interval))); + this.drawTexturedModalRect((int) (backgroundX + Math.ceil(xOffset) + x + offset), (int) (backgroundY + yOffset + fHeight + x / interval), this.bgTextureWidth - width + x, fHeight, width - x, 1); + } } } - - //RIGHT CORNER FILLER - - if(index == this.tabSize - 1) + else { - int factor = 3; + //LEFT CORNER FILLER - for(int x = 0; x < factor + 1; x++) + if(index == 0) { - this.drawTexturedModalRect(backgroundX + this.bgTextureWidth - x, backgroundY + factor - x, this.bgTextureWidth - x, fHeight, x, 1); + int factor = 2; + + for(int x = 0; x < factor; x++) + { + this.drawTexturedModalRect(backgroundX, backgroundY + x, 0, fHeight, factor - x, 1); + } } + + //RIGHT CORNER FILLER + + if(index == this.tabSize - 1) + { + int factor = 3; + + for(int x = 0; x < factor + 1; x++) + { + this.drawTexturedModalRect(backgroundX + this.bgTextureWidth - x, backgroundY + factor - x, this.bgTextureWidth - x, fHeight, x, 1); + } + } + } + } + + this.drawCenteredString(this.fontRenderer, ChatFormatting.UNDERLINE + tab.getTabTitle(), (int) (backgroundX + this.tabHalf + xOffset), (int) (backgroundY - 13), color); + }); + + this.defaultColor(); + + //VERSION LABEL + + final String label = "$mcversion-$version"; + final int hexAlpha = (int) (0xFF * 0.2) << 24; + final int color = ConfigSkin.getLabelColor() + hexAlpha; + final int versionWidth = this.width - this.fontRenderer.getStringWidth(label) - 2; + final int versionHeight = this.height - 10; + + this.fontRenderer.drawString(label, versionWidth, versionHeight, color); + + //TITLE + + final int maxWidth = this.bgTextureWidth - 7 - 2 - this.fontRenderer.getStringWidth(WorldHandler.USERNAME) - 2 - this.getWatchOffset() - 7; + this.fontRenderer.drawString(TextFormatting.shortenString(this.content.getTitle(), maxWidth, this.fontRenderer), backgroundX + 7, backgroundY + 7, ConfigSkin.getLabelColor()); + + //HEADLINE + + if(this.content.getHeadline() != null) + { + if(this.content.getHeadline().length > 0) + { + this.fontRenderer.drawString(this.content.getHeadline()[0], backgroundX + 8, backgroundY + 22, ConfigSkin.getHeadlineColor()); + } + + if(this.content.getHeadline().length > 1) + { + this.fontRenderer.drawString(this.content.getHeadline()[1], backgroundX + 126, backgroundY + 22, ConfigSkin.getHeadlineColor()); + } + } + + //NAME FIELD + + final String username = WorldHandler.USERNAME.isEmpty() && !this.nameField.isFocused() ? I18n.format("gui.worldhandler.generic.edit_username") : WorldHandler.USERNAME; + this.fontRenderer.drawString(username, backgroundX + 232 - this.fontRenderer.getStringWidth(username), backgroundY + 7, ConfigSkin.getLabelColor()); + + //WATCH + + if(ConfigSettings.isWatchEnabled()) + { + final int watchX = backgroundX + 233; + final int watchY = backgroundY + 5; + + UtilRender.drawWatchIntoGui(this, watchX, watchY, Minecraft.getMinecraft().world.getWorldInfo().getWorldTime(), ConfigSettings.isSmoothWatchEnabled()); + + if(ConfigSettings.areTooltipsEnabled()) + { + if(mouseX >= watchX && mouseX <= watchX + 9 && mouseY >= watchY && mouseY <= watchY + 9) + { + GuiUtils.drawHoveringText(Arrays.asList(TextFormatting.getWorldTime(Minecraft.getMinecraft().world.getWorldTime())), mouseX, mouseY + 9, this.width, this.height, this.width, this.fontRenderer); + GlStateManager.disableLighting(); } } } - this.drawCenteredString(this.fontRenderer, ChatFormatting.UNDERLINE + tab.getTabTitle(), (int) (backgroundX + this.tabHalf + xOffset), (int) (backgroundY - 13), color); - }); - - this.defaultColor(); - - //VERSION LABEL - - final String label = "$mcversion-$version"; - final int hexAlpha = (int) (0xFF * 0.2) << 24; - final int color = ConfigSkin.getLabelColor() + hexAlpha; - final int versionWidth = this.width - this.fontRenderer.getStringWidth(label) - 2; - final int versionHeight = this.height - 10; - - this.fontRenderer.drawString(label, versionWidth, versionHeight, color); - - //TITLE - - final int maxWidth = this.bgTextureWidth - 7 - 2 - this.fontRenderer.getStringWidth(WorldHandler.USERNAME) - 2 - this.getWatchOffset() - 7; - this.fontRenderer.drawString(TextFormatting.shortenString(this.content.getTitle(), maxWidth, this.fontRenderer), backgroundX + 7, backgroundY + 7, ConfigSkin.getLabelColor()); - - //HEADLINE - - if(this.content.getHeadline() != null) - { - if(this.content.getHeadline().length > 0) + //BUTTONS + + for(int x = 0; x < this.buttonList.size(); x++) { - this.fontRenderer.drawString(this.content.getHeadline()[0], backgroundX + 8, backgroundY + 22, ConfigSkin.getHeadlineColor()); + this.buttonList.get(x).drawButton(this.mc, mouseX, mouseY, partialTicks); } - if(this.content.getHeadline().length > 1) + for(int x = 0; x < this.labelList.size(); x++) { - this.fontRenderer.drawString(this.content.getHeadline()[1], backgroundX + 126, backgroundY + 22, ConfigSkin.getHeadlineColor()); + this.labelList.get(x).drawLabel(this.mc, mouseX, mouseY); } - } - - //NAME FIELD - - final String username = WorldHandler.USERNAME.isEmpty() && !this.nameField.isFocused() ? I18n.format("gui.worldhandler.generic.edit_username") : WorldHandler.USERNAME; - this.fontRenderer.drawString(username, backgroundX + 232 - this.fontRenderer.getStringWidth(username), backgroundY + 7, ConfigSkin.getLabelColor()); - - //WATCH - - if(ConfigSettings.isWatchEnabled()) - { - final int watchX = backgroundX + 233; - final int watchY = backgroundY + 5; - UtilRender.drawWatchIntoGui(this, watchX, watchY, Minecraft.getMinecraft().world.getWorldInfo().getWorldTime(), ConfigSettings.isSmoothWatchEnabled()); + //CONTAINER + + this.content.drawScreen(this, this.getContentX(), this.getContentY(), mouseX, mouseY, partialTicks); + + //CONTAINER ELEMENTS + + for(IElement element : this.elements) + { + element.draw(); + } + + //SYNTAX + + if(ConfigSettings.isCommandSyntaxEnabled() && this.syntaxField != null) + { + this.syntaxField.drawTextBox(); + } + + //SPLASHTEXT + + if(this.splash != null) + { + GlStateManager.pushMatrix(); + RenderHelper.enableGUIStandardItemLighting(); + GlStateManager.disableLighting(); + GlStateManager.translate((float) (backgroundX + 212), backgroundY + 15, 0.0F); + GlStateManager.rotate(17.0F, 0.0F, 0.0F, 1.0F); + + float scale = 1.1F - MathHelper.abs(MathHelper.sin((float) (Minecraft.getSystemTime() % 1000L) / 1000.0F * (float) Math.PI * 2.0F) * 0.1F); + scale = scale * 100.0F / this.fontRenderer.getStringWidth(this.splash); + GlStateManager.scale(scale, scale, scale); + + this.drawCenteredString(this.fontRenderer, this.splash, 0, (int) scale, 0xFFFF00); + + GlStateManager.popMatrix(); + } + + //TOOLTIPS if(ConfigSettings.areTooltipsEnabled()) { - if(mouseX >= watchX && mouseX <= watchX + 9 && mouseY >= watchY && mouseY <= watchY + 9) + for(int x = 0; x < this.buttonList.size(); x++) { - GuiUtils.drawHoveringText(Arrays.asList(TextFormatting.getWorldTime(Minecraft.getMinecraft().world.getWorldTime())), mouseX, mouseY + 9, this.width, this.height, this.width, this.fontRenderer); - GlStateManager.disableLighting(); + if(this.buttonList.get(x) instanceof GuiButtonWorldHandler) + { + ((GuiButtonWorldHandler) this.buttonList.get(x)).drawTooltip(mouseX, mouseY, this.width, this.height); + } } } - } - - //BUTTONS - - for(int x = 0; x < this.buttonList.size(); x++) - { - this.buttonList.get(x).drawButton(this.mc, mouseX, mouseY, partialTicks); - } - - for(int x = 0; x < this.labelList.size(); x++) - { - this.labelList.get(x).drawLabel(this.mc, mouseX, mouseY); - } - - //CONTAINER - - this.content.drawScreen(this, this.getContentX(), this.getContentY(), mouseX, mouseY, partialTicks); - - //CONTAINER ELEMENTS - - for(IElement element : this.elements) - { - element.draw(); - } - - //SYNTAX - - if(ConfigSettings.isCommandSyntaxEnabled() && this.syntaxField != null) - { - this.syntaxField.drawTextBox(); - } - - //SPLASHTEXT - - if(this.splash != null) - { - GlStateManager.pushMatrix(); - RenderHelper.enableGUIStandardItemLighting(); - GlStateManager.disableLighting(); - GlStateManager.translate((float) (backgroundX + 212), backgroundY + 15, 0.0F); - GlStateManager.rotate(17.0F, 0.0F, 0.0F, 1.0F); - float scale = 1.1F - MathHelper.abs(MathHelper.sin((float) (Minecraft.getSystemTime() % 1000L) / 1000.0F * (float) Math.PI * 2.0F) * 0.1F); - scale = scale * 100.0F / this.fontRenderer.getStringWidth(this.splash); - GlStateManager.scale(scale, scale, scale); + //VERSION LABEL TOOLTIP - this.drawCenteredString(this.fontRenderer, this.splash, 0, (int) scale, 0xFFFF00); - - GlStateManager.popMatrix(); - } - - //TOOLTIPS - - if(ConfigSettings.areTooltipsEnabled()) - { - for(int x = 0; x < this.buttonList.size(); x++) + if(mouseX >= versionWidth && mouseY >= versionHeight) { - if(this.buttonList.get(x) instanceof GuiButtonWorldHandler) - { - ((GuiButtonWorldHandler) this.buttonList.get(x)).drawTooltip(mouseX, mouseY, this.width, this.height); - } + GuiUtils.drawHoveringText(Arrays.asList(label), versionWidth - 12, versionHeight + 12, this.width + this.fontRenderer.getStringWidth(label), this.height + 10, this.width, this.fontRenderer); } } - - //VERSION LABEL TOOLTIP - - if(mouseX >= versionWidth && mouseY >= versionHeight) + catch(Exception e) { - GuiUtils.drawHoveringText(Arrays.asList(label), versionWidth - 12, versionHeight + 12, this.width + this.fontRenderer.getStringWidth(label), this.height + 10, this.width, this.fontRenderer); + WorldHandler.throwError(e); } } @Override protected void keyTyped(char charTyped, int keyCode) throws IOException { - super.keyTyped(charTyped, keyCode); - - this.content.keyTyped(this, charTyped, keyCode); - - if(this.nameField.isFocused()) + try { - this.nameField.textboxKeyTyped(charTyped, keyCode); - WorldHandler.USERNAME = this.nameField.getText(); - this.updateNameField(); + super.keyTyped(charTyped, keyCode); + + this.content.keyTyped(this, charTyped, keyCode); + + if(this.nameField.isFocused()) + { + this.nameField.textboxKeyTyped(charTyped, keyCode); + WorldHandler.USERNAME = this.nameField.getText(); + this.updateNameField(); + } + + if(ConfigSettings.isCommandSyntaxEnabled() && this.syntaxField != null) + { + this.syntaxField.textboxKeyTyped(charTyped, keyCode); + } + + for(IElement element : this.elements) + { + element.keyTyped(this, charTyped, keyCode); + } } - - if(ConfigSettings.isCommandSyntaxEnabled() && this.syntaxField != null) + catch(Exception e) { - this.syntaxField.textboxKeyTyped(charTyped, keyCode); - } - - for(IElement element : this.elements) - { - element.keyTyped(this, charTyped, keyCode); + WorldHandler.throwError(e); } } @Override protected void mouseClicked(int mouseX, int mouseY, int mouseButton) throws IOException { - super.mouseClicked(mouseX, mouseY, mouseButton); - - this.content.mouseClicked(mouseX, mouseY, mouseButton); - this.nameField.mouseClicked(mouseX, mouseY, mouseButton); - - if(this.nameField.isFocused()) + try { - this.nameField.setCursorPositionEnd(); + super.mouseClicked(mouseX, mouseY, mouseButton); + + this.content.mouseClicked(mouseX, mouseY, mouseButton); + this.nameField.mouseClicked(mouseX, mouseY, mouseButton); + + if(this.nameField.isFocused()) + { + this.nameField.setCursorPositionEnd(); + } + + if(ConfigSettings.isCommandSyntaxEnabled() && this.syntaxField != null) + { + this.syntaxField.mouseClicked(mouseX, mouseY, mouseButton); + } + + for(IElement element : this.elements) + { + element.mouseClicked(mouseX, mouseY, mouseButton); + } } - - if(ConfigSettings.isCommandSyntaxEnabled() && this.syntaxField != null) + catch(Exception e) { - this.syntaxField.mouseClicked(mouseX, mouseY, mouseButton); - } - - for(IElement element : this.elements) - { - element.mouseClicked(mouseX, mouseY, mouseButton); + WorldHandler.throwError(e); } } @Override public void onGuiClosed() { - this.content.onGuiClosed(); + try + { + this.content.onGuiClosed(); + } + catch(Exception e) + { + WorldHandler.throwError(e); + } } @Override diff --git a/src/main/java/exopandora/worldhandler/gui/content/Content.java b/src/main/java/exopandora/worldhandler/gui/content/Content.java index 97fadf2..2ade4cd 100644 --- a/src/main/java/exopandora/worldhandler/gui/content/Content.java +++ b/src/main/java/exopandora/worldhandler/gui/content/Content.java @@ -4,7 +4,7 @@ import java.util.HashMap; import java.util.Map; import exopandora.worldhandler.Main; -import exopandora.worldhandler.gui.button.persistence.ButtonValues; +import exopandora.worldhandler.gui.button.persistence.ButtonValue; import exopandora.worldhandler.gui.content.impl.ContentAdvancements; import exopandora.worldhandler.gui.content.impl.ContentButcher; import exopandora.worldhandler.gui.content.impl.ContentChangeWorld; @@ -91,13 +91,13 @@ public abstract class Content implements IContent REGISTRY.register(id, textualID, content); } - private Map persistence; + private Map persistence; - public ButtonValues getPersistence(Object id) + public ButtonValue getPersistence(Object id) { if(this.persistence == null) { - this.persistence = new HashMap(); + this.persistence = new HashMap(); } if(this.persistence.containsKey(id)) @@ -105,7 +105,7 @@ public abstract class Content implements IContent return this.persistence.get(id); } - ButtonValues values = new ButtonValues(); + ButtonValue values = new ButtonValue(); this.persistence.put(id, values); diff --git a/src/main/java/exopandora/worldhandler/gui/content/IContent.java b/src/main/java/exopandora/worldhandler/gui/content/IContent.java index 650c56e..484fb0d 100644 --- a/src/main/java/exopandora/worldhandler/gui/content/IContent.java +++ b/src/main/java/exopandora/worldhandler/gui/content/IContent.java @@ -29,7 +29,7 @@ public interface IContent } - default void actionPerformed(Container container, GuiButton button) + default void actionPerformed(Container container, GuiButton button) throws Exception { } diff --git a/src/main/java/exopandora/worldhandler/gui/content/element/impl/ElementClickList.java b/src/main/java/exopandora/worldhandler/gui/content/element/impl/ElementClickList.java index 05f09ce..e1b1d9e 100644 --- a/src/main/java/exopandora/worldhandler/gui/content/element/impl/ElementClickList.java +++ b/src/main/java/exopandora/worldhandler/gui/content/element/impl/ElementClickList.java @@ -8,7 +8,7 @@ import exopandora.worldhandler.gui.button.EnumTooltip; import exopandora.worldhandler.gui.button.GuiButtonList; import exopandora.worldhandler.gui.button.GuiButtonWorldHandler; import exopandora.worldhandler.gui.button.logic.IListButtonLogic; -import exopandora.worldhandler.gui.button.persistence.ButtonValues; +import exopandora.worldhandler.gui.button.persistence.ButtonValue; import exopandora.worldhandler.gui.container.Container; import exopandora.worldhandler.gui.content.Content; import exopandora.worldhandler.gui.content.element.Element; @@ -59,7 +59,7 @@ public class ElementClickList extends Element container.add(this.button = new GuiButtonList(this.getButtonId(), this.x, this.y, 114, 20, EnumTooltip.TOP_RIGHT, this.content, new IListButtonLogic() { @Override - public void actionPerformed(Container container, GuiButton button, ButtonValues values) + public void actionPerformed(Container container, GuiButton button, ButtonValue values) { content.getPersistence(logic.getId() + (depth + 1)).setIndex(0); container.initButtons(); @@ -78,13 +78,13 @@ public class ElementClickList extends Element } @Override - public String getDisplayString(ButtonValues values) + public String getDisplayString(ButtonValue values) { return logic.translate(getKeys()); } @Override - public String getTooltipString(ButtonValues values) + public String getTooltipString(ButtonValue values) { if(values != null && values.getObject() != null) { @@ -118,7 +118,7 @@ public class ElementClickList extends Element } @Nullable - private ButtonValues getValues() + private ButtonValue getValues() { if(this.button != null) { diff --git a/src/main/java/exopandora/worldhandler/gui/content/element/impl/ElementColorMenu.java b/src/main/java/exopandora/worldhandler/gui/content/element/impl/ElementColorMenu.java index 6a8082a..8bcd780 100644 --- a/src/main/java/exopandora/worldhandler/gui/content/element/impl/ElementColorMenu.java +++ b/src/main/java/exopandora/worldhandler/gui/content/element/impl/ElementColorMenu.java @@ -7,7 +7,7 @@ import exopandora.worldhandler.gui.button.GuiButtonList; import exopandora.worldhandler.gui.button.GuiButtonWorldHandler; import exopandora.worldhandler.gui.button.GuiTextFieldTooltip; import exopandora.worldhandler.gui.button.logic.ColorListButtonLogic; -import exopandora.worldhandler.gui.button.persistence.ButtonValues; +import exopandora.worldhandler.gui.button.persistence.ButtonValue; import exopandora.worldhandler.gui.container.Container; import exopandora.worldhandler.gui.content.Content; import exopandora.worldhandler.gui.content.element.Element; @@ -59,7 +59,7 @@ public class ElementColorMenu extends Element container.add(this.colorList = new GuiButtonList(this.ids[0], this.x + 118, this.y + 24, 114, 20, this.content, new ColorListButtonLogic() { @Override - public void actionPerformed(Container container, GuiButton button, ButtonValues values) + public void actionPerformed(Container container, GuiButton button, ButtonValue values) { string.setColor(values.getIndex()); } diff --git a/src/main/java/exopandora/worldhandler/gui/content/element/impl/ElementPageList.java b/src/main/java/exopandora/worldhandler/gui/content/element/impl/ElementPageList.java index 5e8ed49..0f1e3ed 100644 --- a/src/main/java/exopandora/worldhandler/gui/content/element/impl/ElementPageList.java +++ b/src/main/java/exopandora/worldhandler/gui/content/element/impl/ElementPageList.java @@ -5,7 +5,7 @@ import java.util.List; import exopandora.worldhandler.config.ConfigSkin; import exopandora.worldhandler.format.TextFormatting; import exopandora.worldhandler.gui.button.GuiButtonWorldHandler; -import exopandora.worldhandler.gui.button.persistence.ButtonValues; +import exopandora.worldhandler.gui.button.persistence.ButtonValue; import exopandora.worldhandler.gui.container.Container; import exopandora.worldhandler.gui.content.Content; import exopandora.worldhandler.gui.content.element.Element; @@ -25,7 +25,7 @@ public class ElementPageList extends Element private final int width; private final int height; private final int[] ids; - private final ButtonValues values; + private final ButtonValue values; public ElementPageList(int x, int y, List list, K initial, int width, int height, int length, Content content, int[] ids, ILogicPageList logic) { diff --git a/src/main/java/exopandora/worldhandler/gui/content/impl/ContentAdvancements.java b/src/main/java/exopandora/worldhandler/gui/content/impl/ContentAdvancements.java index 501c1b6..a1e2c5b 100644 --- a/src/main/java/exopandora/worldhandler/gui/content/impl/ContentAdvancements.java +++ b/src/main/java/exopandora/worldhandler/gui/content/impl/ContentAdvancements.java @@ -17,7 +17,7 @@ import exopandora.worldhandler.gui.button.EnumTooltip; import exopandora.worldhandler.gui.button.GuiButtonList; import exopandora.worldhandler.gui.button.GuiButtonWorldHandler; import exopandora.worldhandler.gui.button.logic.IListButtonLogic; -import exopandora.worldhandler.gui.button.persistence.ButtonValues; +import exopandora.worldhandler.gui.button.persistence.ButtonValue; import exopandora.worldhandler.gui.category.Categories; import exopandora.worldhandler.gui.category.Category; import exopandora.worldhandler.gui.container.Container; @@ -109,7 +109,7 @@ public class ContentAdvancements extends Content private final EnumMode[] values = Arrays.stream(EnumMode.values()).filter(mode -> !mode.equals(EnumMode.EVERYTHING)).toArray(EnumMode[]::new); @Override - public void actionPerformed(Container container, GuiButton button, ButtonValues values) + public void actionPerformed(Container container, GuiButton button, ButtonValue values) { builderAdvancement.setMode(values.getObject()); } @@ -127,7 +127,7 @@ public class ContentAdvancements extends Content } @Override - public String getDisplayString(ButtonValues values) + public String getDisplayString(ButtonValue values) { return I18n.format("gui.worldhandler.advancements." + values.getObject().toString()); } @@ -145,7 +145,7 @@ public class ContentAdvancements extends Content } @Override - public void actionPerformed(Container container, GuiButton button) + public void actionPerformed(Container container, GuiButton button) throws Exception { switch(button.id) { diff --git a/src/main/java/exopandora/worldhandler/gui/content/impl/ContentButcher.java b/src/main/java/exopandora/worldhandler/gui/content/impl/ContentButcher.java index 87fb016..96eeb34 100644 --- a/src/main/java/exopandora/worldhandler/gui/content/impl/ContentButcher.java +++ b/src/main/java/exopandora/worldhandler/gui/content/impl/ContentButcher.java @@ -54,7 +54,7 @@ public class ContentButcher extends ContentChild } @Override - public void actionPerformed(Container container, GuiButton button) + public void actionPerformed(Container container, GuiButton button) throws Exception { switch(button.id) { diff --git a/src/main/java/exopandora/worldhandler/gui/content/impl/ContentChangeWorld.java b/src/main/java/exopandora/worldhandler/gui/content/impl/ContentChangeWorld.java index 5af55ff..03fb528 100644 --- a/src/main/java/exopandora/worldhandler/gui/content/impl/ContentChangeWorld.java +++ b/src/main/java/exopandora/worldhandler/gui/content/impl/ContentChangeWorld.java @@ -30,7 +30,7 @@ public class ContentChangeWorld extends ContentChild } @Override - public void actionPerformed(Container container, GuiButton button) + public void actionPerformed(Container container, GuiButton button) throws Exception { switch(button.id) { diff --git a/src/main/java/exopandora/worldhandler/gui/content/impl/ContentContainers.java b/src/main/java/exopandora/worldhandler/gui/content/impl/ContentContainers.java index 28a4508..b7db7ab 100644 --- a/src/main/java/exopandora/worldhandler/gui/content/impl/ContentContainers.java +++ b/src/main/java/exopandora/worldhandler/gui/content/impl/ContentContainers.java @@ -43,7 +43,7 @@ public class ContentContainers extends Content } @Override - public void actionPerformed(Container container, GuiButton button) + public void actionPerformed(Container container, GuiButton button) throws Exception { switch(button.id) { diff --git a/src/main/java/exopandora/worldhandler/gui/content/impl/ContentContinue.java b/src/main/java/exopandora/worldhandler/gui/content/impl/ContentContinue.java index 5b5d94e..e5b46aa 100644 --- a/src/main/java/exopandora/worldhandler/gui/content/impl/ContentContinue.java +++ b/src/main/java/exopandora/worldhandler/gui/content/impl/ContentContinue.java @@ -72,7 +72,7 @@ public class ContentContinue extends ContentChild } @Override - public void actionPerformed(Container container, GuiButton button) + public void actionPerformed(Container container, GuiButton button) throws Exception { switch(button.id) { diff --git a/src/main/java/exopandora/worldhandler/gui/content/impl/ContentCustomItem.java b/src/main/java/exopandora/worldhandler/gui/content/impl/ContentCustomItem.java index 4bdb728..883d194 100644 --- a/src/main/java/exopandora/worldhandler/gui/content/impl/ContentCustomItem.java +++ b/src/main/java/exopandora/worldhandler/gui/content/impl/ContentCustomItem.java @@ -257,7 +257,7 @@ public class ContentCustomItem extends Content } @Override - public void actionPerformed(Container container, GuiButton button) + public void actionPerformed(Container container, GuiButton button) throws Exception { switch(button.id) { diff --git a/src/main/java/exopandora/worldhandler/gui/content/impl/ContentEditBlocks.java b/src/main/java/exopandora/worldhandler/gui/content/impl/ContentEditBlocks.java index 4e26113..0897622 100644 --- a/src/main/java/exopandora/worldhandler/gui/content/impl/ContentEditBlocks.java +++ b/src/main/java/exopandora/worldhandler/gui/content/impl/ContentEditBlocks.java @@ -14,7 +14,7 @@ import exopandora.worldhandler.gui.button.GuiButtonList; import exopandora.worldhandler.gui.button.GuiButtonWorldHandler; import exopandora.worldhandler.gui.button.GuiTextFieldTooltip; import exopandora.worldhandler.gui.button.logic.IListButtonLogic; -import exopandora.worldhandler.gui.button.persistence.ButtonValues; +import exopandora.worldhandler.gui.button.persistence.ButtonValue; import exopandora.worldhandler.gui.category.Categories; import exopandora.worldhandler.gui.category.Category; import exopandora.worldhandler.gui.container.Container; @@ -178,7 +178,7 @@ public class ContentEditBlocks extends Content container.add(this.cloneButton = new GuiButtonList(9, x + 118, y, 114, 20, EnumTooltip.TOP_RIGHT, this, new IListButtonLogic() { @Override - public void actionPerformed(Container container, GuiButton button, ButtonValues values) + public void actionPerformed(Container container, GuiButton button, ButtonValue values) { builderClone.setMask(values.getObject()); } @@ -196,7 +196,7 @@ public class ContentEditBlocks extends Content } @Override - public String getDisplayString(ButtonValues values) + public String getDisplayString(ButtonValue values) { return I18n.format("gui.worldhandler.edit_blocks.clone.mode." + values.getObject().toString()); } @@ -216,7 +216,7 @@ public class ContentEditBlocks extends Content } @Override - public void actionPerformed(Container container, GuiButton button) + public void actionPerformed(Container container, GuiButton button) throws Exception { switch(button.id) { diff --git a/src/main/java/exopandora/worldhandler/gui/content/impl/ContentEnchantment.java b/src/main/java/exopandora/worldhandler/gui/content/impl/ContentEnchantment.java index e1cd410..42faa8b 100644 --- a/src/main/java/exopandora/worldhandler/gui/content/impl/ContentEnchantment.java +++ b/src/main/java/exopandora/worldhandler/gui/content/impl/ContentEnchantment.java @@ -98,7 +98,7 @@ public class ContentEnchantment extends Content } @Override - public void actionPerformed(Container container, GuiButton button) + public void actionPerformed(Container container, GuiButton button) throws Exception { switch(button.id) { diff --git a/src/main/java/exopandora/worldhandler/gui/content/impl/ContentExperience.java b/src/main/java/exopandora/worldhandler/gui/content/impl/ContentExperience.java index 7c77a82..e92e966 100644 --- a/src/main/java/exopandora/worldhandler/gui/content/impl/ContentExperience.java +++ b/src/main/java/exopandora/worldhandler/gui/content/impl/ContentExperience.java @@ -72,7 +72,7 @@ public class ContentExperience extends Content } @Override - public void actionPerformed(Container container, GuiButton button) + public void actionPerformed(Container container, GuiButton button) throws Exception { switch(button.id) { diff --git a/src/main/java/exopandora/worldhandler/gui/content/impl/ContentGamerules.java b/src/main/java/exopandora/worldhandler/gui/content/impl/ContentGamerules.java index 5646fd1..916430a 100644 --- a/src/main/java/exopandora/worldhandler/gui/content/impl/ContentGamerules.java +++ b/src/main/java/exopandora/worldhandler/gui/content/impl/ContentGamerules.java @@ -127,7 +127,7 @@ public class ContentGamerules extends Content } @Override - public void actionPerformed(Container container, GuiButton button) + public void actionPerformed(Container container, GuiButton button) throws Exception { switch(button.id) { diff --git a/src/main/java/exopandora/worldhandler/gui/content/impl/ContentMain.java b/src/main/java/exopandora/worldhandler/gui/content/impl/ContentMain.java index c775df4..b346556 100644 --- a/src/main/java/exopandora/worldhandler/gui/content/impl/ContentMain.java +++ b/src/main/java/exopandora/worldhandler/gui/content/impl/ContentMain.java @@ -59,7 +59,7 @@ public class ContentMain extends Content } @Override - public void actionPerformed(Container container, GuiButton button) + public void actionPerformed(Container container, GuiButton button) throws Exception { switch(button.id) { diff --git a/src/main/java/exopandora/worldhandler/gui/content/impl/ContentMultiplayer.java b/src/main/java/exopandora/worldhandler/gui/content/impl/ContentMultiplayer.java index 57af421..2522cf3 100644 --- a/src/main/java/exopandora/worldhandler/gui/content/impl/ContentMultiplayer.java +++ b/src/main/java/exopandora/worldhandler/gui/content/impl/ContentMultiplayer.java @@ -180,7 +180,7 @@ public class ContentMultiplayer extends Content } @Override - public void actionPerformed(Container container, GuiButton button) + public void actionPerformed(Container container, GuiButton button) throws Exception { switch(button.id) { diff --git a/src/main/java/exopandora/worldhandler/gui/content/impl/ContentNoteEditor.java b/src/main/java/exopandora/worldhandler/gui/content/impl/ContentNoteEditor.java index 1f0eb6b..0d3fb97 100644 --- a/src/main/java/exopandora/worldhandler/gui/content/impl/ContentNoteEditor.java +++ b/src/main/java/exopandora/worldhandler/gui/content/impl/ContentNoteEditor.java @@ -99,7 +99,7 @@ public class ContentNoteEditor extends Content } @Override - public void actionPerformed(Container container, GuiButton button) + public void actionPerformed(Container container, GuiButton button) throws Exception { switch(button.id) { diff --git a/src/main/java/exopandora/worldhandler/gui/content/impl/ContentPlayer.java b/src/main/java/exopandora/worldhandler/gui/content/impl/ContentPlayer.java index b15c509..1922f1e 100644 --- a/src/main/java/exopandora/worldhandler/gui/content/impl/ContentPlayer.java +++ b/src/main/java/exopandora/worldhandler/gui/content/impl/ContentPlayer.java @@ -121,7 +121,7 @@ public class ContentPlayer extends Content } @Override - public void actionPerformed(Container container, GuiButton button) + public void actionPerformed(Container container, GuiButton button) throws Exception { switch(button.id) { diff --git a/src/main/java/exopandora/worldhandler/gui/content/impl/ContentPotions.java b/src/main/java/exopandora/worldhandler/gui/content/impl/ContentPotions.java index 51c798a..4cfcbcc 100644 --- a/src/main/java/exopandora/worldhandler/gui/content/impl/ContentPotions.java +++ b/src/main/java/exopandora/worldhandler/gui/content/impl/ContentPotions.java @@ -186,7 +186,7 @@ public class ContentPotions extends ContentChild } @Override - public void actionPerformed(Container container, GuiButton button) + public void actionPerformed(Container container, GuiButton button) throws Exception { Potion potion = this.builderPotion.getEffectAsPotion(); diff --git a/src/main/java/exopandora/worldhandler/gui/content/impl/ContentRecipes.java b/src/main/java/exopandora/worldhandler/gui/content/impl/ContentRecipes.java index f808202..eb4f41c 100644 --- a/src/main/java/exopandora/worldhandler/gui/content/impl/ContentRecipes.java +++ b/src/main/java/exopandora/worldhandler/gui/content/impl/ContentRecipes.java @@ -109,7 +109,7 @@ public class ContentRecipes extends Content } @Override - public void actionPerformed(Container container, GuiButton button) + public void actionPerformed(Container container, GuiButton button) throws Exception { switch(button.id) { diff --git a/src/main/java/exopandora/worldhandler/gui/content/impl/ContentScoreboardObjectives.java b/src/main/java/exopandora/worldhandler/gui/content/impl/ContentScoreboardObjectives.java index c90950e..dee6b30 100644 --- a/src/main/java/exopandora/worldhandler/gui/content/impl/ContentScoreboardObjectives.java +++ b/src/main/java/exopandora/worldhandler/gui/content/impl/ContentScoreboardObjectives.java @@ -199,7 +199,7 @@ public class ContentScoreboardObjectives extends ContentScoreboard } @Override - public void actionPerformed(Container container, GuiButton button) + public void actionPerformed(Container container, GuiButton button) throws Exception { switch(button.id) { diff --git a/src/main/java/exopandora/worldhandler/gui/content/impl/ContentScoreboardPlayers.java b/src/main/java/exopandora/worldhandler/gui/content/impl/ContentScoreboardPlayers.java index 56a1ea6..36f5b8d 100644 --- a/src/main/java/exopandora/worldhandler/gui/content/impl/ContentScoreboardPlayers.java +++ b/src/main/java/exopandora/worldhandler/gui/content/impl/ContentScoreboardPlayers.java @@ -144,7 +144,7 @@ public class ContentScoreboardPlayers extends ContentScoreboard } @Override - public void actionPerformed(Container container, GuiButton button) + public void actionPerformed(Container container, GuiButton button) throws Exception { switch(button.id) { diff --git a/src/main/java/exopandora/worldhandler/gui/content/impl/ContentScoreboardTeams.java b/src/main/java/exopandora/worldhandler/gui/content/impl/ContentScoreboardTeams.java index 66514e4..0ad56e7 100644 --- a/src/main/java/exopandora/worldhandler/gui/content/impl/ContentScoreboardTeams.java +++ b/src/main/java/exopandora/worldhandler/gui/content/impl/ContentScoreboardTeams.java @@ -148,7 +148,7 @@ public class ContentScoreboardTeams extends ContentScoreboard } @Override - public void actionPerformed(Container container, GuiButton button) + public void actionPerformed(Container container, GuiButton button) throws Exception { switch(button.id) { diff --git a/src/main/java/exopandora/worldhandler/gui/content/impl/ContentSignEditor.java b/src/main/java/exopandora/worldhandler/gui/content/impl/ContentSignEditor.java index f84084b..603aecf 100644 --- a/src/main/java/exopandora/worldhandler/gui/content/impl/ContentSignEditor.java +++ b/src/main/java/exopandora/worldhandler/gui/content/impl/ContentSignEditor.java @@ -132,7 +132,7 @@ public class ContentSignEditor extends Content } @Override - public void actionPerformed(Container container, GuiButton button) + public void actionPerformed(Container container, GuiButton button) throws Exception { switch(button.id) { diff --git a/src/main/java/exopandora/worldhandler/gui/content/impl/ContentSummon.java b/src/main/java/exopandora/worldhandler/gui/content/impl/ContentSummon.java index 577a717..d7def3b 100644 --- a/src/main/java/exopandora/worldhandler/gui/content/impl/ContentSummon.java +++ b/src/main/java/exopandora/worldhandler/gui/content/impl/ContentSummon.java @@ -365,7 +365,7 @@ public class ContentSummon extends Content } @Override - public void actionPerformed(Container container, GuiButton button) + public void actionPerformed(Container container, GuiButton button) throws Exception { switch(button.id) { diff --git a/src/main/java/exopandora/worldhandler/gui/content/impl/ContentWorldInfo.java b/src/main/java/exopandora/worldhandler/gui/content/impl/ContentWorldInfo.java index 30aafe1..c3938d6 100644 --- a/src/main/java/exopandora/worldhandler/gui/content/impl/ContentWorldInfo.java +++ b/src/main/java/exopandora/worldhandler/gui/content/impl/ContentWorldInfo.java @@ -108,7 +108,7 @@ public class ContentWorldInfo extends Content } @Override - public void actionPerformed(Container container, GuiButton button) + public void actionPerformed(Container container, GuiButton button) throws Exception { switch(button.id) { diff --git a/src/main/resources/assets/worldhandler/lang/de_de.lang b/src/main/resources/assets/worldhandler/lang/de_de.lang index fae67b3..265ba61 100644 --- a/src/main/resources/assets/worldhandler/lang/de_de.lang +++ b/src/main/resources/assets/worldhandler/lang/de_de.lang @@ -448,4 +448,6 @@ gui.worldhandler.color.white=Weiss gui.worldhandler.color.reset=Normal worldhandler.permission.refused=Du hast nicht die benötigte Berechtigung, um den World Handler zu benutzen -worldhandler.permission.refused.change=Ändere "%s" um diese Nachricht zu umgehen \ No newline at end of file +worldhandler.permission.refused.change=Ändere "%s" um diese Nachricht zu umgehen + +worldhandler.error.gui=Ein unerwarteter Fehler ist aufgetreten. Bitte sende einen Unfallbericht mit deinen Protokolldateien an das %s Forum \ No newline at end of file diff --git a/src/main/resources/assets/worldhandler/lang/en_us.lang b/src/main/resources/assets/worldhandler/lang/en_us.lang index efe6824..9c0f85c 100644 --- a/src/main/resources/assets/worldhandler/lang/en_us.lang +++ b/src/main/resources/assets/worldhandler/lang/en_us.lang @@ -448,4 +448,6 @@ gui.worldhandler.color.white=White gui.worldhandler.color.reset=Default worldhandler.permission.refused=You do not have permission to use the World Handler -worldhandler.permission.refused.change=Change "%s" to disable this message \ No newline at end of file +worldhandler.permission.refused.change=Change "%s" to disable this message + +worldhandler.error.gui=An unexpected error occured. Please send a crash report with your log files to the %s forum \ No newline at end of file diff --git a/src/main/resources/assets/worldhandler/lang/zh_cn.lang b/src/main/resources/assets/worldhandler/lang/zh_cn.lang index d6d6bbc..b701372 100644 --- a/src/main/resources/assets/worldhandler/lang/zh_cn.lang +++ b/src/main/resources/assets/worldhandler/lang/zh_cn.lang @@ -449,3 +449,5 @@ gui.worldhandler.color.reset=默认 worldhandler.permission.refused=您没有权限使用 World Handler worldhandler.permission.refused.change=更改 "%s" 来停止显示这条信息 + +worldhandler.error.gui=An unexpected error occured. Please send a crash report with your log files to the %s forum \ No newline at end of file