Search in sources :

Example 36 with Guild

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

the class UnbanCommand method execute.

@FunnyCommand(name = "${admin.unban.name}", permission = "funnyguilds.admin", acceptsExceeded = true)
public void execute(CommandSender sender, String[] args) {
    when(args.length < 1, messages.generalNoTagGiven);
    Guild guild = GuildValidation.requireGuildByTag(args[0]);
    when(!guild.isBanned(), messages.adminGuildNotBanned);
    User admin = AdminUtils.getAdminUser(sender);
    if (!SimpleEventHandler.handle(new GuildUnbanEvent(AdminUtils.getCause(admin), admin, guild))) {
        return;
    }
    BanUtils.unban(guild);
    Formatter formatter = new Formatter().register("{GUILD}", guild.getName()).register("{TAG}", guild.getName()).register("{ADMIN}", sender.getName());
    sendMessage(sender, (formatter.format(messages.adminGuildUnban)));
    broadcastMessage(formatter.format(messages.broadcastUnban));
}
Also used : User(net.dzikoysk.funnyguilds.user.User) Formatter(panda.utilities.text.Formatter) GuildUnbanEvent(net.dzikoysk.funnyguilds.event.guild.GuildUnbanEvent) Guild(net.dzikoysk.funnyguilds.guild.Guild) AbstractFunnyCommand(net.dzikoysk.funnyguilds.feature.command.AbstractFunnyCommand) FunnyCommand(net.dzikoysk.funnycommands.stereotypes.FunnyCommand)

Example 37 with Guild

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

the class BreakCommand method execute.

@FunnyCommand(name = "${user.break.name}", description = "${user.break.description}", aliases = "${user.break.aliases}", permission = "funnyguilds.break", completer = "guilds:3", acceptsExceeded = true, playerOnly = true)
public void execute(Player player, @IsOwner User user, Guild guild, String[] args) {
    when(!guild.hasAllies(), messages.breakHasNotAllies);
    if (args.length < 1) {
        List<String> list = messages.breakAlliesList;
        String iss = ChatUtils.toString(Entity.names(guild.getAllies()), true);
        for (String msg : list) {
            user.sendMessage(msg.replace("{GUILDS}", iss));
        }
        return;
    }
    Guild oppositeGuild = GuildValidation.requireGuildByTag(args[0]);
    when(!guild.getAllies().contains(oppositeGuild), () -> messages.breakAllyExists.replace("{GUILD}", oppositeGuild.getName()).replace("{TAG}", guild.getTag()));
    if (!SimpleEventHandler.handle(new GuildBreakAllyEvent(EventCause.USER, user, guild, oppositeGuild))) {
        return;
    }
    oppositeGuild.getOwner().sendMessage(messages.breakIDone.replace("{GUILD}", guild.getName()).replace("{TAG}", guild.getTag()));
    guild.removeAlly(oppositeGuild);
    oppositeGuild.removeAlly(guild);
    ConcurrencyTaskBuilder taskBuilder = ConcurrencyTask.builder();
    for (User member : guild.getMembers()) {
        taskBuilder.delegate(new PrefixUpdateGuildRequest(member, oppositeGuild));
    }
    for (User member : oppositeGuild.getMembers()) {
        taskBuilder.delegate(new PrefixUpdateGuildRequest(member, guild));
    }
    ConcurrencyTask task = taskBuilder.build();
    this.concurrencyManager.postTask(task);
    user.sendMessage(messages.breakDone.replace("{GUILD}", oppositeGuild.getName()).replace("{TAG}", oppositeGuild.getTag()));
}
Also used : User(net.dzikoysk.funnyguilds.user.User) ConcurrencyTask(net.dzikoysk.funnyguilds.concurrency.ConcurrencyTask) GuildBreakAllyEvent(net.dzikoysk.funnyguilds.event.guild.ally.GuildBreakAllyEvent) PrefixUpdateGuildRequest(net.dzikoysk.funnyguilds.concurrency.requests.prefix.PrefixUpdateGuildRequest) Guild(net.dzikoysk.funnyguilds.guild.Guild) ConcurrencyTaskBuilder(net.dzikoysk.funnyguilds.concurrency.ConcurrencyTaskBuilder) AbstractFunnyCommand(net.dzikoysk.funnyguilds.feature.command.AbstractFunnyCommand) FunnyCommand(net.dzikoysk.funnycommands.stereotypes.FunnyCommand)

