Search in sources :

Example 1 with User

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;
}
Also used : User(net.dzikoysk.funnyguilds.user.User) FunnyGuilds(net.dzikoysk.funnyguilds.FunnyGuilds) UserManager(net.dzikoysk.funnyguilds.user.UserManager) UUID(java.util.UUID) HashSet(java.util.HashSet)

Example 2 with User

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());
}
Also used : User(net.dzikoysk.funnyguilds.user.User)

Example 3 with User

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());
}
Also used : User(net.dzikoysk.funnyguilds.user.User) File(java.io.File)

Example 4 with User

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;
}
Also used : User(net.dzikoysk.funnyguilds.user.User) UUID(java.util.UUID) Guild(net.dzikoysk.funnyguilds.guild.Guild)

Example 5 with User

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;
}
Also used : User(net.dzikoysk.funnyguilds.user.User) UserBan(net.dzikoysk.funnyguilds.user.UserBan) UUID(java.util.UUID)

Aggregations

User (net.dzikoysk.funnyguilds.user.User)64 Guild (net.dzikoysk.funnyguilds.guild.Guild)34 FunnyCommand (net.dzikoysk.funnycommands.stereotypes.FunnyCommand)27 AbstractFunnyCommand (net.dzikoysk.funnyguilds.feature.command.AbstractFunnyCommand)27 Player (org.bukkit.entity.Player)23 Formatter (panda.utilities.text.Formatter)15 PluginConfiguration (net.dzikoysk.funnyguilds.config.PluginConfiguration)12 Option (panda.std.Option)11 FunnyGuilds (net.dzikoysk.funnyguilds.FunnyGuilds)10 Region (net.dzikoysk.funnyguilds.guild.Region)10 UserManager (net.dzikoysk.funnyguilds.user.UserManager)10 Location (org.bukkit.Location)8 List (java.util.List)7 EventHandler (org.bukkit.event.EventHandler)7 SimpleEventHandler (net.dzikoysk.funnyguilds.event.SimpleEventHandler)6 UserCache (net.dzikoysk.funnyguilds.user.UserCache)6 Bukkit (org.bukkit.Bukkit)6 HookManager (net.dzikoysk.funnyguilds.feature.hooks.HookManager)5 ChatUtils (net.dzikoysk.funnyguilds.shared.bukkit.ChatUtils)5 Map (java.util.Map)4