Java 从MySQL数据库中删除播放器
我有一个命令可以从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
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)