Witajcie, potrzebuje pomocy w asynchronicznym zapytaniu MySQL, aktualnie korzystam z zapytań w głównym wątku co nie jest zbyt dobrym rozwiązaniem, gdyż wątek czeka na odpowiedź przez co jest wielki STOP(lag) na serwerze. Oto mój aktualny kod i metoda w którym dostaje odpowiedź:
Klasa BAN
public class Ban extends Command implements TextBase, Core
{
public Ban()
{
super("ban");
setUsage(USAGE + "/ban ");
setPermissionMessage(PERM_MODERATOR);
}
@Override
public boolean execute(CommandSender sender, String s, String[] args)
{
if(sender instanceof Player)
{
Player p = (Player) sender;
String GROUP = GettersMySQL.getPrzywilej(p);
//dalszy kod nie ważny
return false;
}
}Metoda GettersMySQL.getPrzywilej()
public static String getPrzywilej(final Player p)
{
String bankrupt = null;
try
{
//GET PLAYERS TABLE = String GET_PLAYERS_TABLE = "SELECT * FROM `GRACZE` WHERE NICK = '{NICK}';";
ResultSet result = statement.executeQuery(GET_PLAYERS_TABLE.replace("{NICK}", p.getName()));
if(result.next())
{
bankrupt = result.getString("PRZYWILEJ");
}
}
catch (SQLException e)
{
Bukkit.getLogger().log(Level.SEVERE, "[MySQL] Nie udało się pobrać przywileju (MySQL#getPrzywilej)");
e.printStackTrace();
}
return bankrupt;
}Linki do kodów: Klasa Ban Metoda GettersMySQL.getPrzywilej
Nie bardzo mam pomysł jak zdobyć rangę gracza przy zapytaniu asynchronicznym, pomóżcie mi! 😦
