mirror of
https://github.com/CarmJos/ScriptItems
synced 2024-09-19 13:25:50 +00:00
测试指令
This commit is contained in:
parent
e385888eb9
commit
092a1127aa
7
pom.xml
7
pom.xml
@ -111,6 +111,13 @@
|
||||
<optional>true</optional>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.github.SaiintBrisson.command-framework</groupId>
|
||||
<artifactId>bukkit</artifactId>
|
||||
<version>1.3.0</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.spigotmc</groupId>
|
||||
<artifactId>spigot-api</artifactId>
|
||||
|
@ -3,12 +3,17 @@ package cc.carm.plugin.commanditem;
|
||||
import cc.carm.lib.easyplugin.EasyPlugin;
|
||||
import cc.carm.lib.easyplugin.i18n.EasyPluginMessageProvider;
|
||||
import cc.carm.plugin.commanditem.command.CMDItemsCommand;
|
||||
import cc.carm.plugin.commanditem.command.ItemSettingsAdapter;
|
||||
import cc.carm.plugin.commanditem.command.ItemSettingsCompleter;
|
||||
import cc.carm.plugin.commanditem.configuration.PluginConfig;
|
||||
import cc.carm.plugin.commanditem.hooker.GHUpdateChecker;
|
||||
import cc.carm.plugin.commanditem.item.ItemSettings;
|
||||
import cc.carm.plugin.commanditem.listener.ItemListener;
|
||||
import cc.carm.plugin.commanditem.manager.ConfigManager;
|
||||
import cc.carm.plugin.commanditem.manager.ItemsManager;
|
||||
import cc.carm.plugin.commanditem.util.JarResourceUtils;
|
||||
import me.saiintbrisson.bukkit.command.BukkitFrame;
|
||||
import me.saiintbrisson.bukkit.command.executor.BukkitSchedulerExecutor;
|
||||
import org.bstats.bukkit.Metrics;
|
||||
import org.bukkit.Bukkit;
|
||||
|
||||
@ -44,14 +49,18 @@ public class Main extends EasyPlugin {
|
||||
this.itemsManager.initialize();
|
||||
|
||||
info("注册指令...");
|
||||
registerCommand("CommandItem", new CMDItemsCommand());
|
||||
BukkitFrame frame = new BukkitFrame(this);
|
||||
frame.setExecutor(new BukkitSchedulerExecutor(this));
|
||||
frame.registerAdapter(ItemSettings.class, new ItemSettingsAdapter());
|
||||
frame.registerCompleter("settings", new ItemSettingsCompleter());
|
||||
frame.registerCommands(new CMDItemsCommand());
|
||||
|
||||
info("注册监听器...");
|
||||
regListener(new ItemListener());
|
||||
|
||||
if (PluginConfig.METRICS.get()) {
|
||||
info("启用统计数据...");
|
||||
new Metrics(this, 14459);
|
||||
new Metrics(this, 14560);
|
||||
}
|
||||
|
||||
if (PluginConfig.CHECK_UPDATE.get()) {
|
||||
|
@ -1,43 +1,44 @@
|
||||
package cc.carm.plugin.commanditem.command;
|
||||
|
||||
import cc.carm.plugin.commanditem.CommandItemAPI;
|
||||
import cc.carm.plugin.commanditem.item.ItemSettings;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import me.saiintbrisson.minecraft.command.annotation.Command;
|
||||
import me.saiintbrisson.minecraft.command.annotation.Completer;
|
||||
import me.saiintbrisson.minecraft.command.command.Context;
|
||||
import me.saiintbrisson.minecraft.command.target.CommandTarget;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.TabCompleter;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.util.StringUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class CMDItemsCommand implements CommandExecutor, TabCompleter {
|
||||
public class CMDItemsCommand {
|
||||
|
||||
@Override
|
||||
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command,
|
||||
@NotNull String alias, @NotNull String[] args) {
|
||||
if (sender instanceof Player) {
|
||||
Player player = (Player) sender;
|
||||
ItemSettings settings = CommandItemAPI.getItemsManager().listItemSettings().values().stream().findFirst().orElse(null);
|
||||
if (settings != null) {
|
||||
player.getInventory().addItem(settings.generateItem(1));
|
||||
}
|
||||
}
|
||||
return true;
|
||||
@Command(
|
||||
name = "CommandItem", aliases = "cmdItem",
|
||||
description = "CommandItem的主要指令。",
|
||||
usage = "/CommandItem help",
|
||||
permission = "CommandItem.admin"
|
||||
)
|
||||
public void main(Context<CommandSender> sender) {
|
||||
help(sender);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command,
|
||||
@NotNull String alias, @NotNull String[] args) {
|
||||
List<String> allCompletes = new ArrayList<>();
|
||||
|
||||
return allCompletes.stream()
|
||||
.filter(s -> StringUtil.startsWithIgnoreCase(s, args[args.length - 1]))
|
||||
.limit(10).collect(Collectors.toList());
|
||||
@Command(name = "CommandItem.help")
|
||||
public void help(Context<CommandSender> sender) {
|
||||
sender.getSender().sendMessage("§a§lCommandItem §f§l指令帮助");
|
||||
}
|
||||
|
||||
@Command(name = "CommandItem.apply", target = CommandTarget.PLAYER)
|
||||
@Completer(name = "settings")
|
||||
public void apply(Context<Player> sender,
|
||||
ItemSettings settings) {
|
||||
Player player = sender.getSender();
|
||||
if (player.getInventory().getItemInMainHand().getType() != Material.AIR) {
|
||||
ItemStack applied = settings.applyItem(player.getInventory().getItemInMainHand());
|
||||
player.getInventory().setItemInMainHand(applied);
|
||||
}
|
||||
player.sendMessage("应用成功");
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,14 @@
|
||||
package cc.carm.plugin.commanditem.command;
|
||||
|
||||
import cc.carm.plugin.commanditem.CommandItemAPI;
|
||||
import cc.carm.plugin.commanditem.item.ItemSettings;
|
||||
import me.saiintbrisson.minecraft.command.argument.TypeAdapter;
|
||||
|
||||
public class ItemSettingsAdapter implements TypeAdapter<ItemSettings> {
|
||||
|
||||
@Override
|
||||
public ItemSettings convert(String s) {
|
||||
return CommandItemAPI.getItemsManager().getItemSettings(s);
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,18 @@
|
||||
package cc.carm.plugin.commanditem.command;
|
||||
|
||||
import cc.carm.plugin.commanditem.CommandItemAPI;
|
||||
import me.saiintbrisson.minecraft.command.command.Context;
|
||||
import me.saiintbrisson.minecraft.command.executor.CompleterExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class ItemSettingsCompleter implements CompleterExecutor<CommandSender> {
|
||||
|
||||
@Override
|
||||
public List<String> execute(Context<CommandSender> context) {
|
||||
return new ArrayList<>(CommandItemAPI.getItemsManager().listItemSettings().keySet());
|
||||
}
|
||||
|
||||
}
|
@ -2,6 +2,7 @@ package cc.carm.plugin.commanditem.item;
|
||||
|
||||
import cc.carm.plugin.commanditem.CommandItemAPI;
|
||||
import cc.carm.plugin.commanditem.manager.ConfigManager;
|
||||
import me.saiintbrisson.minecraft.command.argument.TypeAdapter;
|
||||
import org.bukkit.configuration.file.FileConfiguration;
|
||||
import org.bukkit.configuration.file.YamlConfiguration;
|
||||
import org.bukkit.entity.Player;
|
||||
@ -109,5 +110,4 @@ public class ItemSettings {
|
||||
ConfigManager.readListMap(config.getConfigurationSection("actions"), ItemActionGroup::read)
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user