Java 如何使我的代码返回一个";无效数字“;如果玩家键入/启动,则向其发送消息<;notaninteger>;或/启动字符串 导入org.bukkit.ChatColor; 导入org.bukkit.command.command; 导入org.bukkit.command.CommandExecutor; 导入org.bukkit.command.CommandSender; 导入org.bukkit.entity.Player; 公共类启动实现CommandExecutor{ @凌驾 公共布尔onCommand(CommandSender-sender、Command命令、字符串标签、字符串[]args){ if(label.equalsIgnoreCase(“启动”)| | label.equalsIgnoreCase(“l”)){ 如果(!(播放机的发送方实例)){ sender.sendMessage(ChatColor.translateAlternateColorCodes('&',“&7[&dHi&bMessage&7]&4无效实体”); 返回true; } 玩家=(玩家)发送者; //是/发射还是/发射 如果(args.length==0){ player.sendMessage(ChatColor.translateAlternateColorCodes(“&”、“&7[&dHi&bMessage&7]&2在&a3中启动”); 试一试{ 睡眠(1000); player.sendMessage(ChatColor.translateAlternateColorCodes(“&”、“&7[&dHi&bMessage&7]&2在&62”中启动); }捕捉(中断异常e){ System.err.println(e.getMessage()); } 试一试{ 睡眠(1000); player.sendMessage(ChatColor.translateAlternateColorCodes('&',“&7[&dHi&bMessage&7]&2在&c1中启动”); }捕捉(中断异常e){ System.err.println(e.getMessage()); } player.setVelocity(player.getLocation().getDirection().multiply(2.setY)(1.5)); 返回true; } //启动,但使用args player.sendMessage(ChatColor.translateAlternateColorCodes(“&”、“&7[&dHi&bMessage&7]&2在&a3中启动”); 试一试{ 睡眠(1000); player.sendMessage(ChatColor.translateAlternateColorCodes(“&”、“&7[&dHi&bMessage&7]&2在&62”中启动); }捕捉(中断异常e){ System.err.println(e.getMessage()); } 试一试{ 睡眠(1000); player.sendMessage(ChatColor.translateAlternateColorCodes('&',“&7[&dHi&bMessage&7]&2在&c1中启动”); }捕捉(中断异常e){ System.err.println(e.getMessage()); } setVelocity(player.getLocation().getDirection().multiply(Integer.parseInt(args[0])).setY(1.5)); player.setHealth(20.0); 返回true; } 返回false; }}
也许我可以添加一个if语句或一个带有非整数异常的catch? 请耐心一点,因为我是一名新的年轻开发人员,我看到如果有人不知道如何正确设置问题的格式,人们会感到不安/生气。 同样,正如标题中所述,我的问题是: 如果玩家在“//launch”之后键入/launch或/launch字符串,但使用args,我如何使我的代码向玩家返回“无效数字”消息?您必须检查Java 如何使我的代码返回一个";无效数字“;如果玩家键入/启动,则向其发送消息<;notaninteger>;或/启动字符串 导入org.bukkit.ChatColor; 导入org.bukkit.command.command; 导入org.bukkit.command.CommandExecutor; 导入org.bukkit.command.CommandSender; 导入org.bukkit.entity.Player; 公共类启动实现CommandExecutor{ @凌驾 公共布尔onCommand(CommandSender-sender、Command命令、字符串标签、字符串[]args){ if(label.equalsIgnoreCase(“启动”)| | label.equalsIgnoreCase(“l”)){ 如果(!(播放机的发送方实例)){ sender.sendMessage(ChatColor.translateAlternateColorCodes('&',“&7[&dHi&bMessage&7]&4无效实体”); 返回true; } 玩家=(玩家)发送者; //是/发射还是/发射 如果(args.length==0){ player.sendMessage(ChatColor.translateAlternateColorCodes(“&”、“&7[&dHi&bMessage&7]&2在&a3中启动”); 试一试{ 睡眠(1000); player.sendMessage(ChatColor.translateAlternateColorCodes(“&”、“&7[&dHi&bMessage&7]&2在&62”中启动); }捕捉(中断异常e){ System.err.println(e.getMessage()); } 试一试{ 睡眠(1000); player.sendMessage(ChatColor.translateAlternateColorCodes('&',“&7[&dHi&bMessage&7]&2在&c1中启动”); }捕捉(中断异常e){ System.err.println(e.getMessage()); } player.setVelocity(player.getLocation().getDirection().multiply(2.setY)(1.5)); 返回true; } //启动,但使用args player.sendMessage(ChatColor.translateAlternateColorCodes(“&”、“&7[&dHi&bMessage&7]&2在&a3中启动”); 试一试{ 睡眠(1000); player.sendMessage(ChatColor.translateAlternateColorCodes(“&”、“&7[&dHi&bMessage&7]&2在&62”中启动); }捕捉(中断异常e){ System.err.println(e.getMessage()); } 试一试{ 睡眠(1000); player.sendMessage(ChatColor.translateAlternateColorCodes('&',“&7[&dHi&bMessage&7]&2在&c1中启动”); }捕捉(中断异常e){ System.err.println(e.getMessage()); } setVelocity(player.getLocation().getDirection().multiply(Integer.parseInt(args[0])).setY(1.5)); player.setHealth(20.0); 返回true; } 返回false; }},java,plugins,minecraft,Java,Plugins,Minecraft,也许我可以添加一个if语句或一个带有非整数异常的catch? 请耐心一点,因为我是一名新的年轻开发人员,我看到如果有人不知道如何正确设置问题的格式,人们会感到不安/生气。 同样,正如标题中所述,我的问题是: 如果玩家在“//launch”之后键入/launch或/launch字符串,但使用args,我如何使我的代码向玩家返回“无效数字”消息?您必须检查args[0]是否为整数。我建议为此定义一种方法,如: import org.bukkit.ChatColor; import org.bukk
args[0]
是否为整数。我建议为此定义一种方法,如:
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
public class launch implements CommandExecutor {
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (label.equalsIgnoreCase("launch") || label.equalsIgnoreCase("l")) {
if (!(sender instanceof Player)) {
sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&7[&dHi&bMessage&7] &4Invalid Entity"));
return true;
}
Player player = (Player) sender;
//Does /launch or /launch <amplifier>
if (args.length == 0) {
player.sendMessage(ChatColor.translateAlternateColorCodes('&', "&7[&dHi&bMessage&7] &2Launching in &a3"));
try {
Thread.sleep(1000);
player.sendMessage(ChatColor.translateAlternateColorCodes('&', "&7[&dHi&bMessage&7] &2Launching in &62"));
} catch (InterruptedException e) {
System.err.println(e.getMessage());
}
try {
Thread.sleep(1000);
player.sendMessage(ChatColor.translateAlternateColorCodes('&', "&7[&dHi&bMessage&7] &2Launching in &c1"));
} catch (InterruptedException e) {
System.err.println(e.getMessage());
}
player.setVelocity(player.getLocation().getDirection().multiply(2).setY(1.5));
return true;
}
//Launch but with args
player.sendMessage(ChatColor.translateAlternateColorCodes('&', "&7[&dHi&bMessage&7] &2Launching in &a3"));
try {
Thread.sleep(1000);
player.sendMessage(ChatColor.translateAlternateColorCodes('&', "&7[&dHi&bMessage&7] &2Launching in &62"));
} catch (InterruptedException e) {
System.err.println(e.getMessage());
}
try {
Thread.sleep(1000);
player.sendMessage(ChatColor.translateAlternateColorCodes('&', "&7[&dHi&bMessage&7] &2Launching in &c1"));
} catch (InterruptedException e) {
System.err.println(e.getMessage());
}
player.setVelocity(player.getLocation().getDirection().multiply(Integer.parseInt(args[0])).setY(1.5));
player.setHealth(20.0);
return true;
}
return false;
}}
在开始倒计时之前,您可以添加如下内容:
public boolean isInteger(String arg) {
try {
Integer.parseInt(arg);
} catch (NumberFormatException e) {
return false;
}
return true;
}
美丽的!作品非常感谢!
if (!isInteger(args[0])) {
player.sendMessage("Invalid number");
return true;
}