允许help获得帮助信息书籍
This commit is contained in:
@@ -10,6 +10,7 @@ import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.TabCompleter;
|
||||
import org.bukkit.enchantments.Enchantment;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.BookMeta;
|
||||
@@ -30,7 +31,7 @@ public class ZbCommand implements CommandExecutor, TabCompleter {
|
||||
"unfixed");
|
||||
|
||||
public ZbCommand() {
|
||||
|
||||
|
||||
}
|
||||
|
||||
protected void add(Player player, String[] strings) {
|
||||
@@ -137,8 +138,29 @@ public class ZbCommand implements CommandExecutor, TabCompleter {
|
||||
}
|
||||
|
||||
/// 显示帮助
|
||||
protected void help(Player player) {
|
||||
protected void help(Player player, String[] strings) {
|
||||
if (strings.length > 2) {
|
||||
player.sendMessage(ChatColor.RED + "命令过长");
|
||||
return;
|
||||
}
|
||||
String op = "open";
|
||||
if (strings.length == 2) {
|
||||
op = strings[1];
|
||||
}
|
||||
|
||||
ItemStack book = new ItemStack(Material.WRITTEN_BOOK);
|
||||
BookMeta bookMeta = getHelpBookMeta(player, book);
|
||||
book.setItemMeta(bookMeta);
|
||||
|
||||
if (op.equals("open"))
|
||||
player.openBook(book);
|
||||
else if (op.equals("give"))
|
||||
player.getInventory().addItem(book);
|
||||
else
|
||||
player.sendMessage(ChatColor.RED + "语法错误:无法解析的参数:" + op);
|
||||
}
|
||||
|
||||
private static @NotNull BookMeta getHelpBookMeta(Player player, ItemStack book) {
|
||||
BookMeta bookMeta = (BookMeta) book.getItemMeta();
|
||||
assert bookMeta != null;
|
||||
bookMeta.setGeneration(BookMeta.Generation.COPY_OF_COPY);
|
||||
@@ -148,9 +170,8 @@ public class ZbCommand implements CommandExecutor, TabCompleter {
|
||||
"欢迎使用坐标管理器!你好," + player.getName() + "\n\n" + "本书将向你介绍如何使用指令记录曾探索过的地点,以避免迷路\n" + "如果需要再次查看帮助信息,请使用 /zb help\n",
|
||||
"/zb add <地点名称> <固定到侧边栏> \n" + "记录当前地点到数据库中,例如\n" + "/zb add Home\n" + "将会记录当前的位置,取名为 Home,并固定到屏幕右侧\n",
|
||||
"如果不想固定到屏幕右侧,可以像这样使用\n" + "/zb add Home false\n" + "然后,你可以使用/zb list来查看已经保存的位置\n" + "使用/zb fixed <Name> 来将地点固定到屏幕右侧\n" + "使用/zb unfixed <Name> 来取消固定。\n");
|
||||
book.setItemMeta(bookMeta);
|
||||
|
||||
player.openBook(book);
|
||||
bookMeta.addEnchant(Enchantment.VANISHING_CURSE,1,true);
|
||||
return bookMeta;
|
||||
}
|
||||
|
||||
protected void reload(Player player, String[] strings) throws SQLException {
|
||||
@@ -167,6 +188,7 @@ public class ZbCommand implements CommandExecutor, TabCompleter {
|
||||
player.sendMessage("已重新载入数据");
|
||||
}
|
||||
|
||||
@SuppressWarnings("DuplicatedCode")
|
||||
protected void fixed(Player player, String[] strings) throws SQLException {
|
||||
if (strings.length > 2) {
|
||||
player.sendMessage(ChatColor.RED + "命令过长");
|
||||
@@ -241,7 +263,7 @@ public class ZbCommand implements CommandExecutor, TabCompleter {
|
||||
add(player, strings);
|
||||
break;
|
||||
case "help":
|
||||
help(player);
|
||||
help(player, strings);
|
||||
break;
|
||||
case "remove":
|
||||
remove(player, strings);
|
||||
@@ -322,6 +344,9 @@ public class ZbCommand implements CommandExecutor, TabCompleter {
|
||||
case "fixed" -> {
|
||||
return List.of("<地标名称>");
|
||||
}
|
||||
case "help" -> {
|
||||
return filter(latest, new ArrayList<>(Arrays.asList("give", "open")));
|
||||
}
|
||||
}
|
||||
}
|
||||
if (strings[0].equals("add")) {
|
||||
|
||||
Reference in New Issue
Block a user