Example 38 with Guild

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

the class LeaderAdminCommand method execute.

@FunnyCommand(name = "${admin.leader.name}", permission = "funnyguilds.admin", acceptsExceeded = true)
public void execute(CommandSender sender, String[] args) {
    when(args.length < 1, messages.generalNoTagGiven);
    when(args.length < 2, messages.generalNoNickGiven);
    Guild guild = GuildValidation.requireGuildByTag(args[0]);
    User user = UserValidation.requireUserByName(args[1]);
    when(!guild.getMembers().contains(user), messages.adminUserNotMemberOf);
    when(guild.getOwner().equals(user), messages.adminAlreadyLeader);
    User admin = AdminUtils.getAdminUser(sender);
    if (!SimpleEventHandler.handle(new GuildMemberLeaderEvent(AdminUtils.getCause(admin), admin, guild, user))) {
        return;
    }
    guild.setOwner(user);
    sendMessage(sender, (messages.leaderSet));
    user.sendMessage(messages.leaderOwner);
    String message = messages.leaderMembers.replace("{PLAYER}", user.getName());
    for (User member : guild.getMembers()) {
        member.sendMessage(message);
    }
}
Also used : GuildMemberLeaderEvent(net.dzikoysk.funnyguilds.event.guild.member.GuildMemberLeaderEvent) User(net.dzikoysk.funnyguilds.user.User) Guild(net.dzikoysk.funnyguilds.guild.Guild) AbstractFunnyCommand(net.dzikoysk.funnyguilds.feature.command.AbstractFunnyCommand) FunnyCommand(net.dzikoysk.funnycommands.stereotypes.FunnyCommand)

Example 39 with Guild

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

the class ProtectionCommand method execute.

@FunnyCommand(name = "${admin.protection.name}", permission = "funnyguilds.admin", acceptsExceeded = true)
public void execute(CommandSender sender, String[] args) {
    when(args.length < 1, messages.generalNoTagGiven);
    when(args.length < 3, messages.adminNoProtectionDateGive);
    Guild guild = GuildValidation.requireGuildByTag(args[0]);
    String protectionDateAsString = StringUtils.join(args, ' ', 1, 3);
    Date protectionDate;
    try {
        protectionDate = PROTECTION_DATE_FORMAT.parse(protectionDateAsString);
    } catch (ParseException e) {
        sendMessage(sender, (messages.adminInvalidProtectionDate));
        return;
    }
    guild.setProtection(protectionDate.getTime());
    Formatter formatter = new Formatter().register("{TAG}", guild.getTag()).register("{DATE}", protectionDateAsString);
    sendMessage(sender, (formatter.format(messages.adminProtectionSetSuccessfully)));
}
Also used : Formatter(panda.utilities.text.Formatter) ParseException(java.text.ParseException) Guild(net.dzikoysk.funnyguilds.guild.Guild) Date(java.util.Date) AbstractFunnyCommand(net.dzikoysk.funnyguilds.feature.command.AbstractFunnyCommand) FunnyCommand(net.dzikoysk.funnycommands.stereotypes.FunnyCommand)

Example 40 with Guild

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

the class FlatGuild method deserialize.

