【发布时间】:2014-08-07 22:06:12
【问题描述】:
这只是插件的开始,以后还会有更多。这就是我想要的:对于/bounty <name> <amount>,我希望能够读取在金额上读取的内容,以制作像int a = args[1] 这样的变量,但我不知道该怎么做。
我已经尝试过了,但它给了我一些错误。我也想要它,所以它只能是命令上的数字。我使用的是 bukkit 版本:craftbukkit-1.7.10-R0.1-20140804.183445-7
这是我的代码:
public class Main extends JavaPlugin {
public void onEnable() {
Bukkit.getServer().getLogger().info("[Bounty] Enabled");
Bukkit.getServer().getLogger().info("[Bounty] Developed by ITaco_v2");
}
public void onDisable() {
Bukkit.getServer().getLogger().info("[Bounty] Disabled");
}
public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) {
if ( !(sender instanceof Player)) {
sender.sendMessage(ChatColor.RED + "[" + ChatColor.GREEN + "Bounty" + ChatColor.RED + "] " + ChatColor.GOLD + "In game use only!");
return true;
}
if (cmd.getName().equalsIgnoreCase("bounty")) {
if (sender.hasPermission("bounty.setbounty"));
if (args.length == 0) {
sender.sendMessage(ChatColor.RED + "Please specify a Player and a bounty amount.");
sender.sendMessage(ChatColor.GREEN + "Like this: /bounty <playername> <amount>");
return true;
}
Player target = Bukkit.getServer().getPlayer(args[0]);
if (target == null) {
sender.sendMessage(ChatColor.RED + "Could not find player!");
return true;
}
if (target != null) {
sender.sendMessage(ChatColor.RED + "Please specify a bounty amount.");
sender.sendMessage(ChatColor.GREEN + "Like this: /bounty " + args[0] + " <amount>");
return true;
}
}
return false;
}
}
【问题讨论】:
-
随机指针:你能存储对
Bukkit.getServer().getLogger()的引用吗?可能会使您的日志记录过程更容易。 :) -
另外,不要抑制弃用警告。不推荐使用 API 是有原因的。并且没有必要将
Player变量设为final。一旦方法返回并有资格进行垃圾收集,它就会失去作用域,因此您只是无缘无故地强制 JVM 在 permgen 中分配空间。 -
its given me some errors请在您的帖子中包含它们,您使用的是什么版本的 Bukkit? -
@MrLore 该代码没有给我任何错误
-
您不需要第 26 行的
if语句。