feat(bukkit): 一些新的指令
This commit is contained in:
@@ -12,5 +12,6 @@ public class ParentCoreCommand extends ParentCommand {
|
||||
addChildCommand(GCCommand.INSTANCE);
|
||||
addChildCommand(YamlCommand.INSTANCE);
|
||||
addChildCommand(InfoModeCommand.INSTANCE);
|
||||
addChildCommand(ReloadCommand.INSTANCE);
|
||||
}
|
||||
}
|
||||
|
@@ -0,0 +1,49 @@
|
||||
package cn.hamster3.mc.plugin.core.bukkit.command.core;
|
||||
|
||||
import cn.hamster3.mc.plugin.core.bukkit.command.ChildCommand;
|
||||
import cn.hamster3.mc.plugin.core.bukkit.page.PageManager;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class ReloadCommand extends ChildCommand {
|
||||
public static final ReloadCommand INSTANCE = new ReloadCommand();
|
||||
|
||||
private ReloadCommand() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull String getName() {
|
||||
return "reload";
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull String getUsage() {
|
||||
return "reload";
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasPermission(@NotNull CommandSender sender) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull String getDescription() {
|
||||
return "重载页面配置文件";
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) {
|
||||
PageManager.PAGE_CONFIG.clear();
|
||||
sender.sendMessage("§a已重载页面配置文件.");
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String alias, String[] args) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
}
|
@@ -0,0 +1,91 @@
|
||||
package cn.hamster3.mc.plugin.core.bukkit.command.lore;
|
||||
|
||||
import cn.hamster3.mc.plugin.core.bukkit.command.ChildCommand;
|
||||
import cn.hamster3.mc.plugin.core.bukkit.constant.CoreMessage;
|
||||
import cn.hamster3.mc.plugin.core.bukkit.util.BukkitUtils;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemFlag;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.ItemMeta;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class LoreFlagCommand extends ChildCommand {
|
||||
public static final LoreFlagCommand INSTANCE = new LoreFlagCommand();
|
||||
|
||||
private LoreFlagCommand() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull String getName() {
|
||||
return "flag";
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull String getUsage() {
|
||||
return "flag <ItemFlag>";
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasPermission(@NotNull CommandSender sender) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull String getDescription() {
|
||||
return "为手持物品添加一条 lore";
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
@Override
|
||||
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) {
|
||||
if (args.length < 1) {
|
||||
CoreMessage.COMMAND_LORE_EMPTY_INPUT.show(sender);
|
||||
return true;
|
||||
}
|
||||
if (!(sender instanceof Player)) {
|
||||
CoreMessage.COMMAND_MUST_USED_BY_PLAYER.show(sender);
|
||||
return true;
|
||||
}
|
||||
Player player = (Player) sender;
|
||||
ItemStack stack = player.getItemInHand();
|
||||
if (BukkitUtils.isEmptyItemStack(stack)) {
|
||||
CoreMessage.COMMAND_LORE_HAND_EMPTY.show(player);
|
||||
return true;
|
||||
}
|
||||
ItemFlag flag;
|
||||
try {
|
||||
flag = ItemFlag.valueOf(args[0]);
|
||||
} catch (IllegalArgumentException e) {
|
||||
CoreMessage.COMMAND_LORE_FLAG_SET_INPUT_ERROR.show(player);
|
||||
return true;
|
||||
}
|
||||
|
||||
ItemMeta meta = stack.getItemMeta();
|
||||
if (meta != null) {
|
||||
if (meta.hasItemFlag(flag)) {
|
||||
meta.removeItemFlags(flag);
|
||||
CoreMessage.COMMAND_LORE_FLAG_REMOVE_SUCCESS.show(player);
|
||||
} else {
|
||||
meta.addItemFlags(flag);
|
||||
CoreMessage.COMMAND_LORE_FLAG_SET_SUCCESS.show(player);
|
||||
}
|
||||
}
|
||||
stack.setItemMeta(meta);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String alias, String[] args) {
|
||||
return Arrays.stream(ItemFlag.values())
|
||||
.map(Enum::name)
|
||||
.filter(o -> o.startsWith(args[0].toUpperCase()))
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
}
|
@@ -18,6 +18,7 @@ public final class ParentLoreCommand extends ParentCommand {
|
||||
addChildCommand(LoreClearCommand.INSTANCE);
|
||||
addChildCommand(LoreNameCommand.INSTANCE);
|
||||
addChildCommand(LoreCustomModelDataCommand.INSTANCE);
|
||||
addChildCommand(LoreFlagCommand.INSTANCE);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@@ -24,6 +24,9 @@ public enum CoreMessage {
|
||||
COMMAND_LORE_CMD_CLEAR_SUCCESS,
|
||||
COMMAND_LORE_CMD_SET_SUCCESS,
|
||||
COMMAND_LORE_CMD_SET_INPUT_ERROR,
|
||||
COMMAND_LORE_FLAG_SET_SUCCESS,
|
||||
COMMAND_LORE_FLAG_REMOVE_SUCCESS,
|
||||
COMMAND_LORE_FLAG_SET_INPUT_ERROR,
|
||||
COMMAND_LORE_NAME_SUCCESS,
|
||||
COMMAND_LORE_REMOVE_NOT_INPUT_NUMBER,
|
||||
COMMAND_LORE_REMOVE_INPUT_NUMBER_ERROR,
|
||||
|
@@ -14,7 +14,7 @@ import java.nio.file.StandardCopyOption;
|
||||
import java.util.HashMap;
|
||||
|
||||
public class PageManager {
|
||||
private static final HashMap<String, PageConfig> PAGE_CONFIG = new HashMap<>();
|
||||
public static final HashMap<String, PageConfig> PAGE_CONFIG = new HashMap<>();
|
||||
|
||||
@NotNull
|
||||
public static PageConfig getPageConfig(@NotNull Class<?> clazz) {
|
||||
|
Reference in New Issue
Block a user