public static Guild deserialize(File file) {
    PluginConfiguration configuration = FunnyGuilds.getInstance().getPluginConfiguration();
    YamlWrapper wrapper = new YamlWrapper(file);
    String id = wrapper.getString("uuid");
    String name = wrapper.getString("name");
    String tag = wrapper.getString("tag");
    String ownerName = wrapper.getString("owner");
    String deputyName = wrapper.getString("deputy");
    String hs = wrapper.getString("home");
    String regionName = wrapper.getString("region");
    boolean pvp = wrapper.getBoolean("pvp");
    long born = wrapper.getLong("born");
    long validity = wrapper.getLong("validity");
    long attacked = wrapper.getLong("attacked");
    long ban = wrapper.getLong("ban");
    int lives = wrapper.getInt("lives");
    if (name == null) {
        FunnyGuilds.getPluginLogger().error("[Deserialize] Cannot deserialize guild! Caused by: name is null");
        return null;
    }
    if (tag == null) {
        FunnyGuilds.getPluginLogger().error("[Deserialize] Cannot deserialize guild: " + name + "! Caused by: tag is null");
        return null;
    }
    if (ownerName == null) {
        FunnyGuilds.getPluginLogger().error("[Deserialize] Cannot deserialize guild: " + name + "! Caused by: owner is null");
        return null;
    }
    if (regionName == null && configuration.regionsEnabled) {
        FunnyGuilds.getPluginLogger().error("[Deserialize] Cannot deserialize guild: " + name + "! Caused by: region is null");
        return null;
    }
    Set<String> memberNames = loadSet(wrapper, "members");
    Set<String> allyNames = loadSet(wrapper, "allies");
    Set<String> enemyNames = loadSet(wrapper, "enemies");
    Option<Region> regionOption = FunnyGuilds.getInstance().getRegionManager().findByName(regionName);
    if (regionOption.isEmpty() && configuration.regionsEnabled) {
        FunnyGuilds.getPluginLogger().error("[Deserialize] Cannot deserialize guild: " + name + "! Caused by: region (object) is null");
        return null;
    }
    Region region = regionOption.get();
    UUID uuid = UUID.randomUUID();
    if (id != null && !id.isEmpty()) {
        uuid = UUID.fromString(id);
    }
    final User owner = UserUtils.get(ownerName);
    Set<User> deputies = ConcurrentHashMap.newKeySet(1);
    if (deputyName != null && !deputyName.isEmpty()) {
        deputies = UserUtils.getUsersFromString(ChatUtils.fromString(deputyName));
    }
    Location home = null;
    if (region != null) {
        home = region.getCenter();
        if (hs != null) {
            home = LocationUtils.parseLocation(hs);
        }
    }
    if (memberNames == null || memberNames.isEmpty()) {
        memberNames = new HashSet<>();
        memberNames.add(ownerName);
    }
    GuildManager guildManager = FunnyGuilds.getInstance().getGuildManager();
    Set<User> members = FunnyGuilds.getInstance().getUserManager().findByNames(memberNames);
    Set<Guild> allies = guildManager.findByNames(allyNames);
    Set<Guild> enemies = guildManager.findByNames(enemyNames);
    if (born == 0) {
        born = System.currentTimeMillis();
    }
    if (validity == 0) {
        validity = Instant.now().plus(configuration.validityStart).toEpochMilli();
    }
    if (lives == 0) {
        lives = configuration.warLives;
    }
    final Object[] values = new Object[17];
    values[0] = uuid;
    values[1] = name;
    values[2] = tag;
    values[3] = owner;
    values[4] = home;
    values[5] = region;
    values[6] = members;
    values[7] = allies;
    values[8] = enemies;
    values[9] = born;
    values[10] = validity;
    values[11] = attacked;
    values[12] = lives;
    values[13] = ban;
    values[14] = deputies;
    values[15] = pvp;
    return DeserializationUtils.deserializeGuild(configuration, guildManager, values);
}
Also used : User(net.dzikoysk.funnyguilds.user.User) GuildManager(net.dzikoysk.funnyguilds.guild.GuildManager) YamlWrapper(net.dzikoysk.funnyguilds.data.util.YamlWrapper) Guild(net.dzikoysk.funnyguilds.guild.Guild) PluginConfiguration(net.dzikoysk.funnyguilds.config.PluginConfiguration) Region(net.dzikoysk.funnyguilds.guild.Region) UUID(java.util.UUID) Location(org.bukkit.Location)

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