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 2018年2月22日 下午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 2018年2月18日 下午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); + } + + // 覆盖背包 + 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; + } + + // 覆盖背包 + 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 2018年2月22日 下午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 2018年2月22日 下午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 2018年2月22日 下午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物品覆盖出错"); + 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姝e湪鍐峰嵈涓' -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姝e湪鍐峰嵈涓' +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