use of net.dzikoysk.funnyguilds.user.User in project FunnyGuilds by FunnyGuilds.
the class DatabaseGuild method deserialize.
public static Guild deserialize(ResultSet rs) {
if (rs == null) {
return null;
}
String id = null;
String name = null;
try {
id = rs.getString("uuid");
name = rs.getString("name");
String tag = rs.getString("tag");
String os = rs.getString("owner");
String dp = rs.getString("deputy");
String home = rs.getString("home");
String regionName = rs.getString("region");
String membersString = rs.getString("members");
boolean pvp = rs.getBoolean("pvp");
long born = rs.getLong("born");
long validity = rs.getLong("validity");
long attacked = rs.getLong("attacked");
long ban = rs.getLong("ban");
int lives = rs.getInt("lives");
FunnyGuilds plugin = FunnyGuilds.getInstance();
UserManager userManager = plugin.getUserManager();
if (name == null || tag == null || os == null) {
FunnyGuilds.getPluginLogger().error("Cannot deserialize guild! Caused by: uuid/name/tag/owner is null");
return null;
}
UUID uuid = UUID.randomUUID();
if (id != null && !id.isEmpty()) {
uuid = UUID.fromString(id);
}
Option<User> ownerOption = userManager.findByName(os);
if (ownerOption.isEmpty()) {
FunnyGuilds.getPluginLogger().error("Cannot deserialize guild! Caused by: owner (user instance) doesn't exist");
return null;
}
User owner = ownerOption.get();
Set<User> deputies = new HashSet<>();
if (dp != null && !dp.isEmpty()) {
deputies = UserUtils.getUsersFromString(ChatUtils.fromString(dp));
}
Set<User> members = new HashSet<>();
if (membersString != null && !membersString.equals("")) {
members = UserUtils.getUsersFromString(ChatUtils.fromString(membersString));
}
if (born == 0) {
born = System.currentTimeMillis();
}
if (validity == 0) {
validity = Instant.now().plus(plugin.getPluginConfiguration().validityStart).toEpochMilli();
}
if (lives == 0) {
lives = plugin.getPluginConfiguration().warLives;
}
final Object[] values = new Object[17];
values[0] = uuid;
values[1] = name;
values[2] = tag;
values[3] = owner;
values[4] = LocationUtils.parseLocation(home);
values[5] = plugin.getRegionManager().findByName(regionName).getOrNull();
values[6] = members;
values[7] = Sets.newHashSet();
values[8] = Sets.newHashSet();
values[9] = born;
values[10] = validity;
values[11] = attacked;
values[12] = lives;
values[13] = ban;
values[14] = deputies;
values[15] = pvp;
return DeserializationUtils.deserializeGuild(plugin.getPluginConfiguration(), plugin.getGuildManager(), values);
} catch (Exception ex) {
FunnyGuilds.getPluginLogger().error("Could not deserialize guild (id: " + id + ", name: " + name + ")", ex);
}
return null;
}
use of net.dzikoysk.funnyguilds.user.User in project FunnyGuilds by FunnyGuilds.
the class SQLDataModel method loadUsers.
public void loadUsers() {
SQLBasicUtils.getSelectAll(SQLDataModel.tabUsers).executeQuery(result -> {
while (result.next()) {
String userName = result.getString("name");
if (!UserUtils.validateUsername(userName)) {
FunnyGuilds.getPluginLogger().warning("Skipping loading of user '" + userName + "'. Name is invalid.");
continue;
}
User user = DatabaseUser.deserialize(result);
if (user != null) {
user.wasChanged();
}
}
});
FunnyGuilds.getPluginLogger().info("Loaded users: " + UserUtils.getUsers().size());
}
use of net.dzikoysk.funnyguilds.user.User in project FunnyGuilds by FunnyGuilds.
the class FlatDataModel method loadUsers.
private void loadUsers() {
File[] path = usersFolderFile.listFiles();
int errors = 0;
if (path == null) {
FunnyGuilds.getPluginLogger().warning("Users directory is empty");
return;
}
for (File file : path) {
if (file.length() == 0) {
continue;
}
String filenameWithoutExtension = StringUtils.removeEnd(file.getName(), ".yml");
if (!UserUtils.validateUUID(filenameWithoutExtension)) {
if (UserUtils.validateUsername(filenameWithoutExtension)) {
file = migrateUser(file);
if (file == null) {
continue;
}
} else {
FunnyGuilds.getPluginLogger().warning("Skipping loading of user file '" + file.getName() + "'. Name is invalid.");
continue;
}
}
User user = FlatUser.deserialize(file);
if (user == null) {
errors++;
continue;
}
user.wasChanged();
}
if (errors > 0) {
FunnyGuilds.getPluginLogger().error("Users load errors " + errors);
}
FunnyGuilds.getPluginLogger().info("Loaded users: " + UserUtils.getUsers().size());
}
use of net.dzikoysk.funnyguilds.user.User in project FunnyGuilds by FunnyGuilds.
the class DeserializationUtils method deserializeGuild.
@SuppressWarnings("unchecked")
public static Guild deserializeGuild(PluginConfiguration pluginConfiguration, GuildManager guildManager, Object[] values) {
if (values == null) {
FunnyGuilds.getPluginLogger().error("[Deserialize] Cannot deserialize guild! Caused by: null");
return null;
}
UUID guildUuid = (UUID) values[0];
String guildName = (String) values[1];
String rawGuildTag = (String) values[2];
String guildTag = pluginConfiguration.guildTagKeepCase ? rawGuildTag : pluginConfiguration.guildTagUppercase ? rawGuildTag.toUpperCase() : rawGuildTag.toLowerCase();
Guild guild = guildManager.findByUuid(guildUuid).orElseGet(() -> {
Guild newGuild = new Guild(guildUuid, guildName, guildTag);
guildManager.addGuild(newGuild);
return newGuild;
});
guild.setOwner((User) values[3]);
guild.setHome((Location) values[4]);
if (pluginConfiguration.regionsEnabled) {
guild.setRegion((Region) values[5]);
}
guild.setMembers((Set<User>) values[6]);
guild.setAllies((Set<Guild>) values[7]);
guild.setEnemies((Set<Guild>) values[8]);
guild.setBorn((long) values[9]);
guild.setValidity((long) values[10]);
guild.setProtection((long) values[11]);
guild.setLives((int) values[12]);
guild.setBan((long) values[13]);
guild.setDeputies((Set<User>) values[14]);
guild.setPvP((boolean) values[15]);
guild.deserializationUpdate();
return guild;
}
use of net.dzikoysk.funnyguilds.user.User in project FunnyGuilds by FunnyGuilds.
the class DeserializationUtils method deserializeUser.
public static User deserializeUser(UserManager userManager, Object[] values) {
UUID playerUniqueId = UUID.fromString((String) values[0]);
String playerName = (String) values[1];
User user = userManager.create(playerUniqueId, playerName);
user.getRank().setPoints((int) values[2]);
user.getRank().setKills((int) values[3]);
user.getRank().setDeaths((int) values[4]);
user.getRank().setAssists((int) values[5]);
user.getRank().setLogouts((int) values[6]);
long banTime = (long) values[7];
if (banTime > 0) {
user.setBan(new UserBan((String) values[8], banTime));
}
return user;
}
Aggregations