From 06f634086322ea14c7a5dd8e19b22b3ce713d1b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=9D=8F=E9=BB=91?= Date: Thu, 22 Feb 2018 16:47:37 +0800 Subject: [PATCH] =?UTF-8?q?=E7=89=88=E6=9C=AC=E6=9B=B4=E6=96=B0=E8=87=B3?= =?UTF-8?q?=203.6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 新增:DisableConfig 注释,用于禁止 TLM 模块生成配置文件 新增:TLM/InventorySave 模块,用于保存,覆盖玩家背包 新增:TLM/CommandChanger 模块,用于转换控制台、玩家命令 新增:TLM/Kit 模块新增命令配置,可在领取时执行控制台命令 新增:/tlm kit list 命令,用于列出礼包 新增:/tlm inv list 命令,用于列出已保存的背包 新增:/tlm inv info 命令,用于查看已保存的背包 新增:/tlm inv save 命令,用于保存当前背包 新增:/tlm inv paste 命令,用于将已保存的背包覆盖到玩家背包内 新增:/tlm inv delete 命令,用于删除已保存的背包 --- src/main/src/me/skymc/tlm/TLM.java | 8 + .../skymc/tlm/annotation/DisableConfig.java | 17 ++ .../src/me/skymc/tlm/command/TLMCommands.java | 13 ++ .../skymc/tlm/command/sub/TLMInvCommand.java | 202 ++++++++++++++++++ .../skymc/tlm/command/sub/TLMKitCommand.java | 18 ++ .../tlm/inventory/TLMInventoryHolder.java | 30 +++ .../skymc/tlm/module/TabooLibraryModule.java | 3 +- .../tlm/module/sub/ModuleCommandChanger.java | 56 +++++ .../tlm/module/sub/ModuleInventorySave.java | 155 ++++++++++++++ .../me/skymc/tlm/module/sub/ModuleKits.java | 11 + src/resources/Language2/zh_CN.yml | 58 +++-- src/resources/TLM/CommandChanger.yml | 14 ++ src/resources/TLM/Kits.yml | 6 +- 13 files changed, 571 insertions(+), 20 deletions(-) create mode 100644 src/main/src/me/skymc/tlm/annotation/DisableConfig.java create mode 100644 src/main/src/me/skymc/tlm/command/sub/TLMInvCommand.java create mode 100644 src/main/src/me/skymc/tlm/inventory/TLMInventoryHolder.java create mode 100644 src/main/src/me/skymc/tlm/module/sub/ModuleCommandChanger.java create mode 100644 src/main/src/me/skymc/tlm/module/sub/ModuleInventorySave.java create mode 100644 src/resources/TLM/CommandChanger.yml diff --git a/src/main/src/me/skymc/tlm/TLM.java b/src/main/src/me/skymc/tlm/TLM.java index 86de669..98fa270 100644 --- a/src/main/src/me/skymc/tlm/TLM.java +++ b/src/main/src/me/skymc/tlm/TLM.java @@ -9,6 +9,8 @@ import me.skymc.taboolib.fileutils.ConfigUtils; import me.skymc.taboolib.message.MsgUtils; import me.skymc.taboolib.string.language2.Language2; import me.skymc.tlm.module.TabooLibraryModule; +import me.skymc.tlm.module.sub.ModuleCommandChanger; +import me.skymc.tlm.module.sub.ModuleInventorySave; import me.skymc.tlm.module.sub.ModuleKits; import me.skymc.tlm.module.sub.ModuleTimeCycle; @@ -40,6 +42,12 @@ public class TLM { if (isEnableModule("Kits")) { TabooLibraryModule.getInst().register(new ModuleKits()); } + if (isEnableModule("CommandChanger")) { + TabooLibraryModule.getInst().register(new ModuleCommandChanger()); + } + if (isEnableModule("InventorySave")) { + TabooLibraryModule.getInst().register(new ModuleInventorySave()); + } // ģ TabooLibraryModule.getInst().loadModules(); diff --git a/src/main/src/me/skymc/tlm/annotation/DisableConfig.java b/src/main/src/me/skymc/tlm/annotation/DisableConfig.java new file mode 100644 index 0000000..9e4f9b3 --- /dev/null +++ b/src/main/src/me/skymc/tlm/annotation/DisableConfig.java @@ -0,0 +1,17 @@ +package me.skymc.tlm.annotation; + +import static java.lang.annotation.ElementType.TYPE; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +@Retention(RUNTIME) +@Target(TYPE) +/** + * @author sky + * @since 2018222 3:59:30 + */ +public @interface DisableConfig { + +} diff --git a/src/main/src/me/skymc/tlm/command/TLMCommands.java b/src/main/src/me/skymc/tlm/command/TLMCommands.java index 7abff81..beae1d5 100644 --- a/src/main/src/me/skymc/tlm/command/TLMCommands.java +++ b/src/main/src/me/skymc/tlm/command/TLMCommands.java @@ -5,6 +5,7 @@ import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; import me.skymc.tlm.TLM; +import me.skymc.tlm.command.sub.TLMInvCommand; import me.skymc.tlm.command.sub.TLMKitCommand; import me.skymc.tlm.command.sub.TLMListCommand; import me.skymc.tlm.command.sub.TLMReloadCommand; @@ -24,6 +25,7 @@ public class TLMCommands implements CommandExecutor { TLM.getInst().getLanguage().get("NOPERMISSION-HELP").send(sender); } } + else if (args[0].equalsIgnoreCase("reload")) { if (sender.hasPermission("taboolib.admin")) { new TLMReloadCommand(sender, args); @@ -31,6 +33,7 @@ public class TLMCommands implements CommandExecutor { TLM.getInst().getLanguage().get("NOPERMISSION-RELOAD").send(sender); } } + else if (args[0].equalsIgnoreCase("list")) { if (sender.hasPermission("taboolib.admin")) { new TLMListCommand(sender, args); @@ -38,9 +41,19 @@ public class TLMCommands implements CommandExecutor { TLM.getInst().getLanguage().get("NOPERMISSION-LIST").send(sender); } } + + else if (args[0].equalsIgnoreCase("inv")) { + if (sender.hasPermission("taboolib.admin")) { + new TLMInvCommand(sender, args); + } else { + TLM.getInst().getLanguage().get("NOPERMISSION-INV").send(sender); + } + } + else if (args[0].equalsIgnoreCase("kit")) { new TLMKitCommand(sender, args); } + else { TLM.getInst().getLanguage().get("COMMAND-ERROR").send(sender); } diff --git a/src/main/src/me/skymc/tlm/command/sub/TLMInvCommand.java b/src/main/src/me/skymc/tlm/command/sub/TLMInvCommand.java new file mode 100644 index 0000000..a301a6f --- /dev/null +++ b/src/main/src/me/skymc/tlm/command/sub/TLMInvCommand.java @@ -0,0 +1,202 @@ +package me.skymc.tlm.command.sub; + + +import java.util.List; + +import org.bukkit.Bukkit; +import org.bukkit.Material; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.ItemStack; + +import me.skymc.taboolib.commands.SubCommand; +import me.skymc.taboolib.inventory.ItemUtils; +import me.skymc.tlm.TLM; +import me.skymc.tlm.inventory.TLMInventoryHolder; +import me.skymc.tlm.module.TabooLibraryModule; +import me.skymc.tlm.module.sub.ModuleInventorySave; + +/** + * @author sky + * @since 2018218 2:53:58 + */ +public class TLMInvCommand extends SubCommand { + + /** + * @param sender + * @param args + */ + public TLMInvCommand(CommandSender sender, String[] args) { + super(sender, args); + if (TabooLibraryModule.getInst().valueOf("InventorySave") == null) { + TLM.getInst().getLanguage().get("INV-DISABLE").send(sender); + return; + } + + // ȡģ + ModuleInventorySave moduleInventorySave = (ModuleInventorySave) TabooLibraryModule.getInst().valueOf("InventorySave"); + + // ж + if (args.length == 1) { + TLM.getInst().getLanguage().get("INV-EMPTY").send(sender); + } + + // г + else if (args[1].equalsIgnoreCase("list")) { + TLM.getInst().getLanguage().get("INV-LIST").addPlaceholder("$name", moduleInventorySave.getInventorys().toString()).send(sender); + } + + // 鿴 + else if (args[1].equalsIgnoreCase("info")) { + // Ą̊́ + if (!(sender instanceof Player)) { + TLM.getInst().getLanguage().get("INV-CONSOLE").send(sender); + return; + } + + // жϳ + if (args.length < 3) { + TLM.getInst().getLanguage().get("INV-NAME").send(sender); + return; + } + + // жϱ + if (!moduleInventorySave.getInventorys().contains(args[2])) { + TLM.getInst().getLanguage().get("INV-NOTFOUND").addPlaceholder("$name", args[2]).send(sender); + return; + } + + // ȡ + Player player = (Player) sender; + + // ȡƷ + List items = moduleInventorySave.getItems(args[2]); + + // 򿪽 + Inventory inv = Bukkit.createInventory(new TLMInventoryHolder("InventorySave"), 54, TLM.getInst().getLanguage().get("INV-INFO-TITLE") + .addPlaceholder("$name", args[2]) + .asString()); + + // Ʒ + ItemStack barrier = ItemUtils.setName(new ItemStack(Material.STAINED_GLASS_PANE, 1, (short) 15), "f"); + + for (int i = 9 ; i < 18 ; i++) { + inv.setItem(i, barrier); + } + + for (int i = 9 ; i < 35 ; i++) { + inv.setItem(i + 9, items.get(i)); + } + + for (int i = 0 ; i < 9 ; i++) { + inv.setItem(i + 45, items.get(i)); + } + + inv.setItem(1, items.get(39)); + inv.setItem(2, items.get(38)); + inv.setItem(3, items.get(37)); + inv.setItem(4, items.get(36)); + + // жϰ汾 + if (items.size() == 41) { + inv.setItem(6, items.get(40)); + } + + // 򿪱 + player.openInventory(inv); + } + + // 汳 + else if (args[1].equalsIgnoreCase("save")) { + // Ą̊́ + if (!(sender instanceof Player)) { + TLM.getInst().getLanguage().get("INV-CONSOLE").send(sender); + return; + } + + // жϳ + if (args.length < 3) { + TLM.getInst().getLanguage().get("INV-NAME").send(sender); + return; + } + + // ȡ + Player player = (Player) sender; + + // 汳 + moduleInventorySave.saveInventory(player, args[2]); + + // ʾϢ + TLM.getInst().getLanguage().get("INV-SAVE").addPlaceholder("$name", args[2]).send(player); + } + + // DZ + else if (args[1].equalsIgnoreCase("paste")) { + // жϳ + if (args.length < 3) { + TLM.getInst().getLanguage().get("INV-NAME").send(sender); + return; + } + + // жϱ + if (!moduleInventorySave.getInventorys().contains(args[2])) { + TLM.getInst().getLanguage().get("INV-NOTFOUND").addPlaceholder("$name", args[2]).send(sender); + return; + } + + // ȡ + Player player; + if (args.length > 3) { + player = Bukkit.getPlayerExact(args[3]); + // Ҳ + if (player == null) { + TLM.getInst().getLanguage().get("INV-OFFLINE").addPlaceholder("$name", args[3]).send(sender); + return; + } + } else if (sender instanceof Player) { + player = (Player) sender; + } else { + TLM.getInst().getLanguage().get("INV-CONSOLE").send(sender); + return; + } + + // DZ + moduleInventorySave.pasteInventory(player, args[2]); + + // + if (sender instanceof Player) { + // ʾϢ + TLM.getInst().getLanguage().get("INV-PASTE") + .addPlaceholder("$name", args[2]) + .addPlaceholder("$player", player.getName()) + .send(player); + } + } + + // ɾ + else if (args[1].equalsIgnoreCase("delete")) { + // жϳ + if (args.length < 3) { + TLM.getInst().getLanguage().get("INV-NAME").send(sender); + return; + } + + // жϱ + if (!moduleInventorySave.getInventorys().contains(args[2])) { + TLM.getInst().getLanguage().get("INV-NOTFOUND").addPlaceholder("$name", args[2]).send(sender); + return; + } + + // ɾ + moduleInventorySave.deleteInventory(args[2]); + + // ʾϢ + TLM.getInst().getLanguage().get("KIT-DELETE").addPlaceholder("$name", args[2]).send(sender); + } + + else { + TLM.getInst().getLanguage().get("INV-EMPTY").send(sender); + } + } +} diff --git a/src/main/src/me/skymc/tlm/command/sub/TLMKitCommand.java b/src/main/src/me/skymc/tlm/command/sub/TLMKitCommand.java index 3dd2a35..96a19ba 100644 --- a/src/main/src/me/skymc/tlm/command/sub/TLMKitCommand.java +++ b/src/main/src/me/skymc/tlm/command/sub/TLMKitCommand.java @@ -39,6 +39,19 @@ public class TLMKitCommand extends SubCommand { return; } + else if (args[1].equalsIgnoreCase("list")) { + // жȨ + if (!sender.hasPermission("taboolib.kit.list")) { + TLM.getInst().getLanguage().get("NOPERMISSION-KIT-LIST").send(sender); + return; + } + else { + TLM.getInst().getLanguage().get("KIT-LIST") + .addPlaceholder("$kits", moduleKits.getConfig().getConfigurationSection("Kits").getKeys(false).toString()) + .send(sender); + } + } + else if (args[1].equalsIgnoreCase("reward")) { // жȨ if (!sender.hasPermission("taboolib.kit.reward")) { @@ -108,6 +121,11 @@ public class TLMKitCommand extends SubCommand { } } + // ִ + for (String command : moduleKits.getCommands(args[2])) { + Bukkit.dispatchCommand(Bukkit.getConsoleSender(), command.replace("$player", player.getName())); + } + // ȡ moduleKits.setPlayerReward(player, args[2], true); diff --git a/src/main/src/me/skymc/tlm/inventory/TLMInventoryHolder.java b/src/main/src/me/skymc/tlm/inventory/TLMInventoryHolder.java new file mode 100644 index 0000000..dbeae86 --- /dev/null +++ b/src/main/src/me/skymc/tlm/inventory/TLMInventoryHolder.java @@ -0,0 +1,30 @@ +package me.skymc.tlm.inventory; + +import java.util.HashMap; + +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.InventoryHolder; + +import lombok.Getter; + +/** + * @author sky + * @since 2018222 3:34:59 + */ +public class TLMInventoryHolder implements InventoryHolder { + + @Getter + private String module; + + @Getter + private HashMap holderData = new HashMap<>(); + + public TLMInventoryHolder(String module) { + this.module = module; + } + + @Override + public Inventory getInventory() { + return null; + } +} diff --git a/src/main/src/me/skymc/tlm/module/TabooLibraryModule.java b/src/main/src/me/skymc/tlm/module/TabooLibraryModule.java index 7cfa771..2801b56 100644 --- a/src/main/src/me/skymc/tlm/module/TabooLibraryModule.java +++ b/src/main/src/me/skymc/tlm/module/TabooLibraryModule.java @@ -10,6 +10,7 @@ import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.event.Listener; import me.skymc.taboolib.Main; +import me.skymc.tlm.annotation.DisableConfig; /** * @author sky @@ -60,7 +61,7 @@ public class TabooLibraryModule { } public void reloadConfig(ITabooLibraryModule module, boolean isReload) { - if (module.getName() == null) { + if (module.getName() == null || module.getClass().getAnnotation(DisableConfig.class) != null) { return; } File file = new File(Main.getInst().getDataFolder(), "TLM/" + module.getName() + ".yml"); diff --git a/src/main/src/me/skymc/tlm/module/sub/ModuleCommandChanger.java b/src/main/src/me/skymc/tlm/module/sub/ModuleCommandChanger.java new file mode 100644 index 0000000..99cbdc3 --- /dev/null +++ b/src/main/src/me/skymc/tlm/module/sub/ModuleCommandChanger.java @@ -0,0 +1,56 @@ +package me.skymc.tlm.module.sub; + +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.player.PlayerCommandPreprocessEvent; +import org.bukkit.event.server.ServerCommandEvent; + +import me.skymc.tlm.module.ITabooLibraryModule; + +/** + * @author sky + * @since 2018222 1:32:29 + */ +public class ModuleCommandChanger implements ITabooLibraryModule, Listener { + + @Override + public String getName() { + return "CommandChanger"; + } + + @EventHandler + public void command(PlayerCommandPreprocessEvent e) { + // ѭ + for (String id : getConfig().getConfigurationSection("Commands").getKeys(false)) { + // ȡ + String key = getConfig().getString("Commands." + id + ".Input"); + // ж + if (e.getMessage().startsWith(key)) { + // жִзʽ + if (!getConfig().contains("Commands." + id + ".ReplaceMode") || getConfig().getString("Commands." + id + ".ReplaceMode").equals("PLAYER")) { + // 滻 + e.setMessage(e.getMessage().replace(key, getConfig().getString("Commands." + id + ".Replace"))); + return; + } + } + } + } + + @EventHandler + public void command(ServerCommandEvent e) { + // ѭ + for (String id : getConfig().getConfigurationSection("Commands").getKeys(false)) { + // ȡ + String key = getConfig().getString("Commands." + id + ".Input"); + // ж + if (e.getCommand().startsWith(key)) { + // жִзʽ + if (!getConfig().contains("Commands." + id + ".ReplaceMode") || getConfig().getString("Commands." + id + ".ReplaceMode").equals("CONSOLE")) { + // 滻 + e.setCommand(e.getCommand().replace(key, getConfig().getString("Commands." + id + ".Replace"))); + return; + } + } + } + } +} diff --git a/src/main/src/me/skymc/tlm/module/sub/ModuleInventorySave.java b/src/main/src/me/skymc/tlm/module/sub/ModuleInventorySave.java new file mode 100644 index 0000000..482566a --- /dev/null +++ b/src/main/src/me/skymc/tlm/module/sub/ModuleInventorySave.java @@ -0,0 +1,155 @@ +package me.skymc.tlm.module.sub; + +import java.util.ArrayList; +import java.util.LinkedList; +import java.util.List; +import java.util.Set; + +import org.bukkit.Material; +import org.bukkit.configuration.file.FileConfiguration; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.inventory.InventoryClickEvent; +import org.bukkit.inventory.ItemStack; + +import me.skymc.taboolib.Main; +import me.skymc.taboolib.TabooLib; +import me.skymc.taboolib.message.MsgUtils; +import me.skymc.taboolib.playerdata.DataUtils; +import me.skymc.tlm.annotation.DisableConfig; +import me.skymc.tlm.inventory.TLMInventoryHolder; +import me.skymc.tlm.module.ITabooLibraryModule; + +/** + * @author sky + * @since 2018222 2:48:27 + */ +@DisableConfig +public class ModuleInventorySave implements ITabooLibraryModule, Listener { + + private FileConfiguration conf; + + @Override + public String getName() { + return "InventorySave"; + } + + @Override + public void onEnable() { + reloadConfig(); + } + + @Override + public void onReload() { + reloadConfig(); + } + + public void reloadConfig() { + conf = DataUtils.addPluginData("InventorySave", Main.getInst()); + } + + /** + * ұ + * + * @param player + * @param name + */ + public void saveInventory(Player player, String name) { + // Ʒ + for (int i = 0 ; i < (TabooLib.getVerint() > 10800 ? 41 : 40) ; i++) { + ItemStack item = player.getInventory().getItem(i); + conf.set(name + "." + i, item == null ? new ItemStack(Material.AIR) : item.clone()); + } + } + + /** + * ұ + * + * @param player + * @param name + */ + public void pasteInventory(Player player, String name) { + // + if (!conf.contains(name)) { + MsgUtils.warn("ģִ쳣: &4"); + MsgUtils.warn("ģ: &4InventorySave"); + MsgUtils.warn("λ: &4" + name); + return; + } + + // Ʒ + for (int i = 0 ; i < (TabooLib.getVerint() > 10800 ? 41 : 40) ; i++) { + try { + ItemStack item = (ItemStack) conf.get(name + "." + i); + player.getInventory().setItem(i, item); + } + catch (Exception e) { + MsgUtils.warn("ģִ쳣: &4Ʒdz"); + MsgUtils.warn("ģ: &4InventorySave"); + MsgUtils.warn("λ: &4" + name + ":" + i); + } + } + } + + /** + * ȡƷ + * + * @param name + * @return {@link List} + */ + public List getItems(String name) { + // + if (!conf.contains(name)) { + MsgUtils.warn("ģִ쳣: &4"); + MsgUtils.warn("ģ: &4InventorySave"); + MsgUtils.warn("λ: &4" + name); + return new LinkedList<>(); + } + + List items = new LinkedList<>(); + // Ʒ + for (int i = 0 ; i < (TabooLib.getVerint() > 10800 ? 41 : 40) ; i++) { + try { + ItemStack item = (ItemStack) conf.get(name + "." + i); + items.add(item); + } + catch (Exception e) { + MsgUtils.warn("ģִ쳣: &4Ʒȡ"); + MsgUtils.warn("ģ: &4InventorySave"); + MsgUtils.warn("λ: &4" + name + ":" + i); + } + } + return items; + } + + /** + * ȡб + * + * @return {@link Set} + */ + public Set getInventorys() { + return conf.getConfigurationSection("").getKeys(false); + } + + /** + * ɾ + * + * @param name + */ + public void deleteInventory(String name) { + conf.set(name, null); + } + + @EventHandler + public void onClick(InventoryClickEvent e) { + if (!(e.getInventory().getHolder() instanceof TLMInventoryHolder)) { + return; + } + + TLMInventoryHolder holder = (TLMInventoryHolder) e.getInventory().getHolder(); + if (holder.getModule().equals(getName())) { + e.setCancelled(true); + } + } +} diff --git a/src/main/src/me/skymc/tlm/module/sub/ModuleKits.java b/src/main/src/me/skymc/tlm/module/sub/ModuleKits.java index 94fd084..2910cef 100644 --- a/src/main/src/me/skymc/tlm/module/sub/ModuleKits.java +++ b/src/main/src/me/skymc/tlm/module/sub/ModuleKits.java @@ -7,6 +7,7 @@ import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; +import lombok.Getter; import me.skymc.taboolib.database.PlayerDataManager; import me.skymc.taboolib.inventory.ItemUtils; import me.skymc.taboolib.message.MsgUtils; @@ -157,4 +158,14 @@ public class ModuleKits implements ITabooLibraryModule { } return items; } + + /** + * 获取礼包命令 + * + * @param kit 礼包名 + * @return {@link List} + */ + public List getCommands(String kit) { + return getConfig().contains("Kits." + kit + ".Commands") ? getConfig().getStringList("Kits." + kit + ".Commands") : new ArrayList<>(); + } } diff --git a/src/resources/Language2/zh_CN.yml b/src/resources/Language2/zh_CN.yml index 95a245f..f2a80e5 100644 --- a/src/resources/Language2/zh_CN.yml +++ b/src/resources/Language2/zh_CN.yml @@ -1,4 +1,4 @@ -COMMAND-ERROR: '&8[&2&lTLM&8] &4指令错误' +COMMAND-ERROR: '&8[&3&lTLM&8] &4指令错误' COMMAND-HELP: - '' - '&b&l----- &3&lTaooLibraryModule Commands &b&l-----' @@ -6,32 +6,54 @@ COMMAND-HELP: - '&f /tlm kit reward &8[&7名称] &8<&7名称&8> &6- &e领取礼包' - '&f /tlm kit reset &8[&7名称] &8<&7玩家&8> &6- &e刷新礼包' - '' +- '&f /tlm inv list &6- &e列出所有保存的背包' +- '&f /tlm inv info &8[&7名称] &6- &e查看保存背包' +- '&f /tlm inv save &8[&7名称] &6- &e保存当前背包' +- '&f /tlm inv paste &8[&7名称] &8<&7玩家&8> &6- &e覆盖背包' +- '&f /tlm inv delete &8[&7名称] &6- &e删除保存背包' +- '' - '&f /tlm list &6- &e列出所有模块' - '' - '&f /tlm reload &8[&7模块名|TLM|ALL&8] &6- &e列出所有模块' - '' -NOPERMISSION-HELP: '&8[&2&lTLM&8] &4你没有权限列出帮助命令' -NOPERMISSION-LIST: '&8[&2&lTLM&8] &4你没有权限这么做' -NOPERMISSION-RELOAD: '&8[&2&lTLM&8] &4你没有权限这么做' -NOPERMISSION-KIT-REWARD: '&8[&2&lTLM&8] &4你没有权限这么做' -NOPERMISSION-KIT-RESET: '&8[&2&lTLM&8] &4你没有权限这么做' +# 3.58 增加 +NOPERMISSION-HELP: '&8[&3&lTLM&8] &4你没有权限列出帮助命令' +NOPERMISSION-LIST: '&8[&3&lTLM&8] &4你没有权限这么做' +NOPERMISSION-RELOAD: '&8[&3&lTLM&8] &4你没有权限这么做' +NOPERMISSION-KIT-REWARD: '&8[&3&lTLM&8] &4你没有权限这么做' +NOPERMISSION-KIT-RESET: '&8[&3&lTLM&8] &4你没有权限这么做' +NOPERMISSION-INV: '&8[&3&lTLM&8] &4你没有权限这么做' -KIT-EMPTY: '&8[&2&lTLM&8] &4参数错误' -KIT-NAME: '&8[&2&lTLM&8] &4请输入正确的礼包名称' -KIT-DISABLE: '&8[&2&lTLM&8] &4该模块尚未在配置文件中启用' -KIT-NOTFOUND: '&8[&2&lTLM&8] &4礼包 &c$kit &4不存在' -KIT-OFFLINE: '&8[&2&lTLM&8] &4玩家 &c$name &4不在线' -KIT-CONSOLE: '&8[&2&lTLM&8] &4后台不允许输入这个指令' -KIT-COOLDOWN: '&8[&2&lTLM&8] &4礼包 &c$kit &4正在冷却中' -KIT-DISPOSABLE: '&8[&2&lTLM&8] &4礼包 &c$kit &4只能领取一次' -KIT-RESET-ALL: '&8[&2&lTLM&8] &7礼包 &f$kit &7已刷新' -KIT-RESET-PLAYER: '&8[&2&lTLM&8] &7玩家 &f$player &7的礼包 &f$kit &7已刷新' -KIT-SUCCESS: '&8[&2&lTLM&8] &7礼包 &f$kit &7已领取' +# 3.59 增加 +KIT-EMPTY: '&8[&3&lTLM&8] &4参数错误' +KIT-NAME: '&8[&3&lTLM&8] &4请输入正确的礼包名称' +KIT-DISABLE: '&8[&3&lTLM&8] &4该模块尚未在配置文件中启用' +KIT-NOTFOUND: '&8[&3&lTLM&8] &4礼包 &c$kit &4不存在' +KIT-OFFLINE: '&8[&3&lTLM&8] &4玩家 &c$name &4不在线' +KIT-CONSOLE: '&8[&3&lTLM&8] &4后台不允许输入这个指令' +KIT-COOLDOWN: '&8[&3&lTLM&8] &4礼包 &c$kit &4正在冷却中' +KIT-DISPOSABLE: '&8[&3&lTLM&8] &4礼包 &c$kit &4只能领取一次' +KIT-RESET-ALL: '&8[&3&lTLM&8] &7礼包 &f$kit &7已刷新' +KIT-RESET-PLAYER: '&8[&3&lTLM&8] &7玩家 &f$player &7的礼包 &f$kit &7已刷新' +KIT-SUCCESS: '&8[&3&lTLM&8] &7礼包 &f$kit &7已领取' KIT-PLACEHOLDER: 0: '&4模块未启用' 1: '&4礼包不存在' 2: '&8已领取' 3: '&a可领取' 4: '&4冷却中' - 5: '&4无权限' \ No newline at end of file + 5: '&4无权限' + +# 3.60 增加 +INV-EMPTY: '&8[&3&lTLM&8] &4参数错误' +INV-DISABLE: '&8[&3&lTLM&8] &4该模块尚未在配置文件中启用' +INV-CONSOLE: '&8[&3&lTLM&8] &4该命令不允许控制台执行' +INV-NAME: '&8[&3&lTLM&8] &4请输入正确的背包名称' +INV-LIST: '&8[&3&lTLM&8] &7当前已保存背包: &f$name' +INV-NOTFOUND: '&8[&3&lTLM&8] &4背包 &c$name &4不存在' +INV-INFO-TITLE: '背包信息: $name' +INV-SAVE: '&8[&3&lTLM&8] &7背包 &f$name &7已保存!' +INV-OFFLINE: '&8[&3&lTLM&8] &4玩家 &c$name &4不在线' +INV-PASTE: '&8[&3&lTLM&8] &7背包 &f$name &7已覆盖到玩家 &f$player&7!' +INV-DELETE: '&8[&3&lTLM&8] &4背包 &c$name &4已删除' \ No newline at end of file diff --git a/src/resources/TLM/CommandChanger.yml b/src/resources/TLM/CommandChanger.yml new file mode 100644 index 0000000..353fbeb --- /dev/null +++ b/src/resources/TLM/CommandChanger.yml @@ -0,0 +1,14 @@ +# 指令配置 +Commands: + # 配置序号(不可重复) + test: + # 输入命令 + Input: '/kit' + # 替换命令 + Replace: '/tlm kit' + # 替换模式(省略默认全部) + # ---------- # + # CONSOLE = 后台 + # PLAYER = 玩家 + # ---------- # + ReplaceMode: 'PLAYER' \ No newline at end of file diff --git a/src/resources/TLM/Kits.yml b/src/resources/TLM/Kits.yml index 0dbfa29..00d7e81 100644 --- a/src/resources/TLM/Kits.yml +++ b/src/resources/TLM/Kits.yml @@ -27,4 +27,8 @@ Kits: # 礼包内容 # 空格左侧为物品名,右侧为物品数量 Items: - - 'UnlimitSword 1' \ No newline at end of file + - 'UnlimitSword 1' + + # 礼包命令 + Commands: + - 'say $player 领取了礼包 kit_name!' \ No newline at end of file