From f9a85c3f90869f109ccf84a5f0ea03e11b5e60db Mon Sep 17 00:00:00 2001 From: RappyTV Date: Fri, 7 Jul 2023 17:20:52 +0200 Subject: [PATCH 01/22] Bump labygradle version --- settings.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/settings.gradle.kts b/settings.gradle.kts index c0a2b7c..2d4240c 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,7 +1,7 @@ rootProject.name = "Toolbreak Warning" pluginManagement { - val labyGradlePluginVersion = "0.3.25" + val labyGradlePluginVersion = "0.3.27" plugins { id("net.labymod.gradle") version (labyGradlePluginVersion) } From 4c095e6c410b313bf6ad97e2c924d8c0be439639 Mon Sep 17 00:00:00 2001 From: RappyTV Date: Fri, 7 Jul 2023 17:21:11 +0200 Subject: [PATCH 02/22] Register version 1.20.1 --- build.gradle.kts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index 0222d16..055d581 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -32,7 +32,8 @@ labyMod { "1.18.2", "1.19.2", "1.19.3", - "1.19.4" + "1.19.4", + "1.20.1" ) { version, provider -> configureRun(provider, version) } From 249573d0bbccf3347e57bed800bb4989ee36b245 Mon Sep 17 00:00:00 2001 From: RappyTV Date: Fri, 7 Jul 2023 18:09:20 +0200 Subject: [PATCH 03/22] Add referencable sound interface --- .../java/com/rappytv/toolwarn/util/ITbwSounds.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 core/src/main/java/com/rappytv/toolwarn/util/ITbwSounds.java diff --git a/core/src/main/java/com/rappytv/toolwarn/util/ITbwSounds.java b/core/src/main/java/com/rappytv/toolwarn/util/ITbwSounds.java new file mode 100644 index 0000000..a7aae9a --- /dev/null +++ b/core/src/main/java/com/rappytv/toolwarn/util/ITbwSounds.java @@ -0,0 +1,12 @@ +package com.rappytv.toolwarn.util; + +import net.labymod.api.client.resources.ResourceLocation; +import net.labymod.api.reference.annotation.Referenceable; +import org.jetbrains.annotations.NotNull; + +@Referenceable +public interface ITbwSounds { + + @NotNull ResourceLocation getPlingSound(); + @NotNull ResourceLocation getAnvilUseSound(); +} From 4b5ff7a9de631c31374897b6b3bf0bf8d9f86c7d Mon Sep 17 00:00:00 2001 From: RappyTV Date: Fri, 7 Jul 2023 18:09:57 +0200 Subject: [PATCH 04/22] Add enum for selectable sounds --- .../com/rappytv/toolwarn/util/WarnSound.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 core/src/main/java/com/rappytv/toolwarn/util/WarnSound.java diff --git a/core/src/main/java/com/rappytv/toolwarn/util/WarnSound.java b/core/src/main/java/com/rappytv/toolwarn/util/WarnSound.java new file mode 100644 index 0000000..40582fb --- /dev/null +++ b/core/src/main/java/com/rappytv/toolwarn/util/WarnSound.java @@ -0,0 +1,19 @@ +package com.rappytv.toolwarn.util; + +import com.rappytv.toolwarn.TbwAddon; +import net.labymod.api.client.resources.ResourceLocation; + +public enum WarnSound { + AnvilUse(TbwAddon.getSounds().getAnvilUseSound()), + Pling(TbwAddon.getSounds().getPlingSound()); + + private final ResourceLocation resourceLocation; + + WarnSound(ResourceLocation resourceLocation) { + this.resourceLocation = resourceLocation; + } + + public ResourceLocation getResourceLocation() { + return resourceLocation; + } +} From 1cfccb0b495ff327d8d72a8a3519236230764df0 Mon Sep 17 00:00:00 2001 From: RappyTV Date: Fri, 7 Jul 2023 18:11:08 +0200 Subject: [PATCH 05/22] Implement sound api into addon added default sound for testing --- .../main/java/com/rappytv/toolwarn/TbwAddon.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/core/src/main/java/com/rappytv/toolwarn/TbwAddon.java b/core/src/main/java/com/rappytv/toolwarn/TbwAddon.java index 659d6f2..111f439 100644 --- a/core/src/main/java/com/rappytv/toolwarn/TbwAddon.java +++ b/core/src/main/java/com/rappytv/toolwarn/TbwAddon.java @@ -1,7 +1,10 @@ package com.rappytv.toolwarn; import com.rappytv.toolwarn.commands.TbwCommand; +import com.rappytv.toolwarn.core.generated.DefaultReferenceStorage; import com.rappytv.toolwarn.listener.GameTickListener; +import com.rappytv.toolwarn.util.ITbwSounds; +import com.rappytv.toolwarn.util.WarnSound; import net.labymod.api.addon.LabyAddon; import net.labymod.api.models.addon.annotation.AddonMain; @@ -9,8 +12,16 @@ public class TbwAddon extends LabyAddon { public static final String prefix = "§c§lTBW §8» §7"; + public static WarnSound sound; + private static ITbwSounds sounds; private static TbwAddon instance; + @Override + protected void load() { + sounds = ((DefaultReferenceStorage) this.referenceStorageAccessor()).iTbwSounds(); + sound = WarnSound.Pling; + } + @Override protected void enable() { instance = this; @@ -24,6 +35,10 @@ public static TbwAddon get() { return instance; } + public static ITbwSounds getSounds() { + return sounds; + } + @Override protected Class configurationClass() { return TbwConfiguration.class; From 6dd2570710bf70a8e43ac4e58b1c3da3b577702b Mon Sep 17 00:00:00 2001 From: RappyTV Date: Fri, 7 Jul 2023 18:11:59 +0200 Subject: [PATCH 06/22] Play sound when tool warn is triggered --- .../toolwarn/listener/GameTickListener.java | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/com/rappytv/toolwarn/listener/GameTickListener.java b/core/src/main/java/com/rappytv/toolwarn/listener/GameTickListener.java index 8e18bdd..7e25738 100644 --- a/core/src/main/java/com/rappytv/toolwarn/listener/GameTickListener.java +++ b/core/src/main/java/com/rappytv/toolwarn/listener/GameTickListener.java @@ -5,8 +5,11 @@ import com.rappytv.toolwarn.util.ToolType; import com.rappytv.toolwarn.util.Util; import net.labymod.api.Laby; +import net.labymod.api.client.Minecraft; import net.labymod.api.client.entity.player.ClientPlayer; import net.labymod.api.client.entity.player.GameMode; +import net.labymod.api.client.resources.ResourceLocation; +import net.labymod.api.client.sound.SoundType; import net.labymod.api.client.world.item.ItemStack; import net.labymod.api.event.Subscribe; import net.labymod.api.event.client.lifecycle.GameTickEvent; @@ -53,12 +56,22 @@ public void toolUsed(ItemStack itemStack, ToolType toolType) { if(this.config.openChat().get()) Laby.labyAPI().minecraft().openChat(""); Util.msg(I18n.getTranslation("toolwarn.messages.warning", toolType.getWarnPercentage(config)), true); warns.add(itemStack); + Laby.labyAPI().minecraft().sounds().playSound( + TbwAddon.sound.getResourceLocation(), + 1f, + 1f + ); } } else if(isLastHit(itemStack)) { if(!warns.contains(itemStack)) { if(this.config.openChat().get()) Laby.labyAPI().minecraft().openChat(""); Util.msg(Util.getTranslation("toolwarn.messages.lastHit"), true); warns.add(itemStack); + Laby.labyAPI().minecraft().sounds().playSound( + TbwAddon.sound.getResourceLocation(), + 1f, + 1f + ); } } else { warns.remove(itemStack); @@ -67,6 +80,6 @@ public void toolUsed(ItemStack itemStack, ToolType toolType) { public boolean isLastHit(ItemStack i) { if (!addon.configuration().lastHit().get()) return false; - return (i.getMaximumDamage() - i.getCurrentDamageValue()) == 1; + return (i.getMaximumDamage() - i.getCurrentDamageValue()) <= 1; } } From 29cbb796ce0afd2fc071be6ffac0255f6466cb88 Mon Sep 17 00:00:00 2001 From: RappyTV Date: Fri, 7 Jul 2023 19:43:57 +0200 Subject: [PATCH 07/22] Move config to own module Fix game crash crashing because of WarnSound.java Create own subconfig for sounds --- .../java/com/rappytv/toolwarn/TbwAddon.java | 10 ++---- .../rappytv/toolwarn/commands/TbwCommand.java | 3 +- .../{ => config}/TbwConfiguration.java | 9 +++++- .../config/subconfig/TbwSoundSubConfig.java | 27 ++++++++++++++++ .../toolwarn/listener/GameTickListener.java | 32 +++++++++++-------- .../com/rappytv/toolwarn/util/ToolType.java | 2 +- .../com/rappytv/toolwarn/util/WarnSound.java | 17 +++++----- 7 files changed, 65 insertions(+), 35 deletions(-) rename core/src/main/java/com/rappytv/toolwarn/{ => config}/TbwConfiguration.java (91%) create mode 100644 core/src/main/java/com/rappytv/toolwarn/config/subconfig/TbwSoundSubConfig.java diff --git a/core/src/main/java/com/rappytv/toolwarn/TbwAddon.java b/core/src/main/java/com/rappytv/toolwarn/TbwAddon.java index 111f439..c6caa4e 100644 --- a/core/src/main/java/com/rappytv/toolwarn/TbwAddon.java +++ b/core/src/main/java/com/rappytv/toolwarn/TbwAddon.java @@ -1,10 +1,10 @@ package com.rappytv.toolwarn; import com.rappytv.toolwarn.commands.TbwCommand; +import com.rappytv.toolwarn.config.TbwConfiguration; import com.rappytv.toolwarn.core.generated.DefaultReferenceStorage; import com.rappytv.toolwarn.listener.GameTickListener; import com.rappytv.toolwarn.util.ITbwSounds; -import com.rappytv.toolwarn.util.WarnSound; import net.labymod.api.addon.LabyAddon; import net.labymod.api.models.addon.annotation.AddonMain; @@ -12,18 +12,12 @@ public class TbwAddon extends LabyAddon { public static final String prefix = "§c§lTBW §8» §7"; - public static WarnSound sound; private static ITbwSounds sounds; private static TbwAddon instance; - @Override - protected void load() { - sounds = ((DefaultReferenceStorage) this.referenceStorageAccessor()).iTbwSounds(); - sound = WarnSound.Pling; - } - @Override protected void enable() { + sounds = ((DefaultReferenceStorage) this.referenceStorageAccessor()).iTbwSounds(); instance = this; registerSettingCategory(); diff --git a/core/src/main/java/com/rappytv/toolwarn/commands/TbwCommand.java b/core/src/main/java/com/rappytv/toolwarn/commands/TbwCommand.java index bd06390..433ecd8 100644 --- a/core/src/main/java/com/rappytv/toolwarn/commands/TbwCommand.java +++ b/core/src/main/java/com/rappytv/toolwarn/commands/TbwCommand.java @@ -1,7 +1,7 @@ package com.rappytv.toolwarn.commands; import com.rappytv.toolwarn.TbwAddon; -import com.rappytv.toolwarn.TbwConfiguration; +import com.rappytv.toolwarn.config.TbwConfiguration; import com.rappytv.toolwarn.util.ToolType; import com.rappytv.toolwarn.util.Util; import net.labymod.api.Laby; @@ -22,7 +22,6 @@ public TbwCommand(TbwAddon addon) { public boolean execute(String prefix, String[] arguments) { if(arguments.length < 1) { Util.msg(Util.getTranslation("toolwarn.command.invalidSubcommand"), true); - return true; } else if(arguments[0].equalsIgnoreCase("disable")) { config.enabled().set(false); diff --git a/core/src/main/java/com/rappytv/toolwarn/TbwConfiguration.java b/core/src/main/java/com/rappytv/toolwarn/config/TbwConfiguration.java similarity index 91% rename from core/src/main/java/com/rappytv/toolwarn/TbwConfiguration.java rename to core/src/main/java/com/rappytv/toolwarn/config/TbwConfiguration.java index f201dd6..a40825f 100644 --- a/core/src/main/java/com/rappytv/toolwarn/TbwConfiguration.java +++ b/core/src/main/java/com/rappytv/toolwarn/config/TbwConfiguration.java @@ -1,5 +1,6 @@ -package com.rappytv.toolwarn; +package com.rappytv.toolwarn.config; +import com.rappytv.toolwarn.config.subconfig.TbwSoundSubConfig; import net.labymod.api.addon.AddonConfig; import net.labymod.api.client.gui.screen.widget.widgets.input.SliderWidget.SliderSetting; import net.labymod.api.client.gui.screen.widget.widgets.input.SwitchWidget.SwitchSetting; @@ -25,6 +26,8 @@ public class TbwConfiguration extends AddonConfig { @SpriteSlot(size = 32, x = 3) private final ConfigProperty debug = new ConfigProperty<>(false); + private final TbwSoundSubConfig sounds = new TbwSoundSubConfig(); + @SwitchSetting @SpriteSlot(size = 32, y = 1) private final ConfigProperty lastHit = new ConfigProperty<>(true); @@ -55,6 +58,10 @@ public ConfigProperty debug() { return debug; } + public TbwSoundSubConfig sounds() { + return sounds; + } + public ConfigProperty lastHit() { return lastHit; } diff --git a/core/src/main/java/com/rappytv/toolwarn/config/subconfig/TbwSoundSubConfig.java b/core/src/main/java/com/rappytv/toolwarn/config/subconfig/TbwSoundSubConfig.java new file mode 100644 index 0000000..b3a33f8 --- /dev/null +++ b/core/src/main/java/com/rappytv/toolwarn/config/subconfig/TbwSoundSubConfig.java @@ -0,0 +1,27 @@ +package com.rappytv.toolwarn.config.subconfig; + +import com.rappytv.toolwarn.util.WarnSound; +import net.labymod.api.client.gui.screen.widget.widgets.input.dropdown.DropdownWidget.DropdownSetting; +import net.labymod.api.configuration.loader.Config; +import net.labymod.api.configuration.loader.annotation.ParentSwitch; +import net.labymod.api.configuration.loader.property.ConfigProperty; + +public class TbwSoundSubConfig extends Config { + + @ParentSwitch + private final ConfigProperty enabled = new ConfigProperty<>(true); + @DropdownSetting + private final ConfigProperty warnSound = new ConfigProperty<>(WarnSound.PLING); + @DropdownSetting + private final ConfigProperty lastHitSound = new ConfigProperty<>(WarnSound.ANVIL_USE); + + public ConfigProperty enabled() { + return enabled; + } + public ConfigProperty warnSound() { + return warnSound; + } + public ConfigProperty lastHitSound() { + return lastHitSound; + } +} diff --git a/core/src/main/java/com/rappytv/toolwarn/listener/GameTickListener.java b/core/src/main/java/com/rappytv/toolwarn/listener/GameTickListener.java index 7e25738..cb4cdf3 100644 --- a/core/src/main/java/com/rappytv/toolwarn/listener/GameTickListener.java +++ b/core/src/main/java/com/rappytv/toolwarn/listener/GameTickListener.java @@ -1,15 +1,13 @@ package com.rappytv.toolwarn.listener; import com.rappytv.toolwarn.TbwAddon; -import com.rappytv.toolwarn.TbwConfiguration; +import com.rappytv.toolwarn.config.TbwConfiguration; import com.rappytv.toolwarn.util.ToolType; import com.rappytv.toolwarn.util.Util; +import com.rappytv.toolwarn.util.WarnSound; import net.labymod.api.Laby; -import net.labymod.api.client.Minecraft; import net.labymod.api.client.entity.player.ClientPlayer; import net.labymod.api.client.entity.player.GameMode; -import net.labymod.api.client.resources.ResourceLocation; -import net.labymod.api.client.sound.SoundType; import net.labymod.api.client.world.item.ItemStack; import net.labymod.api.event.Subscribe; import net.labymod.api.event.client.lifecycle.GameTickEvent; @@ -56,22 +54,28 @@ public void toolUsed(ItemStack itemStack, ToolType toolType) { if(this.config.openChat().get()) Laby.labyAPI().minecraft().openChat(""); Util.msg(I18n.getTranslation("toolwarn.messages.warning", toolType.getWarnPercentage(config)), true); warns.add(itemStack); - Laby.labyAPI().minecraft().sounds().playSound( - TbwAddon.sound.getResourceLocation(), - 1f, - 1f - ); + + if(config.sounds().enabled().get() && config.sounds().warnSound().get() != WarnSound.NONE) { + Laby.labyAPI().minecraft().sounds().playSound( + config.sounds().warnSound().get().getResourceLocation(), + 1f, + 1f + ); + } } } else if(isLastHit(itemStack)) { if(!warns.contains(itemStack)) { if(this.config.openChat().get()) Laby.labyAPI().minecraft().openChat(""); Util.msg(Util.getTranslation("toolwarn.messages.lastHit"), true); warns.add(itemStack); - Laby.labyAPI().minecraft().sounds().playSound( - TbwAddon.sound.getResourceLocation(), - 1f, - 1f - ); + + if(config.sounds().enabled().get() && config.sounds().lastHitSound().get() != WarnSound.NONE) { + Laby.labyAPI().minecraft().sounds().playSound( + config.sounds().lastHitSound().get().getResourceLocation(), + 1f, + 1f + ); + } } } else { warns.remove(itemStack); diff --git a/core/src/main/java/com/rappytv/toolwarn/util/ToolType.java b/core/src/main/java/com/rappytv/toolwarn/util/ToolType.java index 139ae50..5eca568 100644 --- a/core/src/main/java/com/rappytv/toolwarn/util/ToolType.java +++ b/core/src/main/java/com/rappytv/toolwarn/util/ToolType.java @@ -1,6 +1,6 @@ package com.rappytv.toolwarn.util; -import com.rappytv.toolwarn.TbwConfiguration; +import com.rappytv.toolwarn.config.TbwConfiguration; import net.labymod.api.client.world.item.ItemStack; public enum ToolType { diff --git a/core/src/main/java/com/rappytv/toolwarn/util/WarnSound.java b/core/src/main/java/com/rappytv/toolwarn/util/WarnSound.java index 40582fb..2c05abe 100644 --- a/core/src/main/java/com/rappytv/toolwarn/util/WarnSound.java +++ b/core/src/main/java/com/rappytv/toolwarn/util/WarnSound.java @@ -4,16 +4,15 @@ import net.labymod.api.client.resources.ResourceLocation; public enum WarnSound { - AnvilUse(TbwAddon.getSounds().getAnvilUseSound()), - Pling(TbwAddon.getSounds().getPlingSound()); - - private final ResourceLocation resourceLocation; - - WarnSound(ResourceLocation resourceLocation) { - this.resourceLocation = resourceLocation; - } + NONE, + PLING, + ANVIL_USE; public ResourceLocation getResourceLocation() { - return resourceLocation; + return switch (this) { + case NONE -> null; + case ANVIL_USE -> TbwAddon.getSounds().getAnvilUseSound(); + case PLING -> TbwAddon.getSounds().getPlingSound(); + }; } } From b10713a5340cfd30dc71d4dca3b2ae5987a2162e Mon Sep 17 00:00:00 2001 From: RappyTV Date: Fri, 7 Jul 2023 19:49:44 +0200 Subject: [PATCH 08/22] Replace unnecessary util functions --- .../java/com/rappytv/toolwarn/TbwAddon.java | 6 -- .../rappytv/toolwarn/commands/TbwCommand.java | 70 ++++++++++++------- .../toolwarn/listener/GameTickListener.java | 4 +- .../com/rappytv/toolwarn/util/ToolType.java | 3 +- .../java/com/rappytv/toolwarn/util/Util.java | 11 +-- 5 files changed, 51 insertions(+), 43 deletions(-) diff --git a/core/src/main/java/com/rappytv/toolwarn/TbwAddon.java b/core/src/main/java/com/rappytv/toolwarn/TbwAddon.java index c6caa4e..14a850f 100644 --- a/core/src/main/java/com/rappytv/toolwarn/TbwAddon.java +++ b/core/src/main/java/com/rappytv/toolwarn/TbwAddon.java @@ -13,22 +13,16 @@ public class TbwAddon extends LabyAddon { public static final String prefix = "§c§lTBW §8» §7"; private static ITbwSounds sounds; - private static TbwAddon instance; @Override protected void enable() { sounds = ((DefaultReferenceStorage) this.referenceStorageAccessor()).iTbwSounds(); - instance = this; registerSettingCategory(); registerCommand(new TbwCommand(this)); registerListener(new GameTickListener(this)); } - public static TbwAddon get() { - return instance; - } - public static ITbwSounds getSounds() { return sounds; } diff --git a/core/src/main/java/com/rappytv/toolwarn/commands/TbwCommand.java b/core/src/main/java/com/rappytv/toolwarn/commands/TbwCommand.java index 433ecd8..09fad7c 100644 --- a/core/src/main/java/com/rappytv/toolwarn/commands/TbwCommand.java +++ b/core/src/main/java/com/rappytv/toolwarn/commands/TbwCommand.java @@ -4,10 +4,12 @@ import com.rappytv.toolwarn.config.TbwConfiguration; import com.rappytv.toolwarn.util.ToolType; import com.rappytv.toolwarn.util.Util; +import com.rappytv.toolwarn.util.WarnSound; import net.labymod.api.Laby; import net.labymod.api.client.chat.command.Command; import net.labymod.api.client.entity.player.ClientPlayer; import net.labymod.api.client.world.item.ItemStack; +import net.labymod.api.util.I18n; public class TbwCommand extends Command { @@ -21,84 +23,102 @@ public TbwCommand(TbwAddon addon) { @Override public boolean execute(String prefix, String[] arguments) { if(arguments.length < 1) { - Util.msg(Util.getTranslation("toolwarn.command.invalidSubcommand"), true); + Util.msg(I18n.translate("toolwarn.command.invalidSubcommand"), true); + } else if(arguments[0].equalsIgnoreCase("test")) { + if(arguments.length > 1 && arguments[1].equalsIgnoreCase("last")) { + if(config.sounds().enabled().get() && config.sounds().lastHitSound().get() != WarnSound.NONE) { + Laby.labyAPI().minecraft().sounds().playSound( + config.sounds().lastHitSound().get().getResourceLocation(), + 1f, + 1f + ); + } + } else { + if(config.sounds().enabled().get() && config.sounds().warnSound().get() != WarnSound.NONE) { + Laby.labyAPI().minecraft().sounds().playSound( + config.sounds().warnSound().get().getResourceLocation(), + 1f, + 1f + ); + } + } } else if(arguments[0].equalsIgnoreCase("disable")) { config.enabled().set(false); - Util.msg(Util.getTranslation("toolwarn.command.addonDisabled"), true); + Util.msg(I18n.translate("toolwarn.command.addonDisabled"), true); } else if(arguments[0].equalsIgnoreCase("format")) { if(arguments.length < 2) { - Util.msg(Util.getTranslation("toolwarn.command.onOff"), true); + Util.msg(I18n.translate("toolwarn.command.onOff"), true); return true; } if(arguments[1].equalsIgnoreCase("on")) { config.format().set(true); - Util.msg(Util.getTranslation("toolwarn.command.formattingEnabled"), true); + Util.msg(I18n.translate("toolwarn.command.formattingEnabled"), true); } else if(arguments[1].equalsIgnoreCase("off")) { config.format().set(false); - Util.msg(Util.getTranslation("toolwarn.command.formattingDisabled"), true); + Util.msg(I18n.translate("toolwarn.command.formattingDisabled"), true); } else - Util.msg(Util.getTranslation("toolwarn.command.onOff"), true); + Util.msg(I18n.translate("toolwarn.command.onOff"), true); } else if(arguments[0].equalsIgnoreCase("debug")) { if(arguments.length < 2) { - Util.msg(Util.getTranslation("toolwarn.command.onOnceOff"), true); + Util.msg(I18n.translate("toolwarn.command.onOnceOff"), true); return true; } if(arguments[1].equalsIgnoreCase("on")) { config.debug().set(true); - Util.msg(Util.getTranslation("toolwarn.command.debugEnabled"), true); + Util.msg(I18n.translate("toolwarn.command.debugEnabled"), true); } else if(arguments[1].equalsIgnoreCase("once")) { ClientPlayer player = Laby.labyAPI().minecraft().getClientPlayer(); if(player == null) return true; ItemStack itemStack = player.getMainHandItemStack(); if(itemStack == null) return true; - Util.msg(Util.getTranslation("toolwarn.command.debugOnce"), true); + Util.msg(I18n.translate("toolwarn.command.debugOnce"), true); ToolType toolType = ToolType.getByItem(itemStack); if(toolType == ToolType.None) - Util.msg(Util.getTranslation("toolwarn.command.noEventTriggered"), false); + Util.msg(I18n.translate("toolwarn.command.noEventTriggered"), false); else { int itemWarnInt = (toolType.getWarnPercentage(config) * itemStack.getMaximumDamage()) / 100; int itemUsedInt = itemStack.getMaximumDamage() - itemStack.getCurrentDamageValue(); - Util.msg(Util.getTranslation("toolwarn.messages.debug", toolType.displayName(), (config.format().get() ? Util.formatNumber(itemStack.getMaximumDamage()) : itemStack.getMaximumDamage()), (config.format().get() ? Util.formatNumber(itemUsedInt) : itemUsedInt), (config.format().get() ? Util.formatNumber(itemWarnInt) : itemWarnInt)), false); + Util.msg(I18n.translate("toolwarn.messages.debug", toolType.displayName(), (config.format().get() ? Util.formatNumber(itemStack.getMaximumDamage()) : itemStack.getMaximumDamage()), (config.format().get() ? Util.formatNumber(itemUsedInt) : itemUsedInt), (config.format().get() ? Util.formatNumber(itemWarnInt) : itemWarnInt)), false); } } else if(arguments[1].equalsIgnoreCase("off")) { config.debug().set(false); - Util.msg(Util.getTranslation("toolwarn.command.debugDisabled"), true); + Util.msg(I18n.translate("toolwarn.command.debugDisabled"), true); } else { - Util.msg(Util.getTranslation("toolwarn.command.onOnceOff"), true); + Util.msg(I18n.translate("toolwarn.command.onOnceOff"), true); } } else if(arguments[0].equalsIgnoreCase("config")) { - String yes = "§a" + Util.getTranslation("toolwarn.command.yes"); - String no = "§c" + Util.getTranslation("toolwarn.command.no"); + String yes = "§a" + I18n.translate("toolwarn.command.yes"); + String no = "§c" + I18n.translate("toolwarn.command.no"); - Util.msg(Util.getTranslation("toolwarn.command.config", - Util.getTranslation("toolwarn.settings.enabled.name"), + Util.msg(I18n.translate("toolwarn.command.config", + I18n.translate("toolwarn.settings.enabled.name"), config.enabled().get() ? yes : no, - Util.getTranslation("toolwarn.settings.format.name"), + I18n.translate("toolwarn.settings.format.name"), config.format().get() ? yes : no, - Util.getTranslation("toolwarn.settings.debug.name"), + I18n.translate("toolwarn.settings.debug.name"), config.debug().get() ? yes : no, - Util.getTranslation("toolwarn.settings.lastHit.name"), + I18n.translate("toolwarn.settings.lastHit.name"), config.lastHit().get() ? yes : no, - Util.getTranslation("toolwarn.settings.swordPercentage.name"), + I18n.translate("toolwarn.settings.swordPercentage.name"), "§b" + config.swordPercentage().get() + "%", - Util.getTranslation("toolwarn.settings.pickaxePercentage.name"), + I18n.translate("toolwarn.settings.pickaxePercentage.name"), "§b" + config.pickAxePercentage().get() + "%", - Util.getTranslation("toolwarn.settings.axePercentage.name"), + I18n.translate("toolwarn.settings.axePercentage.name"), "§b" + config.axePercentage().get() + "%", - Util.getTranslation("toolwarn.settings.shovelPercentage.name"), + I18n.translate("toolwarn.settings.shovelPercentage.name"), "§b" + config.shovelPercentage().get() + "%" ), false); } else { - Util.msg(Util.getTranslation("toolwarn.command.invalidSubcommand"), true); + Util.msg(I18n.translate("toolwarn.command.invalidSubcommand"), true); } return true; } diff --git a/core/src/main/java/com/rappytv/toolwarn/listener/GameTickListener.java b/core/src/main/java/com/rappytv/toolwarn/listener/GameTickListener.java index cb4cdf3..7b2cc63 100644 --- a/core/src/main/java/com/rappytv/toolwarn/listener/GameTickListener.java +++ b/core/src/main/java/com/rappytv/toolwarn/listener/GameTickListener.java @@ -47,7 +47,7 @@ public void toolUsed(ItemStack itemStack, ToolType toolType) { int itemWarnInt = (toolType.getWarnPercentage(config) * itemStack.getMaximumDamage()) / 100; int itemUsedInt = itemStack.getMaximumDamage() - itemStack.getCurrentDamageValue(); if(config.debug().get()) - Util.msg(Util.getTranslation("toolwarn.messages.debug", toolType.displayName(), (config.format().get() ? Util.formatNumber(itemStack.getMaximumDamage()) : itemStack.getMaximumDamage()), (config.format().get() ? Util.formatNumber(itemUsedInt) : itemUsedInt), (config.format().get() ? Util.formatNumber(itemWarnInt) : itemWarnInt)), false); + Util.msg(I18n.translate("toolwarn.messages.debug", toolType.displayName(), (config.format().get() ? Util.formatNumber(itemStack.getMaximumDamage()) : itemStack.getMaximumDamage()), (config.format().get() ? Util.formatNumber(itemUsedInt) : itemUsedInt), (config.format().get() ? Util.formatNumber(itemWarnInt) : itemWarnInt)), false); if(itemUsedInt == itemWarnInt) { if(!warns.contains(itemStack)) { @@ -66,7 +66,7 @@ public void toolUsed(ItemStack itemStack, ToolType toolType) { } else if(isLastHit(itemStack)) { if(!warns.contains(itemStack)) { if(this.config.openChat().get()) Laby.labyAPI().minecraft().openChat(""); - Util.msg(Util.getTranslation("toolwarn.messages.lastHit"), true); + Util.msg(I18n.translate("toolwarn.messages.lastHit"), true); warns.add(itemStack); if(config.sounds().enabled().get() && config.sounds().lastHitSound().get() != WarnSound.NONE) { diff --git a/core/src/main/java/com/rappytv/toolwarn/util/ToolType.java b/core/src/main/java/com/rappytv/toolwarn/util/ToolType.java index 5eca568..815afd5 100644 --- a/core/src/main/java/com/rappytv/toolwarn/util/ToolType.java +++ b/core/src/main/java/com/rappytv/toolwarn/util/ToolType.java @@ -2,6 +2,7 @@ import com.rappytv.toolwarn.config.TbwConfiguration; import net.labymod.api.client.world.item.ItemStack; +import net.labymod.api.util.I18n; public enum ToolType { None, Sword, Pickaxe, Axe, Shovel; @@ -30,6 +31,6 @@ public int getWarnPercentage(TbwConfiguration configuration) { } public String displayName() { - return Util.getTranslation("toolwarn.tooltype." + this.name().toLowerCase()); + return I18n.translate("toolwarn.tooltype." + this.name().toLowerCase()); } } diff --git a/core/src/main/java/com/rappytv/toolwarn/util/Util.java b/core/src/main/java/com/rappytv/toolwarn/util/Util.java index 67d1aff..3b32af1 100644 --- a/core/src/main/java/com/rappytv/toolwarn/util/Util.java +++ b/core/src/main/java/com/rappytv/toolwarn/util/Util.java @@ -1,7 +1,7 @@ package com.rappytv.toolwarn.util; import com.rappytv.toolwarn.TbwAddon; -import net.labymod.api.util.I18n; +import net.labymod.api.Laby; import java.text.DecimalFormat; import java.text.DecimalFormatSymbols; import java.text.NumberFormat; @@ -10,14 +10,7 @@ public class Util { public static void msg(String text, boolean prefix) { - TbwAddon.get().displayMessage(prefix ? TbwAddon.prefix + text : text); - } - - public static String getTranslation(String key, Object ...args) { - String translation = I18n.getTranslation(key, args); - if(translation == null) - return key; - return translation; + Laby.references().chatExecutor().displayClientMessage(prefix ? TbwAddon.prefix + text : text); } public static String formatNumber(int number) { From c8b49d6f01dc1c9c4118c40e46e64302609ccf36 Mon Sep 17 00:00:00 2001 From: RappyTV Date: Fri, 7 Jul 2023 20:01:55 +0200 Subject: [PATCH 09/22] Reorder config, add sections --- .../toolwarn/config/TbwConfiguration.java | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/core/src/main/java/com/rappytv/toolwarn/config/TbwConfiguration.java b/core/src/main/java/com/rappytv/toolwarn/config/TbwConfiguration.java index a40825f..e8917df 100644 --- a/core/src/main/java/com/rappytv/toolwarn/config/TbwConfiguration.java +++ b/core/src/main/java/com/rappytv/toolwarn/config/TbwConfiguration.java @@ -8,6 +8,7 @@ import net.labymod.api.configuration.loader.annotation.SpriteSlot; import net.labymod.api.configuration.loader.annotation.SpriteTexture; import net.labymod.api.configuration.loader.property.ConfigProperty; +import net.labymod.api.configuration.settings.annotation.SettingSection; @ConfigName("settings") @SpriteTexture(value = "settings") @@ -16,6 +17,7 @@ public class TbwConfiguration extends AddonConfig { @SwitchSetting @SpriteSlot(size = 32) private final ConfigProperty enabled = new ConfigProperty<>(true); + @SettingSection("general") @SwitchSetting @SpriteSlot(size = 32, x = 1) private final ConfigProperty openChat = new ConfigProperty<>(true); @@ -23,14 +25,16 @@ public class TbwConfiguration extends AddonConfig { @SpriteSlot(size = 32, x = 2) private final ConfigProperty format = new ConfigProperty<>(true); @SwitchSetting + @SpriteSlot(size = 32, y = 1) + private final ConfigProperty lastHit = new ConfigProperty<>(true); + @SwitchSetting @SpriteSlot(size = 32, x = 3) private final ConfigProperty debug = new ConfigProperty<>(false); + @SettingSection("sounds") private final TbwSoundSubConfig sounds = new TbwSoundSubConfig(); - @SwitchSetting - @SpriteSlot(size = 32, y = 1) - private final ConfigProperty lastHit = new ConfigProperty<>(true); + @SettingSection("tools") @SliderSetting(steps = 1, min = 1, max = 25) @SpriteSlot(size = 32, y = 3) private final ConfigProperty swordPercentage = new ConfigProperty<>(5); @@ -54,6 +58,9 @@ public ConfigProperty openChat() { public ConfigProperty format() { return format; } + public ConfigProperty lastHit() { + return lastHit; + } public ConfigProperty debug() { return debug; } @@ -62,9 +69,6 @@ public TbwSoundSubConfig sounds() { return sounds; } - public ConfigProperty lastHit() { - return lastHit; - } public ConfigProperty swordPercentage() { return swordPercentage; } From 09049e826caa6a9a35414644feed6860dd26b2b2 Mon Sep 17 00:00:00 2001 From: RappyTV Date: Fri, 7 Jul 2023 20:16:24 +0200 Subject: [PATCH 10/22] Add new sounds - level up - glass break --- core/src/main/java/com/rappytv/toolwarn/util/ITbwSounds.java | 2 ++ core/src/main/java/com/rappytv/toolwarn/util/WarnSound.java | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/core/src/main/java/com/rappytv/toolwarn/util/ITbwSounds.java b/core/src/main/java/com/rappytv/toolwarn/util/ITbwSounds.java index a7aae9a..045a72e 100644 --- a/core/src/main/java/com/rappytv/toolwarn/util/ITbwSounds.java +++ b/core/src/main/java/com/rappytv/toolwarn/util/ITbwSounds.java @@ -8,5 +8,7 @@ public interface ITbwSounds { @NotNull ResourceLocation getPlingSound(); + @NotNull ResourceLocation getLevelUpSound(); + @NotNull ResourceLocation getGlassBreakSound(); @NotNull ResourceLocation getAnvilUseSound(); } diff --git a/core/src/main/java/com/rappytv/toolwarn/util/WarnSound.java b/core/src/main/java/com/rappytv/toolwarn/util/WarnSound.java index 2c05abe..643a734 100644 --- a/core/src/main/java/com/rappytv/toolwarn/util/WarnSound.java +++ b/core/src/main/java/com/rappytv/toolwarn/util/WarnSound.java @@ -6,12 +6,16 @@ public enum WarnSound { NONE, PLING, + LEVEL_UP, + GLASS_BREAK, ANVIL_USE; public ResourceLocation getResourceLocation() { return switch (this) { case NONE -> null; case ANVIL_USE -> TbwAddon.getSounds().getAnvilUseSound(); + case LEVEL_UP -> TbwAddon.getSounds().getLevelUpSound(); + case GLASS_BREAK -> TbwAddon.getSounds().getGlassBreakSound(); case PLING -> TbwAddon.getSounds().getPlingSound(); }; } From 1225def929219458e37436bc2287972586c3e5d6 Mon Sep 17 00:00:00 2001 From: RappyTV Date: Fri, 7 Jul 2023 20:20:32 +0200 Subject: [PATCH 11/22] Implement sounds for 1.19.3 --- .../toolwarn/v1_19_3/TbwSoundImpl.java | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 game-runner/src/v1_19_3/java/com/rappytv/toolwarn/v1_19_3/TbwSoundImpl.java diff --git a/game-runner/src/v1_19_3/java/com/rappytv/toolwarn/v1_19_3/TbwSoundImpl.java b/game-runner/src/v1_19_3/java/com/rappytv/toolwarn/v1_19_3/TbwSoundImpl.java new file mode 100644 index 0000000..caff8d8 --- /dev/null +++ b/game-runner/src/v1_19_3/java/com/rappytv/toolwarn/v1_19_3/TbwSoundImpl.java @@ -0,0 +1,29 @@ +package com.rappytv.toolwarn.v1_19_3; + +import com.rappytv.toolwarn.util.ITbwSounds; +import net.labymod.api.client.resources.ResourceLocation; +import net.labymod.api.models.Implements; +import org.jetbrains.annotations.NotNull; +import javax.inject.Singleton; + +@Singleton +@Implements(ITbwSounds.class) +public class TbwSoundImpl implements ITbwSounds { + + @Override + public ResourceLocation getPlingSound() { + return ResourceLocation.create("minecraft", "block.note_block.pling"); + } + @Override + public ResourceLocation getLevelUpSound() { + return ResourceLocation.create("minecraft", "entity.player.levelup"); + } + @Override + public @NotNull ResourceLocation getGlassBreakSound() { + return ResourceLocation.create("minecraft", "block.glass.break"); + } + @Override + public ResourceLocation getAnvilUseSound() { + return ResourceLocation.create("minecraft", "block.anvil.use"); + } +} From 3ecbf6be29b8b47b66f464e74596ea32704c4643 Mon Sep 17 00:00:00 2001 From: RappyTV Date: Fri, 7 Jul 2023 20:24:02 +0200 Subject: [PATCH 12/22] Implement sounds for 1.19.4 --- .../toolwarn/v1_19_4/TbwSoundImpl.java | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 game-runner/src/v1_19_4/java/com/rappytv/toolwarn/v1_19_4/TbwSoundImpl.java diff --git a/game-runner/src/v1_19_4/java/com/rappytv/toolwarn/v1_19_4/TbwSoundImpl.java b/game-runner/src/v1_19_4/java/com/rappytv/toolwarn/v1_19_4/TbwSoundImpl.java new file mode 100644 index 0000000..085c96d --- /dev/null +++ b/game-runner/src/v1_19_4/java/com/rappytv/toolwarn/v1_19_4/TbwSoundImpl.java @@ -0,0 +1,29 @@ +package com.rappytv.toolwarn.v1_19_4; + +import com.rappytv.toolwarn.util.ITbwSounds; +import javax.inject.Singleton; +import net.labymod.api.client.resources.ResourceLocation; +import net.labymod.api.models.Implements; +import org.jetbrains.annotations.NotNull; + +@Singleton +@Implements(ITbwSounds.class) +public class TbwSoundImpl implements ITbwSounds { + + @Override + public ResourceLocation getPlingSound() { + return ResourceLocation.create("minecraft", "block.note_block.pling"); + } + @Override + public ResourceLocation getLevelUpSound() { + return ResourceLocation.create("minecraft", "entity.player.levelup"); + } + @Override + public @NotNull ResourceLocation getGlassBreakSound() { + return ResourceLocation.create("minecraft", "block.glass.break"); + } + @Override + public ResourceLocation getAnvilUseSound() { + return ResourceLocation.create("minecraft", "block.anvil.use"); + } +} From 78887acb6221146de1b9a08c6bfad96bbe7b8e79 Mon Sep 17 00:00:00 2001 From: RappyTV Date: Fri, 7 Jul 2023 20:26:59 +0200 Subject: [PATCH 13/22] Implement sounds for 1.19.2 --- .../toolwarn/v1_19_2/TbwSoundImpl.java | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 game-runner/src/v1_19_2/java/com/rappytv/toolwarn/v1_19_2/TbwSoundImpl.java diff --git a/game-runner/src/v1_19_2/java/com/rappytv/toolwarn/v1_19_2/TbwSoundImpl.java b/game-runner/src/v1_19_2/java/com/rappytv/toolwarn/v1_19_2/TbwSoundImpl.java new file mode 100644 index 0000000..4622cb7 --- /dev/null +++ b/game-runner/src/v1_19_2/java/com/rappytv/toolwarn/v1_19_2/TbwSoundImpl.java @@ -0,0 +1,29 @@ +package com.rappytv.toolwarn.v1_19_2; + +import com.rappytv.toolwarn.util.ITbwSounds; +import javax.inject.Singleton; +import net.labymod.api.client.resources.ResourceLocation; +import net.labymod.api.models.Implements; +import org.jetbrains.annotations.NotNull; + +@Singleton +@Implements(ITbwSounds.class) +public class TbwSoundImpl implements ITbwSounds { + + @Override + public ResourceLocation getPlingSound() { + return ResourceLocation.create("minecraft", "block.note_block.pling"); + } + @Override + public ResourceLocation getLevelUpSound() { + return ResourceLocation.create("minecraft", "entity.player.levelup"); + } + @Override + public @NotNull ResourceLocation getGlassBreakSound() { + return ResourceLocation.create("minecraft", "block.glass.break"); + } + @Override + public ResourceLocation getAnvilUseSound() { + return ResourceLocation.create("minecraft", "block.anvil.use"); + } +} From d3915ea44eab0a5614b799af3b93edc778f34aaf Mon Sep 17 00:00:00 2001 From: RappyTV Date: Fri, 7 Jul 2023 20:31:01 +0200 Subject: [PATCH 14/22] Implement sounds for 1.20.1 --- .../toolwarn/v1_20_1/TbwSoundImpl.java | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 game-runner/src/v1_20_1/java/com/rappytv/toolwarn/v1_20_1/TbwSoundImpl.java diff --git a/game-runner/src/v1_20_1/java/com/rappytv/toolwarn/v1_20_1/TbwSoundImpl.java b/game-runner/src/v1_20_1/java/com/rappytv/toolwarn/v1_20_1/TbwSoundImpl.java new file mode 100644 index 0000000..87928cd --- /dev/null +++ b/game-runner/src/v1_20_1/java/com/rappytv/toolwarn/v1_20_1/TbwSoundImpl.java @@ -0,0 +1,29 @@ +package com.rappytv.toolwarn.v1_20_1; + +import com.rappytv.toolwarn.util.ITbwSounds; +import javax.inject.Singleton; +import net.labymod.api.client.resources.ResourceLocation; +import net.labymod.api.models.Implements; +import org.jetbrains.annotations.NotNull; + +@Singleton +@Implements(ITbwSounds.class) +public class TbwSoundImpl implements ITbwSounds { + + @Override + public ResourceLocation getPlingSound() { + return ResourceLocation.create("minecraft", "block.note_block.pling"); + } + @Override + public ResourceLocation getLevelUpSound() { + return ResourceLocation.create("minecraft", "entity.player.levelup"); + } + @Override + public @NotNull ResourceLocation getGlassBreakSound() { + return ResourceLocation.create("minecraft", "block.glass.break"); + } + @Override + public ResourceLocation getAnvilUseSound() { + return ResourceLocation.create("minecraft", "block.anvil.use"); + } +} From ce1917c074f89b006f96e9321090146eb88c332f Mon Sep 17 00:00:00 2001 From: RappyTV Date: Fri, 7 Jul 2023 20:33:27 +0200 Subject: [PATCH 15/22] Implement sounds for 1.18.2 --- .../toolwarn/v1_18_2/TbwSoundImpl.java | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 game-runner/src/v1_18_2/java/com/rappytv/toolwarn/v1_18_2/TbwSoundImpl.java diff --git a/game-runner/src/v1_18_2/java/com/rappytv/toolwarn/v1_18_2/TbwSoundImpl.java b/game-runner/src/v1_18_2/java/com/rappytv/toolwarn/v1_18_2/TbwSoundImpl.java new file mode 100644 index 0000000..24d2207 --- /dev/null +++ b/game-runner/src/v1_18_2/java/com/rappytv/toolwarn/v1_18_2/TbwSoundImpl.java @@ -0,0 +1,29 @@ +package com.rappytv.toolwarn.v1_18_2; + +import com.rappytv.toolwarn.util.ITbwSounds; +import javax.inject.Singleton; +import net.labymod.api.client.resources.ResourceLocation; +import net.labymod.api.models.Implements; +import org.jetbrains.annotations.NotNull; + +@Singleton +@Implements(ITbwSounds.class) +public class TbwSoundImpl implements ITbwSounds { + + @Override + public ResourceLocation getPlingSound() { + return ResourceLocation.create("minecraft", "block.note_block.pling"); + } + @Override + public ResourceLocation getLevelUpSound() { + return ResourceLocation.create("minecraft", "entity.player.levelup"); + } + @Override + public @NotNull ResourceLocation getGlassBreakSound() { + return ResourceLocation.create("minecraft", "block.glass.break"); + } + @Override + public ResourceLocation getAnvilUseSound() { + return ResourceLocation.create("minecraft", "block.anvil.use"); + } +} From 4ebbdc8d6e657f45222ec61ab8caf2925367e9e0 Mon Sep 17 00:00:00 2001 From: RappyTV Date: Fri, 7 Jul 2023 20:35:00 +0200 Subject: [PATCH 16/22] Implement sounds for 1.17.1 --- .../toolwarn/v1_17_1/TbwSoundImpl.java | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 game-runner/src/v1_17_1/java/com/rappytv/toolwarn/v1_17_1/TbwSoundImpl.java diff --git a/game-runner/src/v1_17_1/java/com/rappytv/toolwarn/v1_17_1/TbwSoundImpl.java b/game-runner/src/v1_17_1/java/com/rappytv/toolwarn/v1_17_1/TbwSoundImpl.java new file mode 100644 index 0000000..9d747c5 --- /dev/null +++ b/game-runner/src/v1_17_1/java/com/rappytv/toolwarn/v1_17_1/TbwSoundImpl.java @@ -0,0 +1,30 @@ +package com.rappytv.toolwarn.v1_17_1; + +import com.rappytv.toolwarn.util.ITbwSounds; +import net.labymod.api.client.resources.ResourceLocation; +import net.labymod.api.models.Implements; +import org.jetbrains.annotations.NotNull; + +import javax.inject.Singleton; + +@Singleton +@Implements(ITbwSounds.class) +public class TbwSoundImpl implements ITbwSounds { + + @Override + public ResourceLocation getPlingSound() { + return ResourceLocation.create("minecraft", "block.note_block.pling"); + } + @Override + public ResourceLocation getLevelUpSound() { + return ResourceLocation.create("minecraft", "entity.player.levelup"); + } + @Override + public @NotNull ResourceLocation getGlassBreakSound() { + return ResourceLocation.create("minecraft", "block.glass.break"); + } + @Override + public ResourceLocation getAnvilUseSound() { + return ResourceLocation.create("minecraft", "block.anvil.use"); + } +} From a9a903314bf392efeb3ea9092a963aa021998212 Mon Sep 17 00:00:00 2001 From: RappyTV Date: Fri, 7 Jul 2023 20:38:56 +0200 Subject: [PATCH 17/22] Implement sounds for 1.16.5 --- .../toolwarn/v1_16_5/TbwSoundImpl.java | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 game-runner/src/v1_16_5/java/com/rappytv/toolwarn/v1_16_5/TbwSoundImpl.java diff --git a/game-runner/src/v1_16_5/java/com/rappytv/toolwarn/v1_16_5/TbwSoundImpl.java b/game-runner/src/v1_16_5/java/com/rappytv/toolwarn/v1_16_5/TbwSoundImpl.java new file mode 100644 index 0000000..b48e29f --- /dev/null +++ b/game-runner/src/v1_16_5/java/com/rappytv/toolwarn/v1_16_5/TbwSoundImpl.java @@ -0,0 +1,29 @@ +package com.rappytv.toolwarn.v1_16_5; + +import com.rappytv.toolwarn.util.ITbwSounds; +import javax.inject.Singleton; +import net.labymod.api.client.resources.ResourceLocation; +import net.labymod.api.models.Implements; +import org.jetbrains.annotations.NotNull; + +@Singleton +@Implements(ITbwSounds.class) +public class TbwSoundImpl implements ITbwSounds { + + @Override + public ResourceLocation getPlingSound() { + return ResourceLocation.create("minecraft", "block.note_block.pling"); + } + @Override + public ResourceLocation getLevelUpSound() { + return ResourceLocation.create("minecraft", "entity.player.levelup"); + } + @Override + public @NotNull ResourceLocation getGlassBreakSound() { + return ResourceLocation.create("minecraft", "block.glass.break"); + } + @Override + public ResourceLocation getAnvilUseSound() { + return ResourceLocation.create("minecraft", "block.anvil.use"); + } +} From e052ad8907e8e9e1cf8ecb1e2641c5d814c963c0 Mon Sep 17 00:00:00 2001 From: RappyTV Date: Fri, 7 Jul 2023 20:45:54 +0200 Subject: [PATCH 18/22] Implement sounds for 1.12.2 --- .../toolwarn/v1_12_2/TbwSoundImpl.java | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 game-runner/src/v1_12_2/java/com/rappytv/toolwarn/v1_12_2/TbwSoundImpl.java diff --git a/game-runner/src/v1_12_2/java/com/rappytv/toolwarn/v1_12_2/TbwSoundImpl.java b/game-runner/src/v1_12_2/java/com/rappytv/toolwarn/v1_12_2/TbwSoundImpl.java new file mode 100644 index 0000000..5a86299 --- /dev/null +++ b/game-runner/src/v1_12_2/java/com/rappytv/toolwarn/v1_12_2/TbwSoundImpl.java @@ -0,0 +1,29 @@ +package com.rappytv.toolwarn.v1_12_2; + +import com.rappytv.toolwarn.util.ITbwSounds; +import javax.inject.Singleton; +import net.labymod.api.client.resources.ResourceLocation; +import net.labymod.api.models.Implements; +import org.jetbrains.annotations.NotNull; + +@Singleton +@Implements(ITbwSounds.class) +public class TbwSoundImpl implements ITbwSounds { + + @Override + public ResourceLocation getPlingSound() { + return ResourceLocation.create("minecraft", "block.note.pling"); + } + @Override + public ResourceLocation getLevelUpSound() { + return ResourceLocation.create("minecraft", "entity.player.levelup"); + } + @Override + public @NotNull ResourceLocation getGlassBreakSound() { + return ResourceLocation.create("minecraft", "block.glass.break"); + } + @Override + public ResourceLocation getAnvilUseSound() { + return ResourceLocation.create("minecraft", "block.anvil.use"); + } +} From f0a7b934b0d9f47a6c9ef108d630dca9fff430ca Mon Sep 17 00:00:00 2001 From: RappyTV Date: Fri, 7 Jul 2023 20:51:56 +0200 Subject: [PATCH 19/22] Implement sounds for 1.8.9 --- .../rappytv/toolwarn/v1_8_9/TbwSoundImpl.java | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 game-runner/src/v1_8_9/java/com/rappytv/toolwarn/v1_8_9/TbwSoundImpl.java diff --git a/game-runner/src/v1_8_9/java/com/rappytv/toolwarn/v1_8_9/TbwSoundImpl.java b/game-runner/src/v1_8_9/java/com/rappytv/toolwarn/v1_8_9/TbwSoundImpl.java new file mode 100644 index 0000000..3cab8f8 --- /dev/null +++ b/game-runner/src/v1_8_9/java/com/rappytv/toolwarn/v1_8_9/TbwSoundImpl.java @@ -0,0 +1,29 @@ +package com.rappytv.toolwarn.v1_8_9; + +import com.rappytv.toolwarn.util.ITbwSounds; +import javax.inject.Singleton; +import net.labymod.api.client.resources.ResourceLocation; +import net.labymod.api.models.Implements; +import org.jetbrains.annotations.NotNull; + +@Singleton +@Implements(ITbwSounds.class) +public class TbwSoundImpl implements ITbwSounds { + + @Override + public ResourceLocation getPlingSound() { + return ResourceLocation.create("minecraft", "note.pling"); + } + @Override + public ResourceLocation getLevelUpSound() { + return ResourceLocation.create("minecraft", "random.levelup"); + } + @Override + public @NotNull ResourceLocation getGlassBreakSound() { + return ResourceLocation.create("minecraft", "game.potion.smash"); + } + @Override + public ResourceLocation getAnvilUseSound() { + return ResourceLocation.create("minecraft", "random.anvil_use"); + } +} From 269536cfc6e4d17784b1de190247f25e3f26719f Mon Sep 17 00:00:00 2001 From: RappyTV Date: Fri, 7 Jul 2023 20:52:27 +0200 Subject: [PATCH 20/22] Update translation files --- .../resources/assets/toolwarn/i18n/de_de.json | 41 +++++++++++++++++-- .../resources/assets/toolwarn/i18n/en_us.json | 41 +++++++++++++++++-- 2 files changed, 76 insertions(+), 6 deletions(-) diff --git a/core/src/main/resources/assets/toolwarn/i18n/de_de.json b/core/src/main/resources/assets/toolwarn/i18n/de_de.json index ec2a1fb..dab0aa9 100644 --- a/core/src/main/resources/assets/toolwarn/i18n/de_de.json +++ b/core/src/main/resources/assets/toolwarn/i18n/de_de.json @@ -2,6 +2,17 @@ "toolwarn": { "settings": { "name": "Toolbreak Warnung", + "header": { + "general": { + "name": "Allgemein" + }, + "sounds": { + "name": "Sounds" + }, + "tools": { + "name": "Werkzeuge" + } + }, "enabled": { "name": "Aktiviert" }, @@ -13,13 +24,37 @@ "name": "Zahlen formatieren", "description": "Unformatierte Zahl: 1561\nFormatierte Zahl: 1.561" }, + "lastHit": { + "name": "Warnung beim letzten Schlag", + "description": "Warnt dich, wenn dein Tool bei Haltbarkeit 1 angekommen ist" + }, "debug": { "name": "Debug Modus (Entwicklungs-Funktion)", "description": "Sendet jeden Tick eine Nachricht in den Chat, in dem du ein Tool in der Hand hältst." }, - "lastHit": { - "name": "Warnung beim letzten Schlag", - "description": "Warnt dich, wenn dein Tool bei Haltbarkeit 1 angekommen ist" + "sounds": { + "name": "Sound Einstellungen", + "description": "Verwaltet die Sounds, die abgespielt werden.", + "warnSound": { + "name": "Warnungs Sound", + "entries": { + "none": "Keiner", + "anvilUse": "Amboss", + "levelUp": "Level Up", + "glassBreak": "Glas abbauen", + "pling": "Pling" + } + }, + "lastHitSound": { + "name": "Sound beim letzten Schlag", + "entries": { + "none": "Keiner", + "anvilUse": "Amboss", + "levelUp": "Level Up", + "glassBreak": "Glas abbauen", + "pling": "Pling" + } + } }, "swordPercentage": { "name": "Schwertwarnung (%)" diff --git a/core/src/main/resources/assets/toolwarn/i18n/en_us.json b/core/src/main/resources/assets/toolwarn/i18n/en_us.json index b7c078f..3415589 100644 --- a/core/src/main/resources/assets/toolwarn/i18n/en_us.json +++ b/core/src/main/resources/assets/toolwarn/i18n/en_us.json @@ -2,6 +2,17 @@ "toolwarn": { "settings": { "name": "Toolbreak Warning", + "header": { + "general": { + "name": "General" + }, + "sounds": { + "name": "Sounds" + }, + "tools": { + "name": "Tools" + } + }, "enabled": { "name": "Activated" }, @@ -13,13 +24,37 @@ "name": "Format numbers", "description": "Unformatted Number: 1561\nFormatted Number: 1.561" }, + "lastHit": { + "name": "Warn on last hit", + "description": "Warns you when your tool is at 1 durability" + }, "debug": { "name": "Debug Mode (Development Feature)", "description": "Sends a message in the chat every tick you're holding a tool." }, - "lastHit": { - "name": "Warn on last hit", - "description": "Warns you when your tool is at 1 durability" + "sounds": { + "name": "Sound Settings", + "description": "Manages the sounds that are played.", + "warnSound": { + "name": "Warn Sound", + "entries": { + "none": "None", + "anvilUse": "Anvil Use", + "levelUp": "Level Up", + "glassBreak": "Glass Break", + "pling": "Pling" + } + }, + "lastHitSound": { + "name": "Last hit warn sound", + "entries": { + "none": "None", + "anvilUse": "Anvil Use", + "levelUp": "Level Up", + "glassBreak": "Glass Break", + "pling": "Pling" + } + } }, "swordPercentage": { "name": "Sword Warn Percentage" From fc8fc837aec1cd454971f65e989fc01f3480618d Mon Sep 17 00:00:00 2001 From: RappyTV Date: Fri, 7 Jul 2023 20:53:32 +0200 Subject: [PATCH 21/22] Increase version, remove discriminator from author --- build.gradle.kts | 4 ++-- readme.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 055d581..47ee072 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -18,9 +18,9 @@ labyMod { addonInfo { namespace = "toolwarn" displayName = "Toolbreak Warning" - author = "RappyTV#6969" + author = "RappyTV" description = "Stops you from using your currently used tool when its almost destroyed." - version = System.getenv().getOrDefault("VERSION", "1.1.0") + version = System.getenv().getOrDefault("VERSION", "1.2.0") } minecraft { diff --git a/readme.md b/readme.md index fbae01a..e27f475 100644 --- a/readme.md +++ b/readme.md @@ -13,7 +13,7 @@ ### Installation 1. Press `Win` + `R` 2. Paste this into the window that popped up: `%appdata%/.minecraft/LabyMod-neo/addons` and press enter (This path may change when lm4 gets released) -3. It should open your Labymod addon directory; Paste the [Toolbreak_Warning.jar](https://github.com/RappyLabyAddons/Toolbreak-Warning/releases/download/v1.1.0/Toolbreak_Warning.jar) in there. +3. It should open your Labymod addon directory; Paste the [Toolbreak_Warning.jar](https://github.com/RappyLabyAddons/Toolbreak-Warning/releases/download/v1.2.0/Toolbreak_Warning.jar) in there. 4. Launch your Labymod client. If you have any problems with the addon/have update ideas, feel free to From b3df98bd251c2c144c45b39f697a09101fb1fe4f Mon Sep 17 00:00:00 2001 From: RappyTV Date: Fri, 7 Jul 2023 20:54:21 +0200 Subject: [PATCH 22/22] Remove test sub command --- .../rappytv/toolwarn/commands/TbwCommand.java | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/core/src/main/java/com/rappytv/toolwarn/commands/TbwCommand.java b/core/src/main/java/com/rappytv/toolwarn/commands/TbwCommand.java index 09fad7c..faa9c0b 100644 --- a/core/src/main/java/com/rappytv/toolwarn/commands/TbwCommand.java +++ b/core/src/main/java/com/rappytv/toolwarn/commands/TbwCommand.java @@ -4,7 +4,6 @@ import com.rappytv.toolwarn.config.TbwConfiguration; import com.rappytv.toolwarn.util.ToolType; import com.rappytv.toolwarn.util.Util; -import com.rappytv.toolwarn.util.WarnSound; import net.labymod.api.Laby; import net.labymod.api.client.chat.command.Command; import net.labymod.api.client.entity.player.ClientPlayer; @@ -24,24 +23,6 @@ public TbwCommand(TbwAddon addon) { public boolean execute(String prefix, String[] arguments) { if(arguments.length < 1) { Util.msg(I18n.translate("toolwarn.command.invalidSubcommand"), true); - } else if(arguments[0].equalsIgnoreCase("test")) { - if(arguments.length > 1 && arguments[1].equalsIgnoreCase("last")) { - if(config.sounds().enabled().get() && config.sounds().lastHitSound().get() != WarnSound.NONE) { - Laby.labyAPI().minecraft().sounds().playSound( - config.sounds().lastHitSound().get().getResourceLocation(), - 1f, - 1f - ); - } - } else { - if(config.sounds().enabled().get() && config.sounds().warnSound().get() != WarnSound.NONE) { - Laby.labyAPI().minecraft().sounds().playSound( - config.sounds().warnSound().get().getResourceLocation(), - 1f, - 1f - ); - } - } } else if(arguments[0].equalsIgnoreCase("disable")) { config.enabled().set(false);