Search in sources :

Example 1 with Guild

use of net.dzikoysk.funnyguilds.guild.Guild in project FunnyGuilds by FunnyGuilds.

the class DataModel method validateLoadedData.

default void validateLoadedData() {
    FunnyGuilds plugin = FunnyGuilds.getInstance();
    GuildManager guildManager = plugin.getGuildManager();
    RegionManager regionManager = plugin.getRegionManager();
    if (!plugin.getPluginConfiguration().regionsEnabled) {
        return;
    }
    Set<String> guilds = Entity.names(guildManager.getGuilds());
    Set<String> regions = Entity.names(regionManager.getRegions());
    int repaired = 0;
    for (Guild guild : guildManager.getGuilds()) {
        if (regions.contains(guild.getName())) {
            guilds.remove(guild.getName());
            continue;
        }
        guildManager.deleteGuild(plugin, guild);
        repaired++;
    }
    guilds = Entity.names(guildManager.getGuilds());
    regions = Entity.names(regionManager.getRegions());
    for (Region region : regionManager.getRegions()) {
        if (guilds.contains(region.getName())) {
            regions.remove(region.getName());
            continue;
        }
        regionManager.deleteRegion(plugin.getDataModel(), region);
        repaired++;
    }
    if (repaired > 0) {
        FunnyGuilds.getPluginLogger().warning("Repaired conflicts: " + repaired);
    }
}
Also used : FunnyGuilds(net.dzikoysk.funnyguilds.FunnyGuilds) GuildManager(net.dzikoysk.funnyguilds.guild.GuildManager) RegionManager(net.dzikoysk.funnyguilds.guild.RegionManager) Region(net.dzikoysk.funnyguilds.guild.Region) Guild(net.dzikoysk.funnyguilds.guild.Guild)

Example 2 with Guild

use of net.dzikoysk.funnyguilds.guild.Guild in project FunnyGuilds by FunnyGuilds.

the class SQLDataModel method loadGuilds.

public void loadGuilds() throws SQLException {
    GuildManager guildManager = FunnyGuilds.getInstance().getGuildManager();
    SQLBasicUtils.getSelectAll(SQLDataModel.tabGuilds).executeQuery(resultAll -> {
        while (resultAll.next()) {
            Guild guild = DatabaseGuild.deserialize(resultAll);
            if (guild != null) {
                guild.wasChanged();
            }
        }
    });
    SQLBasicUtils.getSelect(SQLDataModel.tabGuilds, "tag", "allies", "enemies").executeQuery(result -> {
        while (result.next()) {
            Option<Guild> guildOption = guildManager.findByTag(result.getString("tag"));
            if (guildOption.isEmpty()) {
                continue;
            }
            Guild guild = guildOption.get();
            String alliesList = result.getString("allies");
            String enemiesList = result.getString("enemies");
            if (alliesList != null && !alliesList.equals("")) {
                guild.setAllies(guildManager.findByNames(ChatUtils.fromString(alliesList)));
            }
            if (enemiesList != null && !enemiesList.equals("")) {
                guild.setEnemies(guildManager.findByNames(ChatUtils.fromString(enemiesList)));
            }
        }
    });
    for (Guild guild : guildManager.getGuilds()) {
        if (guild.getOwner() != null) {
            continue;
        }
        guildManager.deleteGuild(FunnyGuilds.getInstance(), guild);
    }
    FunnyGuilds.getPluginLogger().info("Loaded guilds: " + guildManager.countGuilds());
}
Also used : GuildManager(net.dzikoysk.funnyguilds.guild.GuildManager) Guild(net.dzikoysk.funnyguilds.guild.Guild)

Example 3 with Guild

use of net.dzikoysk.funnyguilds.guild.Guild in project FunnyGuilds by FunnyGuilds.

the class WarAttackRequest method execute.

