use of net.dzikoysk.funnyguilds.guild.Guild in project FunnyGuilds by FunnyGuilds.
the class JoinCommand method execute.
@FunnyCommand(name = "${user.join.name}", description = "${user.join.description}", aliases = "${user.join.aliases}", permission = "funnyguilds.join", completer = "guilds:3", acceptsExceeded = true, playerOnly = true)
public void execute(Player player, User user, String[] args) {
when(user.hasGuild(), messages.joinHasGuild);
List<InvitationList.Invitation> invitations = InvitationList.getInvitationsFor(player);
when(invitations.size() == 0, messages.joinHasNotInvitation);
if (args.length < 1) {
String guildNames = ChatUtils.toString(InvitationList.getInvitationGuildNames(player), false);
for (String msg : messages.joinInvitationList) {
user.sendMessage(msg.replace("{GUILDS}", guildNames));
}
return;
}
Guild guild = GuildValidation.requireGuildByTag(args[0]);
when(!InvitationList.hasInvitationFrom(player, this.guildManager.findByTag(guild.getTag()).getOrNull()), messages.joinHasNotInvitationTo);
List<ItemStack> requiredItems = config.joinItems;
if (!ItemUtils.playerHasEnoughItems(player, requiredItems)) {
return;
}
when(guild.getMembers().size() >= config.maxMembersInGuild, messages.inviteAmountJoin.replace("{AMOUNT}", Integer.toString(config.maxMembersInGuild)));
if (!SimpleEventHandler.handle(new GuildMemberAcceptInviteEvent(EventCause.USER, user, guild, user))) {
return;
}
InvitationList.expireInvitation(guild, player);
if (!SimpleEventHandler.handle(new GuildMemberJoinEvent(EventCause.USER, user, guild, user))) {
return;
}
guild.addMember(user);
user.setGuild(guild);
player.getInventory().removeItem(ItemUtils.toArray(requiredItems));
this.concurrencyManager.postRequests(new PrefixGlobalAddPlayerRequest(user.getName()));
Formatter formatter = new Formatter().register("{GUILD}", guild.getName()).register("{TAG}", guild.getTag()).register("{PLAYER}", player.getName());
user.sendMessage(formatter.format(messages.joinToMember));
broadcastMessage(formatter.format(messages.broadcastJoin));
guild.getOwner().sendMessage(formatter.format(messages.joinToOwner));
}
use of net.dzikoysk.funnyguilds.guild.Guild in project FunnyGuilds by FunnyGuilds.
the class PlayerInfoCommand method sendInfoMessage.
public void sendInfoMessage(List<String> baseMessage, User infoUser, CommandSender messageTarget) {
UserRank rank = infoUser.getRank();
for (String messageLine : baseMessage) {
if (infoUser.hasGuild()) {
Guild guild = infoUser.getGuild().get();
messageLine = StringUtils.replace(messageLine, "{GUILD}", guild.getName());
messageLine = StringUtils.replace(messageLine, "{TAG}", guild.getTag());
} else {
messageLine = StringUtils.replace(messageLine, "{GUILD}", messages.gNameNoValue);
messageLine = StringUtils.replace(messageLine, "{TAG}", messages.gTagNoValue);
}
messageLine = StringUtils.replace(messageLine, "{PLAYER}", infoUser.getName());
messageLine = StringUtils.replace(messageLine, "{POINTS-FORMAT}", NumberRange.inRangeToString(rank.getPoints(), config.pointsFormat));
messageLine = StringUtils.replace(messageLine, "{POINTS}", Integer.toString(rank.getPoints()));
messageLine = StringUtils.replace(messageLine, "{KILLS}", Integer.toString(rank.getKills()));
messageLine = StringUtils.replace(messageLine, "{DEATHS}", Integer.toString(rank.getDeaths()));
messageLine = StringUtils.replace(messageLine, "{ASSISTS}", Integer.toString(rank.getAssists()));
messageLine = StringUtils.replace(messageLine, "{LOGOUTS}", Integer.toString(rank.getLogouts()));
messageLine = StringUtils.replace(messageLine, "{KDR}", String.format(Locale.US, "%.2f", rank.getKDR()));
messageLine = StringUtils.replace(messageLine, "{RANK}", Integer.toString(rank.getPosition(DefaultTops.USER_POINTS_TOP)));
sendMessage(messageTarget, messageLine);
}
}
use of net.dzikoysk.funnyguilds.guild.Guild in project FunnyGuilds by FunnyGuilds.
the class DeputyAdminCommand method execute.
@FunnyCommand(name = "${admin.deputy.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(args.length < 2, messages.generalNoNickGiven);
User userToMove = UserValidation.requireUserByName(args[1]);
when(!guild.getMembers().contains(userToMove), messages.adminUserNotMemberOf);
User admin = AdminUtils.getAdminUser(sender);
if (!SimpleEventHandler.handle(new GuildMemberDeputyEvent(AdminUtils.getCause(admin), admin, guild, userToMove))) {
return;
}
Formatter formatter = new Formatter().register("{PLAYER}", userToMove.getName());
if (userToMove.isDeputy()) {
guild.removeDeputy(userToMove);
sendMessage(sender, (messages.deputyRemove));
userToMove.sendMessage(messages.deputyMember);
String message = formatter.format(messages.deputyNoLongerMembers);
for (User member : guild.getOnlineMembers()) {
member.sendMessage(message);
}
return;
}
guild.addDeputy(userToMove);
sendMessage(sender, (messages.deputySet));
userToMove.sendMessage(messages.deputyOwner);
String message = formatter.format(messages.deputyMembers);
for (User member : guild.getOnlineMembers()) {
member.sendMessage(message);
}
}
use of net.dzikoysk.funnyguilds.guild.Guild in project FunnyGuilds by FunnyGuilds.
the class LivesCommand method execute.
@FunnyCommand(name = "${admin.lives.name}", permission = "funnyguilds.admin", acceptsExceeded = true)
public void execute(CommandSender sender, String[] args) {
when(args.length < 1, messages.generalNoTagGiven);
when(args.length < 2, messages.adminNoLivesGiven);
Guild guild = GuildValidation.requireGuildByTag(args[0]);
int lives;
try {
lives = Integer.parseInt(args[1]);
} catch (NumberFormatException e) {
sendMessage(sender, (messages.adminErrorInNumber.replace("{ERROR}", args[1])));
return;
}
User admin = AdminUtils.getAdminUser(sender);
if (!SimpleEventHandler.handle(new GuildLivesChangeEvent(AdminUtils.getCause(admin), admin, guild, lives))) {
return;
}
guild.setLives(lives);
sendMessage(sender, (messages.adminLivesChanged.replace("{GUILD}", guild.getTag()).replace("{LIVES}", Integer.toString(lives))));
}
use of net.dzikoysk.funnyguilds.guild.Guild in project FunnyGuilds by FunnyGuilds.
the class MoveCommand method execute.
@FunnyCommand(name = "${admin.move.name}", permission = "funnyguilds.admin", acceptsExceeded = true, playerOnly = true)
public void execute(Player player, User admin, String[] args) {
when(!config.regionsEnabled, messages.regionsDisabled);
when(args.length < 1, messages.generalNoTagGiven);
HeartConfiguration heartConfig = config.heart;
Guild guild = GuildValidation.requireGuildByTag(args[0]);
Location location = player.getLocation();
if (!heartConfig.usePlayerPositionForCenterY) {
location.setY(heartConfig.createCenterY);
}
int distance = config.regionSize + config.createDistance;
if (config.enlargeItems != null) {
distance = config.enlargeItems.size() * config.enlargeSize + distance;
}
when(distance > LocationUtils.flatDistance(player.getWorld().getSpawnLocation(), location), messages.createSpawn.replace("{DISTANCE}", Integer.toString(distance)));
when(this.regionManager.isNearRegion(location), messages.createIsNear);
if (!SimpleEventHandler.handle(new GuildMoveEvent(AdminUtils.getCause(admin), admin, guild, location))) {
return;
}
Region region = guild.getRegion().peek(peekRegion -> {
if (heartConfig.createEntityType != null) {
GuildEntityHelper.despawnGuildHeart(guild);
} else if (heartConfig.createMaterial != null && heartConfig.createMaterial.getLeft() != Material.AIR) {
peekRegion.getHeartBlock().filter(heart -> heart.getLocation().getBlockY() > 1).peek(heart -> Bukkit.getScheduler().runTask(this.plugin, () -> heart.setType(Material.AIR)));
}
peekRegion.setCenter(location);
}).orElseGet(() -> new Region(guild, location, config.regionSize));
if (heartConfig.createCenterSphere) {
List<Location> sphere = SpaceUtils.sphere(location, 3, 3, false, true, 0);
for (Location locationInSphere : sphere) {
if (locationInSphere.getBlock().getType() != Material.BEDROCK) {
locationInSphere.getBlock().setType(Material.AIR);
}
}
}
this.guildManager.spawnHeart(guild);
admin.sendMessage(messages.adminGuildRelocated.replace("{GUILD}", guild.getName()).replace("{REGION}", region.getName()));
}
Aggregations