Retrieving ResultSets correctly

This commit is contained in:
Paul Reilly
2023-03-31 00:52:53 -05:00
parent f53ba1bd76
commit 997210a16f
7 changed files with 216 additions and 129 deletions

View File

@ -4,15 +4,13 @@ import me.totalfreedom.totalfreedommod.TotalFreedomMod;
import me.totalfreedom.totalfreedommod.player.FPlayer;
import me.totalfreedom.totalfreedommod.rank.DisplayableGroup;
import me.totalfreedom.totalfreedommod.rank.GroupProvider;
import me.totalfreedom.totalfreedommod.util.FLog;
import me.totalfreedom.totalfreedommod.sql.ResultSetProvider;
import me.totalfreedom.totalfreedommod.util.FUtil;
import org.apache.commons.lang.StringUtils;
import org.bukkit.Bukkit;
import org.bukkit.Server;
import org.bukkit.entity.Player;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.*;
public class Admin
@ -32,23 +30,22 @@ public class Admin
this.ips.add(FUtil.getIp(player));
}
public Admin(ResultSet resultSet)
public Admin(ResultSetProvider resultSet)
{
try
if (resultSet.getString("uuid") == null)
{
this.uuid = UUID.fromString(resultSet.getString("uuid"));
this.active = resultSet.getBoolean("active");
this.rank = GroupProvider.fromArgument(resultSet.getString("rank")).getGroup();
this.ips.clear();
this.ips.addAll(FUtil.stringToList(resultSet.getString("ips")));
this.lastLogin = new Date(resultSet.getLong("last_login"));
this.commandSpy = resultSet.getBoolean("command_spy");
this.potionSpy = resultSet.getBoolean("potion_spy");
this.acFormat = resultSet.getString("ac_format");
} catch (SQLException e)
{
FLog.severe("Failed to load admin: " + e.getMessage());
throw new IllegalArgumentException("Failed to load admin, as the UUID is null.");
}
this.uuid = UUID.fromString(resultSet.getString("uuid"));
this.active = resultSet.getBoolean("active");
this.rank = GroupProvider.fromArgument(resultSet.getString("rank")).getGroup();
this.ips.clear();
this.ips.addAll(FUtil.stringToList(resultSet.getString("ips")));
this.lastLogin = new Date(resultSet.getLong("last_login"));
this.commandSpy = resultSet.getBoolean("command_spy");
this.potionSpy = resultSet.getBoolean("potion_spy");
this.acFormat = resultSet.getString("ac_format");
}
@Override
@ -70,15 +67,15 @@ public class Admin
public Map<String, Object> toSQLStorable()
{
HashMap<String, Object> map = new HashMap<>();
map.put("uuid", uuid.toString());
map.put("active", active);
map.put("rank", rank.toString());
map.put("ips", FUtil.listToString(ips));
map.put("last_login", lastLogin.getTime());
map.put("command_spy", commandSpy);
map.put("potion_spy", potionSpy);
map.put("ac_format", acFormat);
return map;
map.put("uuid", uuid.toString());
map.put("active", active);
map.put("rank", rank.toString());
map.put("ips", FUtil.listToString(ips));
map.put("last_login", lastLogin.getTime());
map.put("command_spy", commandSpy);
map.put("potion_spy", potionSpy);
map.put("ac_format", acFormat);
return map;
}