From 9d9b42dadf963eb5932a3d103ba5245e24b426aa Mon Sep 17 00:00:00 2001 From: Esophose Date: Wed, 15 Apr 2020 13:06:58 -0600 Subject: [PATCH] Added setting to display gui group creation message in different spots --- .../gui/hook/PlayerChatHook.java | 25 +++++++++++++++---- .../manager/ConfigurationManager.java | 1 + 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/src/main/java/dev/esophose/playerparticles/gui/hook/PlayerChatHook.java b/src/main/java/dev/esophose/playerparticles/gui/hook/PlayerChatHook.java index c069852..05f2354 100644 --- a/src/main/java/dev/esophose/playerparticles/gui/hook/PlayerChatHook.java +++ b/src/main/java/dev/esophose/playerparticles/gui/hook/PlayerChatHook.java @@ -1,6 +1,7 @@ package dev.esophose.playerparticles.gui.hook; import dev.esophose.playerparticles.PlayerParticles; +import dev.esophose.playerparticles.manager.ConfigurationManager.Setting; import dev.esophose.playerparticles.manager.LocaleManager; import dev.esophose.playerparticles.util.NMSUtil; import dev.esophose.playerparticles.util.StringPlaceholders; @@ -56,7 +57,6 @@ public class PlayerChatHook extends BukkitRunnable implements Listener { Set hooksToRemove = new HashSet<>(); for (PlayerChatHookData hook : hooks) { - hook.decrementHookLength(); if (hook.timedOut()) { hook.triggerCallback(null); hooksToRemove.add(hook); @@ -68,13 +68,28 @@ public class PlayerChatHook extends BukkitRunnable implements Listener { hooksToRemove.remove(hook); } else { LocaleManager localeManager = PlayerParticles.getInstance().getManager(LocaleManager.class); - if (NMSUtil.getVersionNumber() == 9) { - if (hook.getMaxHookLength() == hook.getTimeRemaining()) - player.sendMessage(localeManager.getLocaleMessage("gui-save-group-hotbar-message", StringPlaceholders.single("seconds", hook.getTimeRemaining()))); + String message = localeManager.getLocaleMessage("gui-save-group-hotbar-message", StringPlaceholders.single("seconds", hook.getTimeRemaining())); + + if (NMSUtil.getVersionNumber() >= 11) { + switch (Setting.GUI_GROUP_CREATION_MESSAGE_DISPLAY_AREA.getString().toUpperCase()) { + case "ACTION_BAR": + player.spigot().sendMessage(ChatMessageType.ACTION_BAR, TextComponent.fromLegacyText(localeManager.getLocaleMessage("gui-save-group-hotbar-message", StringPlaceholders.single("seconds", hook.getTimeRemaining())))); + break; + case "TITLE": + player.sendTitle("", message, 5, 40, 10); + break; + default: + if (hook.getMaxHookLength() == hook.getTimeRemaining()) + player.sendMessage(message); + break; + } } else { - player.spigot().sendMessage(ChatMessageType.ACTION_BAR, TextComponent.fromLegacyText(localeManager.getLocaleMessage("gui-save-group-hotbar-message", StringPlaceholders.single("seconds", hook.getTimeRemaining())))); + if (hook.getMaxHookLength() == hook.getTimeRemaining()) + player.sendMessage(message); } } + + hook.decrementHookLength(); } for (PlayerChatHookData hookToRemove : hooksToRemove) diff --git a/src/main/java/dev/esophose/playerparticles/manager/ConfigurationManager.java b/src/main/java/dev/esophose/playerparticles/manager/ConfigurationManager.java index c6b3734..304bbd9 100644 --- a/src/main/java/dev/esophose/playerparticles/manager/ConfigurationManager.java +++ b/src/main/java/dev/esophose/playerparticles/manager/ConfigurationManager.java @@ -55,6 +55,7 @@ public class ConfigurationManager extends Manager { PARTICLE_RENDER_RANGE_FIXED_EFFECT("particle-render-range-fixed-effect", 192, "From how many blocks away should a player be able to see the particles from a fixed effect?"), RAINBOW_CYCLE_SPEED("rainbow-cycle-speed", 2, "How many out of 360 hue ticks to move per game tick", "Higher values make the rainbow cycle faster", "Note: Must be a positive whole number"), DUST_SIZE("dust-size", 1.0, "How large should dust particles appear?", "Note: Can include decimals", "Only works in 1.13+"), + GUI_GROUP_CREATION_MESSAGE_DISPLAY_AREA("gui-group-creation-message-display-area", "ACTION_BAR", "Valid values: ACTION_BAR, TITLE, CHAT", "Where should the GUI group creation countdown message be displayed?", "Note: Server versions less than 1.11.2 will always use CHAT"), MYSQL_SETTINGS("mysql-settings", null, "Settings for if you want to use MySQL for data management"), MYSQL_ENABLED("mysql-settings.enabled", false, "Enable MySQL", "If false, SQLite will be used instead"),