From 22c238a910c21f4e02d36fc31361fab36d9e1a1f Mon Sep 17 00:00:00 2001 From: quasar098 Date: Sat, 7 Jan 2023 14:22:05 -0500 Subject: [PATCH] bug fixes --- build.gradle | 2 +- .../quasar/voxylenhanced/VoxylEnhanced.java | 7 +- .../voxylenhanced/VoxylSettingsPage.java | 13 ++++ .../com/quasar/voxylenhanced/VoxylUtils.java | 10 ++- .../hidemessages/VoxylHideMessages.java | 2 +- .../voxylenhanced/sumo/VoxylBlockSumo.java | 68 +++++++++++++++++++ 6 files changed, 95 insertions(+), 7 deletions(-) create mode 100644 src/main/java/com/quasar/voxylenhanced/sumo/VoxylBlockSumo.java diff --git a/build.gradle b/build.gradle index c9cf019..9e93ae2 100644 --- a/build.gradle +++ b/build.gradle @@ -26,7 +26,7 @@ plugins { id "net.minecraftforge.gradle.forge" version "2.0.2" } */ -version = "0.5.2" +version = "0.5.3" group= "com.quasar.voxylenhanced" // http://maven.apache.org/guides/mini/guide-naming-conventions.html archivesBaseName = "voxylenhanced" diff --git a/src/main/java/com/quasar/voxylenhanced/VoxylEnhanced.java b/src/main/java/com/quasar/voxylenhanced/VoxylEnhanced.java index 919e5de..f8c907a 100644 --- a/src/main/java/com/quasar/voxylenhanced/VoxylEnhanced.java +++ b/src/main/java/com/quasar/voxylenhanced/VoxylEnhanced.java @@ -7,6 +7,8 @@ import com.quasar.voxylenhanced.obstacles.VoxylObstacles; import com.quasar.voxylenhanced.obstacles.VoxylObstaclesSegments; import com.quasar.voxylenhanced.statsviewer.VoxylStatsViewer; +import com.quasar.voxylenhanced.sumo.VoxylBlockSumo; +import gg.essential.vigilance.gui.VigilancePalette; import net.minecraft.client.Minecraft; import net.minecraftforge.client.ClientCommandHandler; import net.minecraftforge.common.MinecraftForge; @@ -25,7 +27,7 @@ public class VoxylEnhanced { public static final String MODID = "voxylenhanced"; - public static final String VERSION = "0.5.2"; + public static final String VERSION = "0.5.3"; public static boolean willOpenSettings = false; @@ -36,7 +38,8 @@ public class VoxylEnhanced new VoxylAutoGG(), new VoxylStatsViewer(), new VoxylHideMessages(), - new VoxylMisc() + new VoxylMisc(), + new VoxylBlockSumo() ); @EventHandler diff --git a/src/main/java/com/quasar/voxylenhanced/VoxylSettingsPage.java b/src/main/java/com/quasar/voxylenhanced/VoxylSettingsPage.java index 15d9d1f..dfc6e89 100644 --- a/src/main/java/com/quasar/voxylenhanced/VoxylSettingsPage.java +++ b/src/main/java/com/quasar/voxylenhanced/VoxylSettingsPage.java @@ -1,8 +1,10 @@ package com.quasar.voxylenhanced; import com.quasar.voxylenhanced.misc.VoxylMisc; +import gg.essential.vigilance.VigilanceConfig; import gg.essential.vigilance.Vigilant; import gg.essential.vigilance.data.*; +import gg.essential.vigilance.gui.VigilancePalette; import org.jetbrains.annotations.NotNull; import scala.sys.Prop; @@ -442,6 +444,16 @@ void obstaclesCollectData() { ) public String hideMessageCustomRegex = ""; + // block sumo + + @Property( + type= PropertyType.SWITCH, + name = "Block Sumo features enabled", + description = "Self explanatory", + category = "Block Sumo" + ) + public boolean blockSumoEnabled = false; + public VoxylSettingsPage(@NotNull File file) { super(file, "Voxyl Enhanced", new JVMAnnotationPropertyCollector(), new VoxylSortingBehavior()); @@ -452,5 +464,6 @@ public VoxylSettingsPage(@NotNull File file) { setCategoryDescription("Obstacles", "The obstacles gamemode"); setCategoryDescription("Stats Viewer", "List the stats of players in your game"); setCategoryDescription("Hide Messages", "Hide repetitive messages sent by the server"); + setCategoryDescription("Block Sumo", "The block sumo gamemode"); } } diff --git a/src/main/java/com/quasar/voxylenhanced/VoxylUtils.java b/src/main/java/com/quasar/voxylenhanced/VoxylUtils.java index e6b2646..404db80 100644 --- a/src/main/java/com/quasar/voxylenhanced/VoxylUtils.java +++ b/src/main/java/com/quasar/voxylenhanced/VoxylUtils.java @@ -152,16 +152,20 @@ public static Integer getIntAfter(String str, String before) { public static FontRenderer fr; public static void drawText(String str, boolean leftAlignment, int textY) { - drawText(str, leftAlignment, 0xFFFFFF, textY); + drawText(str, leftAlignment, 255, textY); } - public static void drawText(String str, boolean leftAlignment, int col, int textY) { + public static void drawText(String str, boolean leftAlignemnt, int alpha, int textY) { + drawText(str, leftAlignemnt, alpha, 0xFFFFFF, textY); + } + + public static void drawText(String str, boolean leftAlignment, int alpha, int col, int textY) { updateFontRenderer(); ScaledResolution var5 = new ScaledResolution(Minecraft.getMinecraft()); int width = var5.getScaledWidth(); int tWidth = fr.getStringWidth(str); int tX = leftAlignment ? 5 : width - (tWidth + 5); - fr.drawString(str, tX, textY, col, true); + fr.drawString(str, tX, textY, col | (alpha << 24), true); } public static void updateFontRenderer() { diff --git a/src/main/java/com/quasar/voxylenhanced/hidemessages/VoxylHideMessages.java b/src/main/java/com/quasar/voxylenhanced/hidemessages/VoxylHideMessages.java index 5434dab..cb1a377 100644 --- a/src/main/java/com/quasar/voxylenhanced/hidemessages/VoxylHideMessages.java +++ b/src/main/java/com/quasar/voxylenhanced/hidemessages/VoxylHideMessages.java @@ -155,7 +155,7 @@ public void chatEvent(ClientChatReceivedEvent event) { } } if (VoxylEnhanced.settings.hideMessageDisconnect) { - if (pAvoidSame.matcher(m).find()) { + if (pDisconnected.matcher(m).find()) { event.setCanceled(true); } } diff --git a/src/main/java/com/quasar/voxylenhanced/sumo/VoxylBlockSumo.java b/src/main/java/com/quasar/voxylenhanced/sumo/VoxylBlockSumo.java new file mode 100644 index 0000000..c18d089 --- /dev/null +++ b/src/main/java/com/quasar/voxylenhanced/sumo/VoxylBlockSumo.java @@ -0,0 +1,68 @@ +package com.quasar.voxylenhanced.sumo; + +import com.quasar.voxylenhanced.VoxylEnhanced; +import com.quasar.voxylenhanced.VoxylFeature; +import com.quasar.voxylenhanced.VoxylSettingsPage; +import com.quasar.voxylenhanced.VoxylUtils; +import net.minecraft.client.Minecraft; +import net.minecraftforge.client.event.ClientChatReceivedEvent; +import net.minecraftforge.client.event.RenderGameOverlayEvent; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; +import org.lwjgl.Sys; + +import java.text.DecimalFormat; +import java.util.regex.Pattern; + +public class VoxylBlockSumo extends VoxylFeature { + + static Pattern pOpItemSpawning = Pattern.compile("^An OP Item is spawning on the gold block in 5 seconds!.*$"); + static Pattern pAllPlayerItems = Pattern.compile("^All players have recieved.*$"); + static Long nextPowerItem = null; + static Long nextRegularItem = null; + static DecimalFormat df = new DecimalFormat("0.0"); + + @SubscribeEvent + public void chatMessage(ClientChatReceivedEvent event) { + if (Minecraft.getMinecraft() == null || Minecraft.getMinecraft().getCurrentServerData() == null) { + return; + } + if (!VoxylUtils.isInVoxylNetwork()) { + return; + } + if (!VoxylEnhanced.settings.blockSumoEnabled) { + return; + } + if (pOpItemSpawning.matcher(event.message.getUnformattedText()).find()) { + nextPowerItem = System.currentTimeMillis() + 5000L; + } + if (pAllPlayerItems.matcher(event.message.getUnformattedText()).find()) { + nextRegularItem = System.currentTimeMillis() + 25000L; + } + } + + public String formatTime(Long stime, Long etime) { + return df.format(((double) (stime - etime))/1000L); + } + + @SubscribeEvent + public void drawText(RenderGameOverlayEvent.Text event) { + if (Minecraft.getMinecraft() == null || Minecraft.getMinecraft().getCurrentServerData() == null) { + return; + } + + if (nextPowerItem != null) { + if (nextPowerItem < System.currentTimeMillis()) { + nextPowerItem = System.currentTimeMillis() + 30000L; + } + VoxylUtils.drawText("OP Item: " + formatTime(nextPowerItem, System.currentTimeMillis()), false, 5); + } + if (nextRegularItem != null) { + VoxylUtils.drawText("Normal Item: " + formatTime(nextRegularItem, System.currentTimeMillis()), false, 15); + } + } + + public void reset() { + nextPowerItem = null; + nextRegularItem = null; + } +}