Added setting to display gui group creation message in different spots

This commit is contained in:
Esophose 2020-04-15 13:06:58 -06:00
parent 6936e516d7
commit 9d9b42dadf
2 changed files with 21 additions and 5 deletions

View file

@ -1,6 +1,7 @@
package dev.esophose.playerparticles.gui.hook; package dev.esophose.playerparticles.gui.hook;
import dev.esophose.playerparticles.PlayerParticles; import dev.esophose.playerparticles.PlayerParticles;
import dev.esophose.playerparticles.manager.ConfigurationManager.Setting;
import dev.esophose.playerparticles.manager.LocaleManager; import dev.esophose.playerparticles.manager.LocaleManager;
import dev.esophose.playerparticles.util.NMSUtil; import dev.esophose.playerparticles.util.NMSUtil;
import dev.esophose.playerparticles.util.StringPlaceholders; import dev.esophose.playerparticles.util.StringPlaceholders;
@ -56,7 +57,6 @@ public class PlayerChatHook extends BukkitRunnable implements Listener {
Set<PlayerChatHookData> hooksToRemove = new HashSet<>(); Set<PlayerChatHookData> hooksToRemove = new HashSet<>();
for (PlayerChatHookData hook : hooks) { for (PlayerChatHookData hook : hooks) {
hook.decrementHookLength();
if (hook.timedOut()) { if (hook.timedOut()) {
hook.triggerCallback(null); hook.triggerCallback(null);
hooksToRemove.add(hook); hooksToRemove.add(hook);
@ -68,13 +68,28 @@ public class PlayerChatHook extends BukkitRunnable implements Listener {
hooksToRemove.remove(hook); hooksToRemove.remove(hook);
} else { } else {
LocaleManager localeManager = PlayerParticles.getInstance().getManager(LocaleManager.class); LocaleManager localeManager = PlayerParticles.getInstance().getManager(LocaleManager.class);
if (NMSUtil.getVersionNumber() == 9) { String message = localeManager.getLocaleMessage("gui-save-group-hotbar-message", StringPlaceholders.single("seconds", hook.getTimeRemaining()));
if (hook.getMaxHookLength() == hook.getTimeRemaining())
player.sendMessage(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 { } 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) for (PlayerChatHookData hookToRemove : hooksToRemove)

View file

@ -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?"), 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"), 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+"), 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_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"), MYSQL_ENABLED("mysql-settings.enabled", false, "Enable MySQL", "If false, SQLite will be used instead"),