From bd90f8fab6fab609fdf5b58b94b16cb92e879d34 Mon Sep 17 00:00:00 2001 From: bowser0000 Date: Mon, 6 Jul 2020 17:06:40 -0400 Subject: Upload all files Features coordinate & angle display, and guild party desktop notifications. --- me/Danker/CoordRenderer.java | 13 +++++++ me/Danker/TheMod.java | 82 ++++++++++++++++++++++++++++++++++++++++++++ me/Danker/ToggleCommand.java | 55 +++++++++++++++++++++++++++++ 3 files changed, 150 insertions(+) create mode 100644 me/Danker/CoordRenderer.java create mode 100644 me/Danker/TheMod.java create mode 100644 me/Danker/ToggleCommand.java diff --git a/me/Danker/CoordRenderer.java b/me/Danker/CoordRenderer.java new file mode 100644 index 0000000..66cdb5e --- /dev/null +++ b/me/Danker/CoordRenderer.java @@ -0,0 +1,13 @@ +package me.Danker; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.ScaledResolution; + +public class CoordRenderer extends Gui { + public CoordRenderer(Minecraft mc, String text) { + ScaledResolution scaled = new ScaledResolution(mc); + int height = scaled.getScaledHeight(); + drawString(mc.fontRendererObj, text, 5, height - 25, Integer.parseInt("FFFFFF", 16)); + } +} diff --git a/me/Danker/TheMod.java b/me/Danker/TheMod.java new file mode 100644 index 0000000..3e9aa3f --- /dev/null +++ b/me/Danker/TheMod.java @@ -0,0 +1,82 @@ +package me.Danker; + +import java.awt.Image; +import java.awt.SystemTray; +import java.awt.Toolkit; +import java.awt.TrayIcon; + +import net.minecraft.client.Minecraft; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraftforge.client.ClientCommandHandler; +import net.minecraftforge.client.event.ClientChatReceivedEvent; +import net.minecraftforge.client.event.RenderGameOverlayEvent; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.fml.common.FMLCommonHandler; +import net.minecraftforge.fml.common.Mod; +import net.minecraftforge.fml.common.Mod.EventHandler; +import net.minecraftforge.fml.common.event.FMLInitializationEvent; +import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; + +@Mod(modid = TheMod.MODID, version = TheMod.VERSION) +public class TheMod +{ + public static final String MODID = "Danker's Skyblock Mod"; + public static final String VERSION = "1.1"; + + @EventHandler + public void init(FMLInitializationEvent event) + { + FMLCommonHandler.instance().bus().register(this); + MinecraftForge.EVENT_BUS.register(this); + } + + @EventHandler + public void preInit(final FMLPreInitializationEvent event) { + ClientCommandHandler.instance.registerCommand(new ToggleCommand()); + } + + @SubscribeEvent + public void onChat(final ClientChatReceivedEvent event) { + final ToggleCommand tc = new ToggleCommand(); + final boolean isGPartyToggled = tc.getToggle("gparty"); + String message = event.message.getUnformattedText(); + String messagelc = message.toLowerCase(); + + if (isGPartyToggled) { + if (messagelc.contains(" has invited all members of ")) { + try { + final SystemTray tray = SystemTray.getSystemTray(); + final Image image = Toolkit.getDefaultToolkit().createImage("icon.png"); + final TrayIcon trayIcon = new TrayIcon(image, "Guild Party Notifier"); + trayIcon.setImageAutoSize(true); + trayIcon.setToolTip("Guild Party Notifier"); + tray.add(trayIcon); + trayIcon.displayMessage("Guild Party", message, TrayIcon.MessageType.INFO); + tray.remove(trayIcon); + } catch (Exception ex) { + System.err.print(ex); + } + } + } + + } + + @SubscribeEvent + public void renderPlayerInfo(final RenderGameOverlayEvent.Post event) { + if (event.type != RenderGameOverlayEvent.ElementType.EXPERIENCE) return; + final ToggleCommand tc = new ToggleCommand(); + final boolean isCoordsToggled = tc.getToggle("coords"); + + if (isCoordsToggled) { + EntityPlayer player = Minecraft.getMinecraft().thePlayer; + double xDir = (player.rotationYaw % 360 + 360) % 360; + if (xDir > 180) xDir -= 360; + xDir = (double) Math.round(xDir * 10d) / 10d; + double yDir = (double) Math.round(player.rotationPitch * 10d) / 10d; + String text = (int) player.posX + " / " + (int) player.posY + " / " + (int) player.posZ + " (" + xDir + " / " + yDir + ")"; + new CoordRenderer(Minecraft.getMinecraft(), text); + } + + } +} diff --git a/me/Danker/ToggleCommand.java b/me/Danker/ToggleCommand.java new file mode 100644 index 0000000..d24c399 --- /dev/null +++ b/me/Danker/ToggleCommand.java @@ -0,0 +1,55 @@ +package me.Danker; + +import net.minecraft.command.CommandBase; +import net.minecraft.command.CommandException; +import net.minecraft.command.ICommand; +import net.minecraft.command.ICommandSender; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.ChatComponentText; + +public class ToggleCommand extends CommandBase implements ICommand { + private static boolean gpartyToggled = true; + private static boolean coordsToggled = true; + + public boolean getToggle(String type) { + if (type.equals("gparty")) { + return gpartyToggled; + } else if (type.equals("coords")) { + return coordsToggled; + } + return true; + } + + @Override + public String getCommandName() { + return "toggle"; + } + + @Override + public String getCommandUsage(ICommandSender arg0) { + return getCommandName() + " [gparty/coords]"; + } + + @Override + public int getRequiredPermissionLevel() { + return 0; + } + + @Override + public void processCommand(ICommandSender arg0, String[] arg1) throws CommandException { + final EntityPlayer player = (EntityPlayer)arg0; + + if (arg1.length == 0) { + player.addChatMessage(new ChatComponentText("Usage: /toggle [gparty/coords]")); + return; + } + + if (arg1[0].equalsIgnoreCase("gparty")) { + gpartyToggled = !gpartyToggled; + player.addChatMessage(new ChatComponentText("Guild party notifications has been set to " + gpartyToggled + ".")); + } else if (arg1[0].equalsIgnoreCase("coords")) { + coordsToggled = !coordsToggled; + player.addChatMessage(new ChatComponentText("Coord/Angle display has been set to " + coordsToggled + ".")); + } + } +} -- cgit