From 1dd651767c34a815022cbb03c4231b07d9c58974 Mon Sep 17 00:00:00 2001 From: YufiriaMazenta <2199098065@qq.com> Date: Sat, 6 Jan 2024 18:48:58 +0800 Subject: [PATCH] =?UTF-8?q?[1.8.7]=E6=96=B0=E5=A2=9E=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89=E7=87=83=E6=96=99=E7=9A=84=E5=91=BD?= =?UTF-8?q?=E4=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.gradle.kts | 2 +- .../craftorithm/cmd/sub/item/ItemCommand.java | 3 +- .../sub/item/{ => fuel}/AddFuelCommand.java | 10 ++-- .../cmd/sub/item/fuel/FuelCommand.java | 13 +++++ .../cmd/sub/item/fuel/RemoveFuelCommand.java | 48 +++++++++++++++++++ .../craftorithm/config/Languages.java | 8 ++-- .../craftorithm/item/ItemManager.java | 18 ++++++- src/main/resources/lang/de_de.yml | 12 +++-- src/main/resources/lang/en_us.yml | 12 +++-- src/main/resources/lang/fr_fr.yml | 12 +++-- src/main/resources/lang/ja_jp.yml | 12 +++-- src/main/resources/lang/ru_ru.yml | 12 +++-- src/main/resources/lang/zh_cn.yml | 12 +++-- src/main/resources/lang/zh_hk.yml | 12 +++-- src/main/resources/lang/zh_tw.yml | 12 +++-- 15 files changed, 154 insertions(+), 44 deletions(-) rename src/main/java/com/github/yufiriamazenta/craftorithm/cmd/sub/item/{ => fuel}/AddFuelCommand.java (81%) create mode 100644 src/main/java/com/github/yufiriamazenta/craftorithm/cmd/sub/item/fuel/FuelCommand.java create mode 100644 src/main/java/com/github/yufiriamazenta/craftorithm/cmd/sub/item/fuel/RemoveFuelCommand.java diff --git a/build.gradle.kts b/build.gradle.kts index 16fe1c1c..3ef59f9d 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,5 +1,5 @@ import java.text.SimpleDateFormat -version = "1.8.6" +version = "1.8.7" plugins { `java-library` diff --git a/src/main/java/com/github/yufiriamazenta/craftorithm/cmd/sub/item/ItemCommand.java b/src/main/java/com/github/yufiriamazenta/craftorithm/cmd/sub/item/ItemCommand.java index 7b42abed..7de56781 100644 --- a/src/main/java/com/github/yufiriamazenta/craftorithm/cmd/sub/item/ItemCommand.java +++ b/src/main/java/com/github/yufiriamazenta/craftorithm/cmd/sub/item/ItemCommand.java @@ -1,6 +1,7 @@ package com.github.yufiriamazenta.craftorithm.cmd.sub.item; import com.github.yufiriamazenta.craftorithm.cmd.sub.AbstractSubCommand; +import com.github.yufiriamazenta.craftorithm.cmd.sub.item.fuel.FuelCommand; import org.bukkit.command.CommandSender; import java.util.List; @@ -11,7 +12,7 @@ public final class ItemCommand extends AbstractSubCommand { private ItemCommand() { super("item", "craftorithm.command.item"); - regSub(SaveItemCommand.INSTANCE).regSub(GiveItemCommand.INSTANCE).regSub(AddFuelCommand.INSTANCE); + regSub(SaveItemCommand.INSTANCE).regSub(GiveItemCommand.INSTANCE).regSub(FuelCommand.INSTANCE); } @Override diff --git a/src/main/java/com/github/yufiriamazenta/craftorithm/cmd/sub/item/AddFuelCommand.java b/src/main/java/com/github/yufiriamazenta/craftorithm/cmd/sub/item/fuel/AddFuelCommand.java similarity index 81% rename from src/main/java/com/github/yufiriamazenta/craftorithm/cmd/sub/item/AddFuelCommand.java rename to src/main/java/com/github/yufiriamazenta/craftorithm/cmd/sub/item/fuel/AddFuelCommand.java index aa286ea8..8c290ea1 100644 --- a/src/main/java/com/github/yufiriamazenta/craftorithm/cmd/sub/item/AddFuelCommand.java +++ b/src/main/java/com/github/yufiriamazenta/craftorithm/cmd/sub/item/fuel/AddFuelCommand.java @@ -1,4 +1,4 @@ -package com.github.yufiriamazenta.craftorithm.cmd.sub.item; +package com.github.yufiriamazenta.craftorithm.cmd.sub.item.fuel; import com.github.yufiriamazenta.craftorithm.cmd.sub.AbstractSubCommand; import com.github.yufiriamazenta.craftorithm.config.Languages; @@ -19,7 +19,7 @@ public class AddFuelCommand extends AbstractSubCommand { public static final AddFuelCommand INSTANCE = new AddFuelCommand(); protected AddFuelCommand() { - super("add-fuel", "craftorithm.command.item.add-fuel"); + super("add", "craftorithm.command.item.fuel.add"); } @Override @@ -33,15 +33,15 @@ public boolean onCommand(CommandSender sender, List args) { ItemStack item = ((Player) sender).getInventory().getItemInMainHand(); if (ItemUtil.isAir(item)) { - LangUtil.sendLang(sender, Languages.COMMAND_ITEM_ADD_FUEL_FAILED_ADD_AIR); + LangUtil.sendLang(sender, Languages.COMMAND_ITEM_FUEL_ADD_FAILED_ADD_AIR); return true; } boolean result = ItemManager.INSTANCE.addCustomFuel(item, Integer.parseInt(args.get(0))); if (result) { - LangUtil.sendLang(sender, Languages.COMMAND_ITEM_ADD_FUEL_SUCCESS); + LangUtil.sendLang(sender, Languages.COMMAND_ITEM_FUEL_ADD_SUCCESS); } else { - LangUtil.sendLang(sender, Languages.COMMAND_ITEM_ADD_FUEL_FAILED_EXIST); + LangUtil.sendLang(sender, Languages.COMMAND_ITEM_FUEL_ADD_FAILED_EXIST); } return true; } diff --git a/src/main/java/com/github/yufiriamazenta/craftorithm/cmd/sub/item/fuel/FuelCommand.java b/src/main/java/com/github/yufiriamazenta/craftorithm/cmd/sub/item/fuel/FuelCommand.java new file mode 100644 index 00000000..c37fa325 --- /dev/null +++ b/src/main/java/com/github/yufiriamazenta/craftorithm/cmd/sub/item/fuel/FuelCommand.java @@ -0,0 +1,13 @@ +package com.github.yufiriamazenta.craftorithm.cmd.sub.item.fuel; + +import com.github.yufiriamazenta.craftorithm.cmd.sub.AbstractSubCommand; +public class FuelCommand extends AbstractSubCommand { + + public static final FuelCommand INSTANCE = new FuelCommand(); + + protected FuelCommand() { + super("fuel", "craftorithm.command.item.fuel"); + regSub(AddFuelCommand.INSTANCE).regSub(RemoveFuelCommand.INSTANCE); + } + +} diff --git a/src/main/java/com/github/yufiriamazenta/craftorithm/cmd/sub/item/fuel/RemoveFuelCommand.java b/src/main/java/com/github/yufiriamazenta/craftorithm/cmd/sub/item/fuel/RemoveFuelCommand.java new file mode 100644 index 00000000..2c3bcdd8 --- /dev/null +++ b/src/main/java/com/github/yufiriamazenta/craftorithm/cmd/sub/item/fuel/RemoveFuelCommand.java @@ -0,0 +1,48 @@ +package com.github.yufiriamazenta.craftorithm.cmd.sub.item.fuel; + +import com.github.yufiriamazenta.craftorithm.cmd.sub.AbstractSubCommand; +import com.github.yufiriamazenta.craftorithm.config.Languages; +import com.github.yufiriamazenta.craftorithm.item.ItemManager; +import com.github.yufiriamazenta.craftorithm.util.LangUtil; +import org.bukkit.command.CommandSender; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +public class RemoveFuelCommand extends AbstractSubCommand { + + public static final RemoveFuelCommand INSTANCE = new RemoveFuelCommand(); + + protected RemoveFuelCommand() { + super("remove", "craftorithm.command.item.fuel.remove"); + } + + @Override + public boolean onCommand(CommandSender sender, List args) { + if (args.isEmpty()) { + sendNotEnoughCmdParamMsg(sender, 1); + return true; + } + if (!checkSenderIsPlayer(sender)) + return true; + + boolean result = ItemManager.INSTANCE.removeCustomFuel(args.get(0)); + if (result) { + LangUtil.sendLang(sender, Languages.COMMAND_ITEM_FUEL_REMOVE_SUCCESS); + } else { + LangUtil.sendLang(sender, Languages.COMMAND_ITEM_FUEL_REMOVE_FAILED_NOT_EXIST); + } + return true; + } + + @Override + public List onTabComplete(CommandSender sender, List args) { + if (args.size() <= 1) { + List tabs = new ArrayList<>(ItemManager.INSTANCE.customCookingFuelMap().keySet()); + filterTabList(tabs, args.get(0)); + return tabs; + } + return Collections.singletonList(""); + } +} diff --git a/src/main/java/com/github/yufiriamazenta/craftorithm/config/Languages.java b/src/main/java/com/github/yufiriamazenta/craftorithm/config/Languages.java index d091d0c0..c0601b74 100644 --- a/src/main/java/com/github/yufiriamazenta/craftorithm/config/Languages.java +++ b/src/main/java/com/github/yufiriamazenta/craftorithm/config/Languages.java @@ -19,9 +19,11 @@ public class Languages { public static final StringLangConfigEntry COMMAND_ITEM_GIVE_SUCCESS = new StringLangConfigEntry("command.item.give.success"); public static final StringLangConfigEntry COMMAND_ITEM_GIVE_NOT_EXIST_ITEM = new StringLangConfigEntry("command.item.give.not_exist_item"); public static final StringLangConfigEntry COMMAND_ITEM_GIVE_PLAYER_OFFLINE = new StringLangConfigEntry("command.item.give.player_offline"); - public static final StringLangConfigEntry COMMAND_ITEM_ADD_FUEL_SUCCESS = new StringLangConfigEntry("command.item.add_fuel.success"); - public static final StringLangConfigEntry COMMAND_ITEM_ADD_FUEL_FAILED_ADD_AIR = new StringLangConfigEntry("command.item.add_fuel.failed_add_air"); - public static final StringLangConfigEntry COMMAND_ITEM_ADD_FUEL_FAILED_EXIST = new StringLangConfigEntry("command.item.add_fuel.failed_exist"); + public static final StringLangConfigEntry COMMAND_ITEM_FUEL_ADD_SUCCESS = new StringLangConfigEntry("command.item.fuel.add.success"); + public static final StringLangConfigEntry COMMAND_ITEM_FUEL_ADD_FAILED_ADD_AIR = new StringLangConfigEntry("command.item.fuel.add.failed_add_air"); + public static final StringLangConfigEntry COMMAND_ITEM_FUEL_ADD_FAILED_EXIST = new StringLangConfigEntry("command.item.fuel.add.failed_exist"); + public static final StringLangConfigEntry COMMAND_ITEM_FUEL_REMOVE_SUCCESS = new StringLangConfigEntry("command.item.fuel.remove.success"); + public static final StringLangConfigEntry COMMAND_ITEM_FUEL_REMOVE_FAILED_NOT_EXIST = new StringLangConfigEntry("command.item.fuel.remove.failed_not_exist"); public static final StringLangConfigEntry COMMAND_RELOAD_SUCCESS = new StringLangConfigEntry("command.reload.success"); public static final StringLangConfigEntry COMMAND_RELOAD_EXCEPTION = new StringLangConfigEntry("command.reload.exception"); public static final StringLangConfigEntry COMMAND_REMOVE_SUCCESS = new StringLangConfigEntry("command.remove.success"); diff --git a/src/main/java/com/github/yufiriamazenta/craftorithm/item/ItemManager.java b/src/main/java/com/github/yufiriamazenta/craftorithm/item/ItemManager.java index a14a99eb..870894ef 100644 --- a/src/main/java/com/github/yufiriamazenta/craftorithm/item/ItemManager.java +++ b/src/main/java/com/github/yufiriamazenta/craftorithm/item/ItemManager.java @@ -153,10 +153,10 @@ public Integer matchCustomFuelBurnTime(ItemStack item) { public boolean addCustomFuel(ItemStack item, int burnTime) { String itemName = ItemUtils.matchItemNameOrCreate(item, true); + if (itemName == null) + throw new IllegalArgumentException("Cannot add null item as a fuel"); if (customCookingFuelMap.containsKey(itemName)) return false; - if (itemName == null) - throw new IllegalArgumentException("Cannot add this item as a fuel"); customCookingFuelMap.put(itemName, burnTime); customFuelConfig.config().set(itemName + "." + BURN_TIME_KEY, burnTime); customFuelConfig.saveConfig(); @@ -164,4 +164,18 @@ public boolean addCustomFuel(ItemStack item, int burnTime) { return true; } + public boolean removeCustomFuel(@NotNull String fuelName) { + if (!customCookingFuelMap.containsKey(fuelName)) + return false; + customCookingFuelMap.remove(fuelName); + customFuelConfig.config().set(fuelName, null); + customFuelConfig.saveConfig(); + customFuelConfig.reloadConfig(); + return true; + } + + public Map customCookingFuelMap() { + return customCookingFuelMap; + } + } diff --git a/src/main/resources/lang/de_de.yml b/src/main/resources/lang/de_de.yml index 6e6c0fd7..f1a30a8c 100644 --- a/src/main/resources/lang/de_de.yml +++ b/src/main/resources/lang/de_de.yml @@ -15,10 +15,14 @@ command: success: ' &aGegenstand erfolgreich erhalten.' not_exist_item: ' &cGegenstand existiert nicht.' player_offline: ' &cDer Spieler ist nicht online oder existiert nicht.' - add_fuel: - success: ' &aBenutzerdefinierten Kraftstoff erfolgreich hinzufügen' - failed_add_air: ' &cDas Hinzufügen des benutzerdefinierten Kraftstoffs ist fehlgeschlagen. Grund: Ein nicht vorhandener Artikel kann nicht als Treibstoff hinzugefügt werden.' - failed_exist: ' &cDas Hinzufügen des benutzerdefinierten Kraftstoffs ist fehlgeschlagen. Grund: Dieser Kraftstoff existiert bereits.' + fuel: + add: + success: ' &aBenutzerdefinierten Kraftstoff erfolgreich hinzufügen.' + failed_add_air: ' &cDas Hinzufügen des benutzerdefinierten Kraftstoffs ist fehlgeschlagen. Grund: Ein nicht vorhandener Artikel kann nicht als Treibstoff hinzugefügt werden.' + failed_exist: ' &cDas Hinzufügen des benutzerdefinierten Kraftstoffs ist fehlgeschlagen. Grund: Dieser Kraftstoff existiert bereits.' + remove: + success: ' &aBenutzerdefinierten Kraftstoff erfolgreich entfernen.' + failed_not_exist: ' &cDas Entfernen des benutzerdefinierten Kraftstoffs ist fehlgeschlagen. Grund: Dieser Kraftstoff existiert nicht.' reload: success: ' &aDas Plugin wurde erfolgreich neu geladen.' exception: ' &cBeim Neuladen des Plugins ist ein Fehler aufgetreten. Bitte überprüfen Sie die Konsole.' diff --git a/src/main/resources/lang/en_us.yml b/src/main/resources/lang/en_us.yml index 64fd413a..c2c0a772 100644 --- a/src/main/resources/lang/en_us.yml +++ b/src/main/resources/lang/en_us.yml @@ -15,10 +15,14 @@ command: success: ' &aGive item successfully' not_exist_item: ' &cItem does not exist.' player_offline: ' &cThe player is not online or does not have a profile.' - add_fuel: - success: ' &aAdd custom fuel successfully' - failed_add_air: ' &cAdd custom fuel failed. Reason: Cannot add a non-existent item as fuel.' - failed_exist: ' &cAdd custom fuel failed. Reason: This fuel already exists.' + fuel: + add: + success: ' &aAdd custom fuel successfully.' + failed_add_air: ' &cAdd custom fuel failed. Reason: Cannot add a non-existent item as fuel.' + failed_exist: ' &cAdd custom fuel failed. Reason: This fuel already exists.' + remove: + success: ' &aRemove custom fuel successfully.' + failed_not_exist: ' &cRemove custom fuel failed. Reason: This fuel does not exist.' reload: success: ' &aPlugin reload!' exception: ' &cError occurred during plugin reload, please check the console.' diff --git a/src/main/resources/lang/fr_fr.yml b/src/main/resources/lang/fr_fr.yml index 244bc1e8..6208bf28 100644 --- a/src/main/resources/lang/fr_fr.yml +++ b/src/main/resources/lang/fr_fr.yml @@ -15,10 +15,14 @@ command: success: ' &aRécupération de l''objet réussie' not_exist_item: ' &cL''objet n''existe pas.' player_offline: ' &cLe joueur n''est pas en ligne ou n''existe pas.' - add_fuel: - success: ' &aAjouter du carburant personnalisé avec succès' - failed_add_air: ' &cL''ajout de carburant personnalisé a échoué. Raison : Impossible d''ajouter un élément inexistant comme carburant.' - failed_exist: ' &cL''ajout de carburant personnalisé a échoué. Raison : Ce carburant existe déjà.' + fuel: + add: + success: ' &aAjouter du carburant personnalisé avec succès.' + failed_add_air: ' &cL''ajout de carburant personnalisé a échoué. Raison : Impossible d''ajouter un élément inexistant comme carburant.' + failed_exist: ' &cL''ajout de carburant personnalisé a échoué. Raison : Ce carburant existe déjà.' + remove: + success: ' &aSupprimer le carburant personnalisé avec succès.' + failed_not_exist: ' &cLa suppression du carburant personnalisé a échoué. Raison : Ce carburant n’existe pas.' reload: success: ' &aRelance du plugin réussie!' exception: ' &cUne erreur s''est produite lors du rechargement du plugin, veuillez consulter la console.' diff --git a/src/main/resources/lang/ja_jp.yml b/src/main/resources/lang/ja_jp.yml index 860c64f4..a8a9fa80 100644 --- a/src/main/resources/lang/ja_jp.yml +++ b/src/main/resources/lang/ja_jp.yml @@ -15,10 +15,14 @@ command: success: ' &aアイテムの取得に成功しました。' not_exist_item: ' &c存在しないアイテム ' player_offline: ' &cそのプレイヤーはオフラインであるか、存在しません。' - add_fuel: - success: ' &aカスタム燃料を正常に追加しました' - failed_add_air: ' &cカスタム燃料の追加に失敗しました。 理由: 存在しないアイテムを燃料として追加することはできません。' - failed_exist: ' &cカスタム燃料の追加に失敗しました。 理由: この燃料はすでに存在します。' + fuel: + add: + success: ' &aカスタム燃料を正常に追加しました.' + failed_add_air: ' &cカスタム燃料の追加に失敗しました。 理由: 存在しないアイテムを燃料として追加することはできません。' + failed_exist: ' &cカスタム燃料の追加に失敗しました。 理由: この燃料はすでに存在します。' + remove: + success: ' &aカスタム燃料を正常に削除しました。' + failed_not_exist: ' &cカスタム燃料の削除に失敗しました。 理由: この燃料は存在しません。' reload: success: ' &aプラグインのリロードが成功しました。' exception: ' &cプラグインのリロード中にエラーが発生しました。コンソールを確認してください。' diff --git a/src/main/resources/lang/ru_ru.yml b/src/main/resources/lang/ru_ru.yml index 30d32ccd..6238ccdf 100644 --- a/src/main/resources/lang/ru_ru.yml +++ b/src/main/resources/lang/ru_ru.yml @@ -15,10 +15,14 @@ command: success: ' &aПредмет успешно получен.' not_exist_item: ' &cПредмет не существует.' player_offline: ' &cЭтот игрок офлайн или не существует.' - add_fuel: - success: ' &aДобавить собственное топливо успешно' - failed_add_air: ' &cНе удалось добавить собственное топливо. Причина: Невозможно добавить несуществующий предмет в качестве топлива.' - failed_exist: ' &cНе удалось добавить собственное топливо. Причина: Это топливо уже существует.' + fuel: + add: + success: ' &aДобавить собственное топливо успешно.' + failed_add_air: ' &cНе удалось добавить собственное топливо. Причина: Невозможно добавить несуществующий предмет в качестве топлива.' + failed_exist: ' &cНе удалось добавить собственное топливо. Причина: Это топливо уже существует.' + remove: + success: ' &aУдаление пользовательского топлива успешно.' + failed_not_exist: ' &cНе удалось удалить пользовательское топливо. Причина: Этого топлива не существует.' reload: success: ' &aПерезагрузка плагина выполнена успешно.' exception: ' &cВпроцессе перезагрузки плагина произошла ошибка. Пожалуйста, проверьте консоль.' diff --git a/src/main/resources/lang/zh_cn.yml b/src/main/resources/lang/zh_cn.yml index 07f54c64..f4e07ed6 100644 --- a/src/main/resources/lang/zh_cn.yml +++ b/src/main/resources/lang/zh_cn.yml @@ -15,10 +15,14 @@ command: success: ' &a物品获取成功' not_exist_item: ' &c不存在物品 ' player_offline: ' &c该玩家不在线或不存在' - add_fuel: - success: ' &a添加自定义燃料成功' - failed_add_air: ' &c添加自定义燃料失败,原因:不能将不存在的物品作为燃料。' - failed_exist: ' &c添加自定义燃料失败。原因:此燃料已存在。' + fuel: + add: + success: ' &a添加自定义燃料成功.' + failed_add_air: ' &c添加自定义燃料失败,原因:不能将不存在的物品作为燃料。' + failed_exist: ' &c添加自定义燃料失败。原因:此燃料已存在。' + remove: + success: ' &a删除自定义燃料成功.' + failed_not_exist: ' &c删除自定义燃料失败。原因:此燃料不存在。' reload: success: ' &a插件重载成功' exception: ' &c插件重载过程中发生错误,请查看控制台' diff --git a/src/main/resources/lang/zh_hk.yml b/src/main/resources/lang/zh_hk.yml index bb2f79db..21426af6 100644 --- a/src/main/resources/lang/zh_hk.yml +++ b/src/main/resources/lang/zh_hk.yml @@ -15,10 +15,14 @@ command: success: ' &a物品獲取成功。' not_exist_item: ' &c不存在物品 。' player_offline: ' &c該玩家不在線上或不存在。' - add_fuel: - success: ' &a添加自定義燃料成功' - failed_add_air: ' &c添加自定義燃料失敗,原因:不能將不存在的物品作為燃料。' - failed_exist: ' &c添加自定義燃料失敗。原因:此燃料已存在。' + fuel: + add: + success: ' &a添加自定義燃料成功.' + failed_add_air: ' &c添加自定義燃料失敗,原因:不能將不存在的物品作為燃料。' + failed_exist: ' &c添加自定義燃料失敗。原因:此燃料已存在。' + remove: + success: ' &a刪除自定義燃料成功。' + failed_not_exist: ' &c刪除自定義燃料失敗。原因:此燃料不存在。' reload: success: ' &a插件重載成功。' exception: ' &c插件重載過程中發生錯誤,請查看控制台。' diff --git a/src/main/resources/lang/zh_tw.yml b/src/main/resources/lang/zh_tw.yml index bb2f79db..21426af6 100644 --- a/src/main/resources/lang/zh_tw.yml +++ b/src/main/resources/lang/zh_tw.yml @@ -15,10 +15,14 @@ command: success: ' &a物品獲取成功。' not_exist_item: ' &c不存在物品 。' player_offline: ' &c該玩家不在線上或不存在。' - add_fuel: - success: ' &a添加自定義燃料成功' - failed_add_air: ' &c添加自定義燃料失敗,原因:不能將不存在的物品作為燃料。' - failed_exist: ' &c添加自定義燃料失敗。原因:此燃料已存在。' + fuel: + add: + success: ' &a添加自定義燃料成功.' + failed_add_air: ' &c添加自定義燃料失敗,原因:不能將不存在的物品作為燃料。' + failed_exist: ' &c添加自定義燃料失敗。原因:此燃料已存在。' + remove: + success: ' &a刪除自定義燃料成功。' + failed_not_exist: ' &c刪除自定義燃料失敗。原因:此燃料不存在。' reload: success: ' &a插件重載成功。' exception: ' &c插件重載過程中發生錯誤,請查看控制台。'