Files
TabooLib/src/main/java/me/skymc/tlm/command/sub/TLMInvCommand.java
坏黑 ad1a21196f 版本更新至:3.76
调整:开发框架改为 Gradle
新增:Language2 工具新增 [book] 类型
2018-03-10 21:13:05 +08:00

203 lines
5.3 KiB
Java

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<ItemStack> 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);
}
}
}