gpt4 book ai didi

java - 从服务器弃用了 getPlayer()

转载 作者:行者123 更新时间:2023-12-01 07:56:37 24 4
gpt4 key购买 nike

下面的代码给出一个错误,指出它已被弃用。

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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com