diff --git a/build.gradle.kts b/build.gradle.kts index 0222d16..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 { @@ -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) } diff --git a/core/src/main/java/com/rappytv/toolwarn/TbwAddon.java b/core/src/main/java/com/rappytv/toolwarn/TbwAddon.java index 659d6f2..14a850f 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.config.TbwConfiguration; +import com.rappytv.toolwarn.core.generated.DefaultReferenceStorage; import com.rappytv.toolwarn.listener.GameTickListener; +import com.rappytv.toolwarn.util.ITbwSounds; import net.labymod.api.addon.LabyAddon; import net.labymod.api.models.addon.annotation.AddonMain; @@ -9,19 +12,19 @@ public class TbwAddon extends LabyAddon { public static final String prefix = "§c§lTBW §8» §7"; - private static TbwAddon instance; + private static ITbwSounds sounds; @Override protected void enable() { - instance = this; + sounds = ((DefaultReferenceStorage) this.referenceStorageAccessor()).iTbwSounds(); registerSettingCategory(); registerCommand(new TbwCommand(this)); registerListener(new GameTickListener(this)); } - public static TbwAddon get() { - return instance; + public static ITbwSounds getSounds() { + return sounds; } @Override 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..faa9c0b 100644 --- a/core/src/main/java/com/rappytv/toolwarn/commands/TbwCommand.java +++ b/core/src/main/java/com/rappytv/toolwarn/commands/TbwCommand.java @@ -1,13 +1,14 @@ 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; 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,85 +22,84 @@ public TbwCommand(TbwAddon addon) { @Override public boolean execute(String prefix, String[] arguments) { if(arguments.length < 1) { - Util.msg(Util.getTranslation("toolwarn.command.invalidSubcommand"), true); - return true; + Util.msg(I18n.translate("toolwarn.command.invalidSubcommand"), true); } 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/TbwConfiguration.java b/core/src/main/java/com/rappytv/toolwarn/config/TbwConfiguration.java similarity index 87% 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..e8917df 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; @@ -7,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") @@ -15,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); @@ -22,12 +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); - @SwitchSetting - @SpriteSlot(size = 32, y = 1) - private final ConfigProperty lastHit = new ConfigProperty<>(true); + @SettingSection("sounds") + private final TbwSoundSubConfig sounds = new TbwSoundSubConfig(); + + @SettingSection("tools") @SliderSetting(steps = 1, min = 1, max = 25) @SpriteSlot(size = 32, y = 3) private final ConfigProperty swordPercentage = new ConfigProperty<>(5); @@ -51,13 +58,17 @@ public ConfigProperty openChat() { public ConfigProperty format() { return format; } + public ConfigProperty lastHit() { + return lastHit; + } public ConfigProperty debug() { return debug; } - public ConfigProperty lastHit() { - return lastHit; + public TbwSoundSubConfig sounds() { + return sounds; } + public ConfigProperty swordPercentage() { return swordPercentage; } 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 8e18bdd..7b2cc63 100644 --- a/core/src/main/java/com/rappytv/toolwarn/listener/GameTickListener.java +++ b/core/src/main/java/com/rappytv/toolwarn/listener/GameTickListener.java @@ -1,9 +1,10 @@ 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.entity.player.ClientPlayer; import net.labymod.api.client.entity.player.GameMode; @@ -46,19 +47,35 @@ 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)) { if(this.config.openChat().get()) Laby.labyAPI().minecraft().openChat(""); Util.msg(I18n.getTranslation("toolwarn.messages.warning", toolType.getWarnPercentage(config)), true); warns.add(itemStack); + + 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); + Util.msg(I18n.translate("toolwarn.messages.lastHit"), true); warns.add(itemStack); + + 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); @@ -67,6 +84,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; } } 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..045a72e --- /dev/null +++ b/core/src/main/java/com/rappytv/toolwarn/util/ITbwSounds.java @@ -0,0 +1,14 @@ +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 getLevelUpSound(); + @NotNull ResourceLocation getGlassBreakSound(); + @NotNull ResourceLocation getAnvilUseSound(); +} 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..815afd5 100644 --- a/core/src/main/java/com/rappytv/toolwarn/util/ToolType.java +++ b/core/src/main/java/com/rappytv/toolwarn/util/ToolType.java @@ -1,7 +1,8 @@ package com.rappytv.toolwarn.util; -import com.rappytv.toolwarn.TbwConfiguration; +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) { 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..643a734 --- /dev/null +++ b/core/src/main/java/com/rappytv/toolwarn/util/WarnSound.java @@ -0,0 +1,22 @@ +package com.rappytv.toolwarn.util; + +import com.rappytv.toolwarn.TbwAddon; +import net.labymod.api.client.resources.ResourceLocation; + +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(); + }; + } +} 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" 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"); + } +} 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"); + } +} 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"); + } +} 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"); + } +} 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"); + } +} 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"); + } +} 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"); + } +} 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"); + } +} 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"); + } +} 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 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) }