@Override
public void execute() throws Exception {
    for (Map.Entry<Guild, FakeEntity> entry : GuildEntityHelper.getGuildEntities().entrySet()) {
        if (entry.getValue().getId() != entityId) {
            continue;
        }
        Guild guild = entry.getKey();
        Option<Player> playerOption = this.user.getPlayer();
        if (playerOption.isEmpty()) {
            return;
        }
        Player player = playerOption.get();
        if (SecuritySystem.onHitCrystal(player, guild)) {
            return;
        }
        if (!SimpleEventHandler.handle(new GuildHeartAttackEvent(EventCause.SYSTEM, user, guild))) {
            return;
        }
        WarSystem.getInstance().attack(player, entry.getKey());
        return;
    }
}
Also used : FakeEntity(net.dzikoysk.funnyguilds.nms.api.entity.FakeEntity) Player(org.bukkit.entity.Player) Guild(net.dzikoysk.funnyguilds.guild.Guild) GuildHeartAttackEvent(net.dzikoysk.funnyguilds.event.guild.GuildHeartAttackEvent) Map(java.util.Map)

Example 4 with Guild

use of net.dzikoysk.funnyguilds.guild.Guild 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 Guild

use of net.dzikoysk.funnyguilds.guild.Guild in project FunnyGuilds by FunnyGuilds.

the class TagCommand method execute.

@FunnyCommand(name = "${admin.tag.name}", permission = "funnyguilds.admin", acceptsExceeded = true)
public void execute(CommandSender sender, String[] args) {
    when(args.length < 2, messages.generalNoTagGiven);
    Guild guild = GuildValidation.requireGuildByTag(args[0]);
    String tag = args[1];
    when(guildManager.tagExists(tag), messages.createTagExists);
    User admin = AdminUtils.getAdminUser(sender);
    String oldTag = guild.getTag();
    if (!SimpleEventHandler.handle(new GuildPreTagChangeEvent(AdminUtils.getCause(admin), admin, guild, oldTag, tag))) {
        return;
    }
    guild.setTag(tag);
    sendMessage(sender, (messages.adminTagChanged.replace("{OLD_TAG}", oldTag).replace("{TAG}", guild.getTag())));
    SimpleEventHandler.handle(new GuildTagChangeEvent(AdminUtils.getCause(admin), admin, guild, oldTag, tag));
}
Also used : User(net.dzikoysk.funnyguilds.user.User) Guild(net.dzikoysk.funnyguilds.guild.Guild) GuildPreTagChangeEvent(net.dzikoysk.funnyguilds.event.guild.GuildPreTagChangeEvent) GuildTagChangeEvent(net.dzikoysk.funnyguilds.event.guild.GuildTagChangeEvent) AbstractFunnyCommand(net.dzikoysk.funnyguilds.feature.command.AbstractFunnyCommand) FunnyCommand(net.dzikoysk.funnycommands.stereotypes.FunnyCommand)

Aggregations

Guild (net.dzikoysk.funnyguilds.guild.Guild)58 User (net.dzikoysk.funnyguilds.user.User)34 FunnyCommand (net.dzikoysk.funnycommands.stereotypes.FunnyCommand)23 AbstractFunnyCommand (net.dzikoysk.funnyguilds.feature.command.AbstractFunnyCommand)23 Formatter (panda.utilities.text.Formatter)16 Region (net.dzikoysk.funnyguilds.guild.Region)12 Player (org.bukkit.entity.Player)11 PluginConfiguration (net.dzikoysk.funnyguilds.config.PluginConfiguration)9 FunnyGuilds (net.dzikoysk.funnyguilds.FunnyGuilds)8 Option (panda.std.Option)8 Location (org.bukkit.Location)7 Material (org.bukkit.Material)6 EventHandler (org.bukkit.event.EventHandler)6 List (java.util.List)5 ValidationException (net.dzikoysk.funnycommands.resources.ValidationException)5 Team (org.bukkit.scoreboard.Team)5 TimeUnit (java.util.concurrent.TimeUnit)4 HookManager (net.dzikoysk.funnyguilds.feature.hooks.HookManager)4 GuildManager (net.dzikoysk.funnyguilds.guild.GuildManager)4 ChatUtils (net.dzikoysk.funnyguilds.shared.bukkit.ChatUtils)4