Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从MySQL数据库中删除播放器_Java_Mysql_Bukkit - Fatal编程技术网

Java 从MySQL数据库中删除播放器

Java 从MySQL数据库中删除播放器,java,mysql,bukkit,Java,Mysql,Bukkit,我有一个命令可以从MySQL数据库中踢出一个播放器,但是当播放器离线时它不起作用;它不会从数据库中删除它们 这是我的密码: this.ms.connect(); PreparedStatement kick = this.ms.prepare("DELETE FROM `players` WHERE `nick` = ?"); try { kick.setString(1, args[0]); } catch (SQLException e) { e.printStackTra

我有一个命令可以从MySQL数据库中踢出一个播放器,但是当播放器离线时它不起作用;它不会从数据库中删除它们

这是我的密码:

this.ms.connect();
PreparedStatement kick = this.ms.prepare("DELETE FROM `players` WHERE `nick` = ?");

try {
    kick.setString(1, args[0]);
} catch (SQLException e) {
    e.printStackTrace();
}

this.ms.execute(kick);
我得到的错误是:

原因:java.lang.IllegalArgumentException:OfflinePlayer不能为null

这一点非常不清楚,但如果
nick
是玩家的用户名,则执行以下操作:

Bukkit.getOfflinePlayer(args[0]).getName()
请记住,
args[0]
应该是用户名,但如果是UUID,则执行以下操作:

Bukkit.getOfflinePlayer(UUID.fromString(args[0]))

如果无法通过确切名称找到脱机播放机,则需要使用播放机uuid。另外,请确保所有mySql请求都在新的异步线程上工作,而不是在主服务器线程中。

您的整个代码是什么?是否正确设置了
args[0]
?如果没有周围的代码,这很难理解。您应该使用UUID而不是名称<代码>Bukkit.getOfflinePlayer(uuid)