作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
下面的代码给出一个错误,指出它已被弃用。
Player target = Bukkit.getServer().getPlayer(args[0]);
这是我的插件:
package me.herobrine112211.ulticmdpack;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;
public class System extends JavaPlugin {
public void onEnable() {
Bukkit.getServer().getLogger().info("Ultimate Command Pack Plugin has been actived!");
}
public void onDisable() {
Bukkit.getServer().getLogger().info("Ultimate Command Pack Plugin has been disabled! This will give big problems to server.");
}
public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) {
if (!(sender instanceof Player)) {
sender.sendMessage(ChatColor.RED + "Console will never need owner support.");
return true;
}
Player player = (Player) sender;
Player target = Bukkit.getServer().getPlayer(args[0]);
if (cmd.getName().equalsIgnoreCase("contactowner")) {
player.sendMessage(ChatColor.GOLD + "Owner: Herobrine112211. Live chat skype: gangsteris33.");
}
if (cmd.getName().equalsIgnoreCase("heal")) {
if (args.length == 0) {
player.setHealth(20f);
player.sendMessage(ChatColor.GREEN + "Your health is now full!");
return true;
}
if (target == null) {
player.sendMessage(ChatColor.RED + "Player must be online to be healed!");
return true;
}
target.setHealth(20f);
target.sendMessage(ChatColor.GREEN + player.getName() + " healed you!");
player.sendMessage(ChatColor.GREEN + target.getName() + " is healed!");
}
if (cmd.getName().equalsIgnoreCase("feed")) {
if (args.length == 0) {
player.setFoodLevel(20);
player.sendMessage(ChatColor.GREEN + "Your hunger is now full!");
return true;
}
if (target == null) {
player.sendMessage(ChatColor.RED + "Player must be online to be feeded!");
return true;
}
target.setFoodLevel(20);
target.sendMessage(ChatColor.GREEN + player.getName() + " fed you!");
player.sendMessage(ChatColor.GREEN + target.getName() + " hunger is now full!");
}
return true;
}
}
我得到这个堆栈跟踪:
5:02:27 AM [ERROR] null
5:02:27 AM org.bukkit.command.CommandException: Unhandled exception executing command 'heal' in plugin UltimateCommandPack v1.0.0
5:02:27 AM at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[bukkit.jar:git-Bukkit-61ef214]
5:02:27 AM at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:140) ~[bukkit.jar:git-Bukkit-61ef214]
5:02:27 AM at org.bukkit.craftbukkit.v1_8_R2.CraftServer.dispatchCommand(CraftServer.java:625) ~[bukkit.jar:git-Bukkit-61ef214]
5:02:27 AM at net.minecraft.server.v1_8_R2.PlayerConnection.handleCommand(PlayerConnection.java:1077) [bukkit.jar:git-Bukkit-61ef214]
5:02:27 AM at net.minecraft.server.v1_8_R2.PlayerConnection.a(PlayerConnection.java:937) [bukkit.jar:git-Bukkit-61ef214]
5:02:27 AM at net.minecraft.server.v1_8_R2.PacketPlayInChat.a(SourceFile:37) [bukkit.jar:git-Bukkit-61ef214]
5:02:27 AM at net.minecraft.server.v1_8_R2.PacketPlayInChat.a(SourceFile:9) [bukkit.jar:git-Bukkit-61ef214]
5:02:27 AM at net.minecraft.server.v1_8_R2.PlayerConnectionUtils$1.run(SourceFile:13) [bukkit.jar:git-Bukkit-61ef214]
5:02:27 AM at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.7.0_75]
5:02:27 AM at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.7.0_75]
5:02:27 AM at net.minecraft.server.v1_8_R2.SystemUtils.a(SourceFile:60) [bukkit.jar:git-Bukkit-61ef214]
5:02:27 AM at net.minecraft.server.v1_8_R2.MinecraftServer.A(MinecraftServer.java:670) [bukkit.jar:git-Bukkit-61ef214]
5:02:27 AM at net.minecraft.server.v1_8_R2.DedicatedServer.A(DedicatedServer.java:336) [bukkit.jar:git-Bukkit-61ef214]
5:02:27 AM at net.minecraft.server.v1_8_R2.MinecraftServer.z(MinecraftServer.java:626) [bukkit.jar:git-Bukkit-61ef214]
5:02:27 AM at net.minecraft.server.v1_8_R2.MinecraftServer.run(MinecraftServer.java:534) [bukkit.jar:git-Bukkit-61ef214]
5:02:27 AM at java.lang.Thread.run(Unknown Source) [?:1.7.0_75]
5:02:27 AM Caused by: java.lang.ArrayIndexOutOfBoundsException: 0
5:02:27 AM at me.herobrine112211.ulticmdpack.System.onCommand(System.java:29) ~[?:?]
5:02:27 AM at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[bukkit.jar:git-Bukkit-61ef214]
5:02:27 AM ... 15 more
最佳答案
您收到的错误与该代码段无关。
java.lang.ArrayIndexOutOfBoundsException
:
Thrown to indicate that an array has been accessed with an illegal index. The index is either negative or greater than or equal to the size of the array.
args
可能会根据用户输入而改变。请参阅Check the arguments length来自official plugin tutorial .
if (args.length == 0) {
player.sendMessage("Please specify the target.");
return true;
}
弃用消息不是错误,而是警告。你总是可以忽略它,代码无论如何都会编译。您可能想隐藏它:将鼠标悬停在黄色突出显示的交叉文本上,然后单击添加@SuppressWarnings“弃用”。
来自Spigot Javadoc ,请注意Server.getPlayer(String)
未标记为 @Deprecated
。也许是 IDE 故障?尝试文件>>全部保存
。
关于java - 从服务器弃用了 getPlayer(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29327697/
我是一名优秀的程序员,十分优秀!