我正在尝试编写一个 minecraft bukkit 插件,我想使用 mysql。
我设置 mysql 和 sqlgetter 没问题。在我的另一个类中,我想调用 sqlgetter 函数,所以我放置了构造函数,但是每当我通过构造函数调用函数时,它都会返回 null。
我尝试了日食建议的一切。但我有点卡住了。启动服务器时我没有遇到错误,但正如我所说,当我使用命令 sqlgetter 构造函数时返回 null。
其他类调用函数
package net.linex.komutlar;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import net.linex.mysql.SQLGetter;
public class TarafSecim implements CommandExecutor{
private SQLGetter sqlgetter;
public TarafSecim(SQLGetter sqlgetter) {
this.sqlgetter = sqlgetter;
}
@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
Player p = (Player) sender;
if(label.equalsIgnoreCase("side")) {
if(args[0] == null) {
p.sendMessage("You can choose Red or Blue sides");
}
if(args[0].equalsIgnoreCase("red")) {
if(!sqlgetter.tarafvar(p.getUniqueId())) {
sqlgetter.tarafEkle(p.getUniqueId(), "kirmizi");
}else {
p.sendMessage("You are already in a side.");
}
}
if(args[0].equalsIgnoreCase("blue")) {
if(!sqlgetter.tarafvar(p.getUniqueId())) {
sqlgetter.tarafEkle(p.getUniqueId(), "mavi");
}else {
p.sendMessage("You are already in a side.");
}
}
}
return false;
}
}
SQLGETTER 类
public class SQLGetter {
private Main plugin;
public SQLGetter(Main plugin) {
this.plugin = plugin;
}
public void createTable() {
PreparedStatement ps;
try {
ps = plugin.mysql.getConnection().prepareStatement("CREATE TABLE IF NOT EXISTS taraf" + "(NAME VARCHAR(100),UUID VARCHAR(100), TARAF VARCHAR(100), PRIMARY KEY(NAME))");
ps.executeUpdate();
}catch(SQLException e) {
e.printStackTrace();
}
}
public void createPlayer(Player p) {
PreparedStatement ps;
try {
UUID uuid = p.getUniqueId();
ps = plugin.mysql.getConnection().prepareStatement("SELECT * FROM taraf WHERE UUID=?");
ps.setString(1, uuid.toString());
ResultSet results = ps.executeQuery();
results.next();
if(!exist(uuid)) {
PreparedStatement ps2 = plugin.mysql.getConnection().prepareStatement("INSERT IGNORE INFO taraf "
+ "(NAME,UUID) VALUES(?,?)");
ps2.setString(1, p.getName());
ps2.setString(2, p.getUniqueId().toString());
ps2.executeUpdate();
return;
}
}catch(SQLException e) {
e.printStackTrace();
}
}