Java 无法找到命令并执行
我正在给我的minecraft服务器添加一个传送到这里的命令。每当我在服务器中键入命令时, 什么也没发生,甚至连“未知命令”消息都没有。我正确地设置了executor(因为它不是主类,就像我的其他命令一样工作得很好…并且该命令已在plugin.yml中注册):/不知道发生了什么…帮助? 我正在使用EclipseLuna和1.8spigetAPI 传送类Java 无法找到命令并执行,java,minecraft,eclipse-luna,Java,Minecraft,Eclipse Luna,我正在给我的minecraft服务器添加一个传送到这里的命令。每当我在服务器中键入命令时, 什么也没发生,甚至连“未知命令”消息都没有。我正确地设置了executor(因为它不是主类,就像我的其他命令一样工作得很好…并且该命令已在plugin.yml中注册):/不知道发生了什么…帮助? 我正在使用EclipseLuna和1.8spigetAPI 传送类 package me.Zahachos.ServerManager.commands; import java.util.HashMap; i
package me.Zahachos.ServerManager.commands;
import java.util.HashMap;
import java.util.UUID;
import me.Zahachos.ServerManager.Main;
import me.Zahachos.ServerManager.managers.MessageManager;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitRunnable;
public class Teleport implements CommandExecutor {
public static HashMap<UUID, Integer> tpa = new HashMap<UUID, Integer>();
public static HashMap<UUID, Integer> tph = new HashMap<UUID, Integer>();
public static HashMap<UUID, UUID> tpaccept = new HashMap<UUID, UUID>();
@Override
public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) {
if (cmd.getName().equalsIgnoreCase("tp")) {
if (sender.hasPermission("sm.tp.tp")) {
if (args.length == 0) {
MessageManager.getInstance().severe(sender, "Please specify a player!");
return true;
}
if (args.length == 1) {
if(!(sender instanceof Player)) {
MessageManager.getInstance().severe(sender, "The console connot teleport! Specify a second player!");
return true;
}
Player p = (Player) sender;
Player target = null;
for (Player test : Bukkit.getOnlinePlayers()) {
if (test.getName().equals(args[0])) {
target = test;
break;
}
}
if (target == null) {
MessageManager.getInstance().severe(p, "Either that player doesn't exist or he isn't online!");
return true;
}
MessageManager.getInstance().good(p, "You have been teleported to " + target.getName());
p.teleport(target);
MessageManager.getInstance().info(target, p.getName() + " has teleported to you!");
return true;
}
if (args.length == 2) {
Player target = null;
for (Player test : Bukkit.getOnlinePlayers()) {
if (test.getName().equals(args[0])) {
target = test;
break;
}
}
Player target1 = null;
for (Player test1 : Bukkit.getOnlinePlayers()) {
if (test1.getName().equals(args[1])) {
target1 = test1;
break;
}
}
if (target == null || target1 == null) {
sender.sendMessage(ChatColor.RED + "One of the players doesn't exist or isn't online!");
return true;
}
target.teleport(target1);
MessageManager.getInstance().info(target, target1.getName() + " was teleported to you by " + sender.getName() + ".");
MessageManager.getInstance().info(target1, "You were teleported to " + target.getName() + " by " + sender.getName() + ".");
sender.sendMessage(ChatColor.GREEN + target.getName() + " has been teleported to " + target1.getName() + ".");
}
if (args.length > 2) {
MessageManager.getInstance().severe(sender, "Too many arguments!");
return true;
}
}
MessageManager.getInstance().severe(sender, "Unfortunately you can't do that.");
return true;
}
if (cmd.getName().equalsIgnoreCase("tpall")) {
if (sender.hasPermission("sm.tp.tpall")) {
if (!(sender instanceof Player)) {
MessageManager.getInstance().severe(sender, "The console can't teleport players to him!");
return true;
}
if (args.length > 0) {
MessageManager.getInstance().severe(sender, "Too many arguments!");
return true;
}
Player p = (Player) sender;
for (Player player : Bukkit.getOnlinePlayers()) {
player.teleport(p);
MessageManager.getInstance().info(player, p.getName() + " has teleported everyone to him.");
}
MessageManager.getInstance().good(p, "Everyone one the server was teleported to you!");
return true;
}
MessageManager.getInstance().severe(sender, "Unfortunately you can't do that.");
return true;
}
if (cmd.getName().equalsIgnoreCase("tpa")) {
if (sender.hasPermission("sm.tp.tpa")) {
if (!(sender instanceof Player)) {
MessageManager.getInstance().severe(sender, "The console cannot teleport!");
return true;
}
Player p = (Player) sender;
if (args.length == 0) {
MessageManager.getInstance().severe(p, "Please specify a player!");
return true;
}
if (args.length == 1) {
Player target = null;
for (Player test : Bukkit.getOnlinePlayers()) {
if (test.getName().equals(args[0])) {
target = test;
break;
}
}
if (target == null) {
MessageManager.getInstance().severe(p, "Either that player doesn't exist or he isn't online!");
return true;
}
tpa.put(target.getUniqueId(), 60);
tpaccept.put(target.getUniqueId(), p.getUniqueId());
if (tpa.size() == 1) {
new BukkitRunnable() {
@Override
public void run() {
if (!tpa.isEmpty()) {
for (UUID uuid : tpa.keySet()) {
Player player = Bukkit.getPlayer(uuid);
tpa.put(uuid, tpa.get(uuid) - 1);
if (tpa.get(uuid) == 10) {
if (player.isOnline()) {
MessageManager.getInstance().info(player, "Your teleport request will expire in 10 seconds!");
}
}
if (tpa.get(uuid) == 0) {
if (player.isOnline()) {
MessageManager.getInstance().severe(player, "Your teleport request has expired!");
}
tpa.remove(uuid);
tpaccept.remove(tpaccept.values().remove(uuid));
if (tpa.isEmpty()) {
this.cancel();
}
}
}
} else {
this.cancel();
}
}
}.runTaskTimer(Main.plugin, 20L, 20L);
}
MessageManager.getInstance().custom(target, ChatColor.YELLOW + "Player " + p.getName() + " has requested to teleport to you! Use " + ChatColor.YELLOW + ChatColor.BOLD + "/tpaccept" + ChatColor.RESET + ChatColor.YELLOW + " to teleport him!");
return true;
}
MessageManager.getInstance().severe(p, "Too many arguments!");
return true;
}
MessageManager.getInstance().severe(sender, "Unfortunately you can't do that.");
return true;
}
if (cmd.getName().equalsIgnoreCase("tphere")) {
if (sender.hasPermission("sm.tp.tph")) {
if (!(sender instanceof Player)) {
MessageManager.getInstance().severe(sender, "The console cannot teleport!");
return true;
}
Player p = (Player) sender;
if (args.length == 0) {
MessageManager.getInstance().severe(p, "Please specify a player!");
return true;
}
if (args.length == 1) {
Player target = null;
for (Player test : Bukkit.getOnlinePlayers()) {
if (test.getName().equals(args[0])) {
target = test;
break;
}
}
if (target == null) {
MessageManager.getInstance().severe(p, "Either that player doesn't exist or he isn't online!");
return true;
}
tph.put(target.getUniqueId(), 60);
tpaccept.put(target.getUniqueId(), p.getUniqueId());
if (tph.size() == 1) {
new BukkitRunnable() {
@Override
public void run() {
if (!tph.isEmpty()) {
for (UUID uuid : tph.keySet()) {
Player player = Bukkit.getPlayer(uuid);
tph.put(uuid, tph.get(uuid) - 1);
if (tph.get(uuid) == 10) {
if (player.isOnline()) {
MessageManager.getInstance().info(player, "Your teleport request will expire in 10 seconds!");
}
}
if (tph.get(uuid) == 0) {
if (player.isOnline()) {
MessageManager.getInstance().severe(player, "Your teleport request has expired!");
}
tph.remove(uuid);
tpaccept.remove(tpaccept.values().remove(uuid));
if (tph.isEmpty()) {
this.cancel();
}
}
}
} else {
this.cancel();
}
}
}.runTaskTimer(Main.plugin, 20L, 20L);
}
MessageManager.getInstance().custom(target, ChatColor.YELLOW + "Player " + p.getName() + " has requested to teleport to you! Use " + ChatColor.YELLOW + ChatColor.BOLD + "/tpaccept" + ChatColor.RESET + ChatColor.YELLOW + " to teleport him!");
return true;
}
MessageManager.getInstance().severe(p, "Too many arguments!");
return true;
}
MessageManager.getInstance().severe(sender, "Unfortunately you can't do that.");
return true;
}
if (cmd.getName().equalsIgnoreCase("tpaccept")) {
if (sender.hasPermission("sm.tp.tpa")) {
if (!(sender instanceof Player)) {
MessageManager.getInstance().severe(sender, "The console cannot teleport!");
return true;
}
Player p = (Player) sender;
if (args.length == 0) {
if (tpa.containsKey(p.getUniqueId()) || tpaccept.containsKey(p.getUniqueId())) {
Player target = Bukkit.getPlayer(tpaccept.get(p.getUniqueId()));
target.teleport(p);
tpaccept.remove(p.getUniqueId());
tpa.remove(p.getUniqueId());
return true;
} else if (tpaccept.containsKey(p.getUniqueId()) || tpaccept.containsKey(p.getUniqueId())) {
Player target = Bukkit.getPlayer(tpaccept.get(p.getUniqueId()));
target.teleport(p);
tpaccept.remove(p.getUniqueId());
tpa.remove(p.getUniqueId());
return true;
} else {
MessageManager.getInstance().severe(p, "You don't have any active requests!");
return true;
}
}
MessageManager.getInstance().severe(p, "Too many arguments!");
return true;
}
MessageManager.getInstance().severe(sender, "Unfortunately you can't do that.");
return true;
}
return true;
}
}
plugin.yml
name: ServerManager
main: me.Zahachos.ServerManager.Main
authors: [Zahachos, KarateMan]
version: 0.02
description: This manages the Zaphno's Network.
commands:
heal:
usage: /<command> [player]
aliases: [health, gethealth]
description: Heal yourself and others.
feed:
usage: /<command> [player]
aliases: [food, getfood, hunger]
description: Feed yourself and others.
regenerate:
usage: /<command> [player]
aliases: [regen, regeneration]
description: Heal and feed yourself and others.
tp:
usage: /<command> [player] [player2]
aliases: [regen, regeneration]
description: Teleport to a player, or another player to one.
tpall:
usage: /<command>
aliases: [teleportall, teleporteveryone]
description: Teleport everyone to you.
tpa:
usage: /<command> [player]
aliases: [askteleport]
description: Ask a player to teleport to him.
tph:
usage: /<command> [player]
aliases: [teleporthere, teleporth]
description: Ask a player to teleport them to you.
tpaccept:
usage: /<command>
aliases: [teleportaccept, acceptteleport]
description: Accepts the last teleport request.
freeze:
usage: /<command> [username]
aliases: [freezeplayer]
description: Freeze or unfreeze a player!
warp:
usage: /<command> [warp_name]
description: Teleport to a saved location!
setwarp:
usage: /<command> [warp_name]
description: Set a warp location!
delwarp:
usage: /<command> [warp_name]
aliases: [deletewarp]
description: Delete a warp!
mute:
usage: /<command> [username] [duration] [reason]
aliases: [muteplayer]
description: Temporarily mute a player!
tempmute:
usage: /<command>
aliases: [muteplayer]
description: Mute a player!
unmute:
usage: /<command> [username]
aliases: [unmuteplayer]
description: Unmute a player!
tempban:
usage: /<command> [username] [duration] [reason]
aliases: [tempbanplayer]
description: Temporarily ban a player!
pardon:
usage: /<command> [username]
aliases: [pardonplayer, unban]
description: Pardon/Unban a player!
ban:
usage: /<command> [username] [reason]
aliases: [setbanned, banplayer]
description: Permanently ban a player!
kick:
usage: /<command> [username] [reason]
aliases: [setbanned, banplayer]
description: Kick a player!
spawn:
usage: /<command>
description: Go to the server spawn!
setspawn:
usage: /<command>
description: Set the server spawn!
permissions:
sm.tp.*:
description: Use all tp commands!
children:
sm.tp.tph: true
sm.tp.tpa: true
sm.tp.tp: true
sm.tp.tpall: true
default: op
sm.health.*:
description: Use all health commands!
children:
sm.health.heal: true
sm.health.feed: true
sm.health.regen: true
default: op
sm.mute.*:
description: Use all mute commands!
children:
sm.mute.mute: true
sm.mute.unmute: true
sm.mute.canChat: true
sm.mute.tempmute: true
default: op
sm.ban.*:
description: Use all ban commands!
children:
sm.ban.pardon: true
sm.ban.ban: true
sm.ban.kick: true
sm.ban.tempban: true
default: op
sm.warp.*:
description: Use all warp commands!
children:
sm.warp.set: true
sm.warp.warp: true
sm.warp.delete: true
default: op
sm.heath.heal:
default: op
description: Heal a player!
sm.heath.feed:
default: op
description: Feed a player!
sm.heath.regen:
default: op
description: Heal and feed a player!
sm.tp.tp:
default: op
description: Teleport to a player, or another player to one!
sm.tp.tpall:
default: op
description: Teleport everyone to you!
sm.tp.tph:
default: op
description: Ask a player to teleport them to you.
sm.tp.tpa:
default: op
description: Teleport only if a player accepts!
sm.mute.mute:
default: op
description: Mute a player!
sm.mute.unmute:
default: op
description: Unmute a player!
sm.mute.canChat:
default: op
description: Sets if a muted player can chat!
sm.ban.tempban:
default: op
description: Temporarily ban a player!
sm.ban.pardon:
default: op
description: Pardon/Unban a player!
sm.ban.ban:
default: op
description: Permanently ban a player!
sm.ban.kick:
default: op
description: Kick a player!
sm.mute.tempmute:
default: op
description: Temporarily mute a player!
sm.freeze:
default: op
description: Freeze or unfreeze a player!
sm.warp.warp:
default: op
description: Teleport to a saved location!
sm.warp.set:
default: op
description: Set a warp location!
sm.warp.delete:
default: op
description: Delete a warp!
sm.setspawn:
default: op
description: Set the server spawn!
名称:服务器管理器
main:me.Zahachos.ServerManager.main
作者:[Zahachos,KarateMan]
版本:0.02
描述:管理Zaphno的网络。
命令:
治愈:
用法:/[player]
别名:[健康,gethealth]
描述:治愈自己和他人。
提要:
用法:/[player]
别名:[食物,获取食物,饥饿]
描述:养活自己和他人。
重新生成:
用法:/[player]
别名:[再生,再生]
描述:治愈并喂养自己和他人。
tp:
用法:/[player][player2]
别名:[再生,再生]
描述:传送到一个玩家,或另一个玩家传送到一个玩家。
t电话:
用法:/
别名:[传送所有,传送每个人]
描述:传送每个人到你身边。
tpa:
用法:/[player]
别名:[askteleport]
描述:要求玩家传送给他。
tph:
用法:/[player]
别名:[Teleporther,teleporth]
描述:请玩家将它们传送给你。
t接受:
用法:/
别名:[传送接受,传送接受]
描述:接受最后一次传送请求。
冻结:
用法:/[用户名]
别名:[冻结玩家]
描述:冻结或解冻玩家!
弯曲:
用法:/[warp\u name]
描述:传送到保存的位置!
setwarp:
用法:/[warp\u name]
描述:设置扭曲位置!
德尔瓦普:
用法:/[warp\u name]
别名:[deletewarp]
描述:删除扭曲!
静音:
用法:/[用户名][持续时间][原因]
别名:[muteplayer]
描述:暂时使玩家静音!
临时静音:
用法:/
别名:[muteplayer]
说明:使玩家静音!
取消静音:
用法:/[用户名]
别名:[取消静音播放器]
描述:取消对玩家的静音!
坦潘:
用法:/[用户名][持续时间][原因]
别名:[tempbanplayer]
描述:暂时禁止玩家!
请原谅:
用法:/[用户名]
别名:[玩家,unban]
描述:赦免/解除对玩家的禁令!
禁令:
用法:/[用户名][原因]
别名:[受挫,banplayer]
描述:永久禁止玩家!
踢:
用法:/[用户名][原因]
别名:[受挫,banplayer]
描述:踢一个球员!
产卵:
用法:/
描述:转到服务器繁殖!
固定兵:
用法:/
描述:设置服务器繁殖!
权限:
sm.tp.*:
说明:使用所有tp命令!
儿童:
sm.tp.tph:正确
sm.tp.tpa:正确
sm.tp.tp:正确
sm.tp.tpall:正确
默认值:op
sm.健康。*:
说明:使用所有运行状况命令!
儿童:
sm.health.heal:正确
sm.health.feed:正确
sm.health.regen:对
默认值:op
sm.mute.*:
说明:使用所有静音命令!
儿童:
sm.mute.mute:true
sm.mute.unmute:true
是的
sm.mute.tempmute:真
默认值:op
sm.ban.*:
说明:使用所有ban命令!
儿童:
请原谅:是的
sm.ban.ban:对
sm.ban.kick:对
sm.ban.tempban:对
默认值:op
sm.warp.*:
描述:使用所有扭曲命令!
儿童:
sm.warp.set:真
sm.warp.warp:对
sm.warp.delete:true
默认值:op
sm.heath.heal:
默认值:op
描述:治疗一个玩家!
sm.heath.feed:
默认值:op
描述:喂一个玩家!
sm.heath.regen:
默认值:op
描述:治疗并喂养玩家!
sm.tp.tp:
默认值:op
描述:传送到一个玩家,或另一个玩家到一个!
sm.tp.tpall:
默认值:op
描述:传送每个人到你身边!
sm.tp.tph:
默认值:op
描述:请玩家将它们传送给你。
sm.tp.tpa:
默认值:op
说明:仅当玩家接受时进行远程传送!
sm.mute.mute:
默认值:op
说明:使玩家静音!
sm.mute.unmute:
默认值:op
描述:取消对玩家的静音!
sm.mute.canChat:
默认值:op
描述:设置静音玩家是否可以聊天!
sm.ban.tempban:
默认值:op
描述:暂时禁止玩家!
请原谅:
默认值:op
描述:赦免/解除对玩家的禁令!
sm.ban.ban:
默认值:op
描述:永久禁止玩家!
sm.ban.kick:
默认值:op
描述:踢一个球员!
sm.mute.tempmute:
默认值:op
描述:暂时使玩家静音!
sm.冻结:
默认值:op
描述:冻结或解冻玩家!
sm.warp.warp:
默认值:op
描述:传送到保存的位置!
sm.warp.set:
默认值:op
描述:设置扭曲位置!
sm.warp.delete:
默认值:op
描述:删除扭曲!
sm.setspawn:
默认值:op
描述:设置服务器繁殖!
根据您所说的,那么问题一定出在您的插件文件中,而不是plugin.ym或main类中。
name: ServerManager
main: me.Zahachos.ServerManager.Main
authors: [Zahachos, KarateMan]
version: 0.02
description: This manages the Zaphno's Network.
commands:
heal:
usage: /<command> [player]
aliases: [health, gethealth]
description: Heal yourself and others.
feed:
usage: /<command> [player]
aliases: [food, getfood, hunger]
description: Feed yourself and others.
regenerate:
usage: /<command> [player]
aliases: [regen, regeneration]
description: Heal and feed yourself and others.
tp:
usage: /<command> [player] [player2]
aliases: [regen, regeneration]
description: Teleport to a player, or another player to one.
tpall:
usage: /<command>
aliases: [teleportall, teleporteveryone]
description: Teleport everyone to you.
tpa:
usage: /<command> [player]
aliases: [askteleport]
description: Ask a player to teleport to him.
tph:
usage: /<command> [player]
aliases: [teleporthere, teleporth]
description: Ask a player to teleport them to you.
tpaccept:
usage: /<command>
aliases: [teleportaccept, acceptteleport]
description: Accepts the last teleport request.
freeze:
usage: /<command> [username]
aliases: [freezeplayer]
description: Freeze or unfreeze a player!
warp:
usage: /<command> [warp_name]
description: Teleport to a saved location!
setwarp:
usage: /<command> [warp_name]
description: Set a warp location!
delwarp:
usage: /<command> [warp_name]
aliases: [deletewarp]
description: Delete a warp!
mute:
usage: /<command> [username] [duration] [reason]
aliases: [muteplayer]
description: Temporarily mute a player!
tempmute:
usage: /<command>
aliases: [muteplayer]
description: Mute a player!
unmute:
usage: /<command> [username]
aliases: [unmuteplayer]
description: Unmute a player!
tempban:
usage: /<command> [username] [duration] [reason]
aliases: [tempbanplayer]
description: Temporarily ban a player!
pardon:
usage: /<command> [username]
aliases: [pardonplayer, unban]
description: Pardon/Unban a player!
ban:
usage: /<command> [username] [reason]
aliases: [setbanned, banplayer]
description: Permanently ban a player!
kick:
usage: /<command> [username] [reason]
aliases: [setbanned, banplayer]
description: Kick a player!
spawn:
usage: /<command>
description: Go to the server spawn!
setspawn:
usage: /<command>
description: Set the server spawn!
permissions:
sm.tp.*:
description: Use all tp commands!
children:
sm.tp.tph: true
sm.tp.tpa: true
sm.tp.tp: true
sm.tp.tpall: true
default: op
sm.health.*:
description: Use all health commands!
children:
sm.health.heal: true
sm.health.feed: true
sm.health.regen: true
default: op
sm.mute.*:
description: Use all mute commands!
children:
sm.mute.mute: true
sm.mute.unmute: true
sm.mute.canChat: true
sm.mute.tempmute: true
default: op
sm.ban.*:
description: Use all ban commands!
children:
sm.ban.pardon: true
sm.ban.ban: true
sm.ban.kick: true
sm.ban.tempban: true
default: op
sm.warp.*:
description: Use all warp commands!
children:
sm.warp.set: true
sm.warp.warp: true
sm.warp.delete: true
default: op
sm.heath.heal:
default: op
description: Heal a player!
sm.heath.feed:
default: op
description: Feed a player!
sm.heath.regen:
default: op
description: Heal and feed a player!
sm.tp.tp:
default: op
description: Teleport to a player, or another player to one!
sm.tp.tpall:
default: op
description: Teleport everyone to you!
sm.tp.tph:
default: op
description: Ask a player to teleport them to you.
sm.tp.tpa:
default: op
description: Teleport only if a player accepts!
sm.mute.mute:
default: op
description: Mute a player!
sm.mute.unmute:
default: op
description: Unmute a player!
sm.mute.canChat:
default: op
description: Sets if a muted player can chat!
sm.ban.tempban:
default: op
description: Temporarily ban a player!
sm.ban.pardon:
default: op
description: Pardon/Unban a player!
sm.ban.ban:
default: op
description: Permanently ban a player!
sm.ban.kick:
default: op
description: Kick a player!
sm.mute.tempmute:
default: op
description: Temporarily mute a player!
sm.freeze:
default: op
description: Freeze or unfreeze a player!
sm.warp.warp:
default: op
description: Teleport to a saved location!
sm.warp.set:
default: op
description: Set a warp location!
sm.warp.delete:
default: op
description: Delete a warp!
sm.setspawn:
default: op
description: Set the server spawn!