use of net.dzikoysk.funnyguilds.basic.Guild in project FunnyGuilds by FunnyGuilds.
the class ExcCreate method execute.
@SuppressWarnings("deprecation")
@Override
public void execute(CommandSender sender, String[] args) {
MessagesConfig messages = Messages.getInstance();
PluginConfig config = Settings.getConfig();
Player player = (Player) sender;
User user = User.get(player);
if (!config.guildsEnabled) {
player.sendMessage(messages.adminGuildsDisabled);
return;
}
boolean isBlockedWorld = this.checkWorld(player);
if (isBlockedWorld) {
player.sendMessage(messages.blockedWorld);
return;
}
if (user.hasGuild()) {
player.sendMessage(messages.generalHasGuild);
return;
}
if (args.length != 2) {
switch(args.length) {
case 0:
player.sendMessage(messages.generalNoTagGiven);
return;
case 1:
player.sendMessage(messages.generalNoNameGiven);
return;
default:
player.sendMessage(messages.createMore);
return;
}
}
String tag = args[0];
if (!config.guildTagKeepCase) {
tag = config.guildTagUppercase ? tag.toUpperCase() : tag.toLowerCase();
}
String name = args[1];
if (tag.length() > config.createTagLength) {
player.sendMessage(messages.createTagLength.replace("{LENGTH}", Integer.toString(config.createTagLength)));
return;
}
if (tag.length() < config.createTagMinLength) {
player.sendMessage(messages.createTagMinLength.replace("{LENGTH}", Integer.toString(config.createTagMinLength)));
return;
}
if (name.length() > config.createNameLength) {
player.sendMessage(messages.createNameLength.replace("{LENGTH}", Integer.toString(config.createNameLength)));
return;
}
if (name.length() < config.createNameMinLength) {
player.sendMessage(messages.createNameMinLength.replace("{LENGTH}", Integer.toString(config.createNameMinLength)));
return;
}
if (!tag.matches(config.tagRegex.getPattern())) {
player.sendMessage(messages.createOLTag);
return;
}
if (!name.matches(config.nameRegex.getPattern())) {
player.sendMessage(messages.createOLName);
return;
}
if (GuildUtils.nameExists(name)) {
player.sendMessage(messages.createNameExists);
return;
}
if (GuildUtils.tagExists(tag)) {
player.sendMessage(messages.createTagExists);
return;
}
if (config.checkForRestrictedGuildNames) {
if (!GuildUtils.isNameValid(name)) {
player.sendMessage(messages.restrictedGuildName);
return;
} else if (!GuildUtils.isTagValid(tag)) {
player.sendMessage(messages.restrictedGuildTag);
return;
}
}
Location guildLocation = player.getLocation().getBlock().getLocation();
if (config.regionsEnabled) {
if (config.createCenterY != 0) {
guildLocation.setY(config.createCenterY);
}
int d = config.regionSize + config.createDistance;
if (config.enlargeItems != null) {
d += config.enlargeItems.size() * config.enlargeSize;
}
if (d > player.getWorld().getSpawnLocation().distance(guildLocation)) {
player.sendMessage(messages.createSpawn.replace("{DISTANCE}", Integer.toString(d)));
return;
}
}
if (config.rankCreateEnable) {
int requiredRank = player.hasPermission("funnyguilds.vip.rank") ? config.rankCreateVip : config.rankCreate;
int points = user.getRank().getPoints();
if (points < requiredRank) {
String msg = messages.createRank;
msg = StringUtils.replace(msg, "{REQUIRED-FORMAT}", IntegerRange.inRange(requiredRank, config.pointsFormat).replace("{POINTS}", "{REQUIRED}"));
msg = StringUtils.replace(msg, "{REQUIRED}", String.valueOf(requiredRank));
msg = StringUtils.replace(msg, "{POINTS-FORMAT}", IntegerRange.inRange(points, config.pointsFormat));
msg = StringUtils.replace(msg, "{POINTS}", String.valueOf(points));
player.sendMessage(msg);
return;
}
}
List<ItemStack> requiredItems = player.hasPermission("funnyguilds.vip.items") ? config.createItemsVip : config.createItems;
int requiredExperience = player.hasPermission("funnyguilds.vip.items") ? config.requiredExperienceVip : config.requiredExperience;
double requiredMoney = player.hasPermission("funnyguilds.vip.items") ? config.requiredMoneyVip : config.requiredMoney;
if (!user.getBypass()) {
if (player.getTotalExperience() < requiredExperience) {
String msg = messages.createExperience;
msg = StringUtils.replace(msg, "{EXP}", String.valueOf(requiredExperience));
player.sendMessage(msg);
return;
}
if (VaultHook.isHooked() && !VaultHook.canAfford(player, requiredMoney)) {
String notEnoughMoneyMessage = messages.createMoney;
notEnoughMoneyMessage = StringUtils.replace(notEnoughMoneyMessage, "{MONEY}", Double.toString(requiredMoney));
player.sendMessage(notEnoughMoneyMessage);
return;
}
for (ItemStack requiredItem : requiredItems) {
if (player.getInventory().containsAtLeast(requiredItem, requiredItem.getAmount())) {
continue;
}
String msg = ItemUtils.translatePlaceholder(messages.createItems, requiredItems, requiredItem);
player.sendMessage(msg);
return;
}
}
if (config.regionsEnabled) {
if (RegionUtils.isIn(guildLocation)) {
player.sendMessage(messages.createIsNear);
return;
}
if (RegionUtils.isNear(guildLocation)) {
player.sendMessage(messages.createIsNear);
return;
}
if (config.createMinDistanceFromBorder != -1) {
WorldBorder border = player.getWorld().getWorldBorder();
double borderSize = border.getSize() / 2;
double borderX = border.getCenter().getX() + borderSize;
double borderZ = border.getCenter().getZ() + borderSize;
double distanceX = Math.abs(borderX) - Math.abs(player.getLocation().getX());
double distanceZ = Math.abs(borderZ) - Math.abs(player.getLocation().getZ());
if ((distanceX < config.createMinDistanceFromBorder) || (distanceZ < config.createMinDistanceFromBorder)) {
String notEnoughDistanceMessage = messages.createNotEnoughDistanceFromBorder;
notEnoughDistanceMessage = StringUtils.replace(notEnoughDistanceMessage, "{BORDER-MIN-DISTANCE}", Double.toString(config.createMinDistanceFromBorder));
player.sendMessage(notEnoughDistanceMessage);
return;
}
}
}
if (!SimpleEventHandler.handle(new GuildCreateEvent(EventCause.USER, user, name, tag, guildLocation))) {
return;
}
if (user.getBypass()) {
user.setBypass(false);
} else {
player.getInventory().removeItem(ItemUtils.toArray(requiredItems));
player.setTotalExperience(player.getTotalExperience() - requiredExperience);
if (VaultHook.isHooked()) {
VaultHook.withdrawFromPlayerBank(player, requiredMoney);
}
}
Manager.getInstance().stop();
Guild guild = new Guild(name);
guild.setTag(tag);
guild.setOwner(user);
guild.setLives(config.warLives);
guild.setBorn(System.currentTimeMillis());
guild.setValidity(System.currentTimeMillis() + config.validityStart);
guild.setAttacked(System.currentTimeMillis() - config.warWait + config.warProtection);
guild.setPvP(config.damageGuild);
user.setGuild(guild);
if (config.regionsEnabled) {
Region region = new Region(guild, guildLocation, config.regionSize);
guild.setRegion(region.getName());
guild.addRegion(region.getName());
if (config.pasteSchematicOnCreation) {
if (!SchematicHelper.pasteSchematic(config.guildSchematicFile, guildLocation, config.pasteSchematicWithAir)) {
player.sendMessage(messages.createGuildCouldNotPasteSchematic);
}
} else if (config.createCenterSphere) {
for (Location l : SpaceUtils.sphere(guildLocation, 4, 4, false, true, 0)) {
if (l.getBlock().getType() != Material.BEDROCK) {
l.getBlock().setType(Material.AIR);
}
}
for (Location l : SpaceUtils.sphere(guildLocation, 4, 4, true, true, 0)) {
if (l.getBlock().getType() != Material.BEDROCK) {
l.getBlock().setType(Material.OBSIDIAN);
}
}
}
if (config.createMaterialData != null && config.createMaterialData.getItemType() != Material.AIR) {
Block heart = guildLocation.getBlock().getRelative(BlockFace.DOWN);
heart.setType(config.createMaterialData.getItemType());
heart.setData(config.createMaterialData.getData());
} else if (config.createEntityType != null) {
EntityUtil.spawn(guild);
}
player.teleport(guildLocation);
}
Manager.getInstance().start();
/*
IndependentThread.actions(ActionType.RANK_UPDATE_GUILD, guild);
IndependentThread.actions(ActionType.PREFIX_GLOBAL_ADD_GUILD, guild);
IndependentThread.action(ActionType.PREFIX_GLOBAL_ADD_PLAYER, user.getName());
*/
ConcurrencyManager concurrencyManager = FunnyGuilds.getInstance().getConcurrencyManager();
concurrencyManager.postRequests(new RankUpdateGuildRequest(guild), new PrefixGlobalAddGuildRequest(guild), new PrefixGlobalAddPlayerRequest(user.getName()));
MessageTranslator translator = new MessageTranslator().register("{GUILD}", name).register("{TAG}", tag).register("{PLAYER}", player.getName());
player.sendMessage(translator.translate(messages.createGuild));
Bukkit.broadcastMessage(translator.translate(messages.broadcastCreate));
}
use of net.dzikoysk.funnyguilds.basic.Guild in project FunnyGuilds by FunnyGuilds.
the class ExcDeputy method execute.
@Override
public void execute(CommandSender sender, String[] args) {
MessagesConfig messages = Messages.getInstance();
Player player = (Player) sender;
User owner = User.get(player);
if (!owner.hasGuild()) {
player.sendMessage(messages.generalHasNoGuild);
return;
}
if (!owner.isOwner()) {
player.sendMessage(messages.generalIsNotOwner);
return;
}
if (args.length < 1) {
player.sendMessage(messages.generalNoNickGiven);
return;
}
String name = args[0];
if (!UserUtils.playedBefore(name)) {
player.sendMessage(messages.generalNotPlayedBefore);
return;
}
User deputyUser = User.get(name);
if (owner.equals(deputyUser)) {
player.sendMessage(messages.deputyMustBeDifferent);
return;
}
Guild guild = owner.getGuild();
Player deputyPlayer = deputyUser.getPlayer();
if (!guild.getMembers().contains(deputyUser)) {
player.sendMessage(messages.generalIsNotMember);
return;
}
if (!SimpleEventHandler.handle(new GuildMemberDeputyEvent(EventCause.USER, owner, guild, deputyUser))) {
return;
}
if (deputyUser.isDeputy()) {
guild.removeDeputy(deputyUser);
;
player.sendMessage(messages.deputyRemove);
if (deputyPlayer != null) {
deputyPlayer.sendMessage(messages.deputyMember);
}
return;
}
guild.addDeputy(deputyUser);
player.sendMessage(messages.deputySet);
if (deputyPlayer != null) {
deputyPlayer.sendMessage(messages.deputyOwner);
}
}
use of net.dzikoysk.funnyguilds.basic.Guild in project FunnyGuilds by FunnyGuilds.
the class ExcInfo method execute.
@Override
public void execute(CommandSender sender, String[] args) {
MessagesConfig messages = Messages.getInstance();
PluginConfig config = Settings.getConfig();
String tag = null;
if (args.length > 0) {
tag = args[0];
} else if (sender instanceof Player) {
User user = User.get((Player) sender);
if (user.hasGuild()) {
tag = user.getGuild().getTag();
}
}
if (tag == null || tag.isEmpty()) {
sender.sendMessage(messages.infoTag);
return;
}
if (!GuildUtils.tagExists(tag)) {
sender.sendMessage(messages.infoExists);
return;
}
Guild guild = GuildUtils.getByTag(tag);
if (guild == null) {
sender.sendMessage(messages.infoExists);
return;
}
String validity = config.dateFormat.format(new Date(guild.getValidity()));
long now = System.currentTimeMillis();
long protectionEndTime = guild.getProtectionEndTime();
for (String messageLine : messages.infoList) {
messageLine = StringUtils.replace(messageLine, "{GUILD}", guild.getName());
messageLine = StringUtils.replace(messageLine, "{TAG}", guild.getTag());
messageLine = StringUtils.replace(messageLine, "{OWNER}", guild.getOwner().getName());
messageLine = StringUtils.replace(messageLine, "{MEMBERS-ONLINE}", String.valueOf(guild.getOnlineMembers().size()));
messageLine = StringUtils.replace(messageLine, "{MEMBERS-ALL}", String.valueOf(guild.getMembers().size()));
messageLine = StringUtils.replace(messageLine, "{MEMBERS}", StringUtils.toString(UserUtils.getOnlineNames(guild.getMembers()), true));
messageLine = StringUtils.replace(messageLine, "{DEPUTIES}", StringUtils.toString(UserUtils.getNames(guild.getDeputies()), true));
messageLine = StringUtils.replace(messageLine, "{REGION-SIZE}", String.valueOf(guild.getRegionData().getSize()));
messageLine = StringUtils.replace(messageLine, "{GUILD-PROTECTION}", protectionEndTime < now ? "Brak" : TimeUtils.getDurationBreakdown(protectionEndTime - now));
Rank rank = guild.getRank();
messageLine = StringUtils.replace(messageLine, "{POINTS-FORMAT}", IntegerRange.inRange(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, "{KDR}", String.format(Locale.US, "%.2f", rank.getKDR()));
messageLine = StringUtils.replace(messageLine, "{VALIDITY}", validity);
messageLine = StringUtils.replace(messageLine, "{LIVES}", Integer.toString(guild.getLives()));
if (guild.getMembers().size() >= config.minMembersToInclude) {
messageLine = StringUtils.replace(messageLine, "{RANK}", String.valueOf(rank.getPosition()));
} else {
messageLine = StringUtils.replace(messageLine, "{RANK}", messages.minMembersToIncludeNoValue);
}
if (!guild.getAllies().isEmpty()) {
messageLine = StringUtils.replace(messageLine, "{ALLIES}", StringUtils.toString(GuildUtils.getNames(guild.getAllies()), true));
} else {
messageLine = StringUtils.replace(messageLine, "{ALLIES}", messages.alliesNoValue);
}
if (messageLine.contains("<online>")) {
String color = ChatColor.getLastColors(messageLine.split("<online>")[0]);
messageLine = StringUtils.replace(messageLine, "<online>", ChatColor.GREEN + "");
messageLine = StringUtils.replace(messageLine, "</online>", color);
}
sender.sendMessage(messageLine);
}
}
use of net.dzikoysk.funnyguilds.basic.Guild in project FunnyGuilds by FunnyGuilds.
the class ExcInvite method execute.
@Override
public void execute(CommandSender sender, String[] args) {
MessagesConfig messages = Messages.getInstance();
Player player = (Player) sender;
User user = User.get(player);
if (!user.hasGuild()) {
player.sendMessage(messages.generalHasNoGuild);
return;
}
if (!user.isOwner() && !user.isDeputy()) {
player.sendMessage(messages.generalIsNotOwner);
return;
}
if (args.length < 1) {
player.sendMessage(messages.generalNoNickGiven);
return;
}
Guild guild = user.getGuild();
if (guild.getMembers().size() >= Settings.getConfig().inviteMembers) {
player.sendMessage(messages.inviteAmount.replace("{AMOUNT}", Integer.toString(Settings.getConfig().inviteMembers)));
return;
}
if (!UserUtils.playedBefore(args[0])) {
player.sendMessage(messages.generalNotPlayedBefore);
return;
}
User invitedUser = User.get(args[0]);
Player invitedPlayer = invitedUser.getPlayer();
if (InvitationList.hasInvitationFrom(invitedUser, guild)) {
if (!SimpleEventHandler.handle(new GuildMemberRevokeInviteEvent(EventCause.USER, user, guild, invitedUser))) {
return;
}
InvitationList.expireInvitation(guild, invitedUser);
player.sendMessage(messages.inviteCancelled);
if (invitedPlayer != null) {
invitedPlayer.sendMessage(messages.inviteCancelledToInvited.replace("{OWNER}", player.getName()).replace("{GUILD}", guild.getName()).replace("{TAG}", guild.getTag()));
}
return;
}
if (invitedPlayer == null) {
player.sendMessage(messages.invitePlayerExists);
return;
}
if (invitedUser.hasGuild()) {
player.sendMessage(messages.generalUserHasGuild);
return;
}
if (!SimpleEventHandler.handle(new GuildMemberInviteEvent(EventCause.USER, user, guild, invitedUser))) {
return;
}
InvitationList.createInvitation(guild, invitedPlayer);
player.sendMessage(messages.inviteToOwner.replace("{PLAYER}", invitedPlayer.getName()));
invitedPlayer.sendMessage(messages.inviteToInvited.replace("{OWNER}", player.getName()).replace("{GUILD}", guild.getName()).replace("{TAG}", guild.getTag()));
}
use of net.dzikoysk.funnyguilds.basic.Guild in project FunnyGuilds by FunnyGuilds.
the class ExcAlly method execute.
@Override
public void execute(CommandSender sender, String[] args) {
MessagesConfig messages = Messages.getInstance();
Player player = (Player) sender;
User user = User.get(player);
if (!user.hasGuild()) {
player.sendMessage(messages.generalHasNoGuild);
return;
}
if (!user.isOwner()) {
player.sendMessage(messages.generalIsNotOwner);
return;
}
Guild guild = user.getGuild();
List<InvitationList.Invitation> invitations = InvitationList.getInvitationsFor(guild);
if (args.length < 1) {
if (invitations.size() == 0) {
player.sendMessage(messages.allyHasNotInvitation);
return;
}
List<String> list = messages.allyInvitationList;
String guildNames = StringUtils.toString(InvitationList.getInvitationGuildNames(guild), false);
for (String msg : list) {
player.sendMessage(msg.replace("{GUILDS}", guildNames));
}
return;
}
String tag = args[0];
if (!GuildUtils.tagExists(tag)) {
player.sendMessage(StringUtils.replace(messages.generalGuildNotExists, "{TAG}", tag));
return;
}
Guild invitedGuild = GuildUtils.getByTag(tag);
if (guild.equals(invitedGuild)) {
player.sendMessage(messages.allySame);
return;
}
if (guild.getAllies().contains(invitedGuild)) {
player.sendMessage(messages.allyAlly);
return;
}
if (InvitationList.hasInvitationFrom(guild, invitedGuild)) {
if (!SimpleEventHandler.handle(new GuildAcceptAllyInvitationEvent(EventCause.USER, user, guild, invitedGuild))) {
return;
}
InvitationList.expireInvitation(invitedGuild, guild);
guild.addAlly(invitedGuild);
invitedGuild.addAlly(guild);
String allyDoneMessage = messages.allyDone;
allyDoneMessage = StringUtils.replace(allyDoneMessage, "{GUILD}", invitedGuild.getName());
allyDoneMessage = StringUtils.replace(allyDoneMessage, "{TAG}", invitedGuild.getTag());
player.sendMessage(allyDoneMessage);
Player owner = invitedGuild.getOwner().getPlayer();
if (owner != null) {
String allyIDoneMessage = messages.allyIDone;
allyIDoneMessage = StringUtils.replace(allyIDoneMessage, "{GUILD}", guild.getName());
allyIDoneMessage = StringUtils.replace(allyIDoneMessage, "{TAG}", guild.getTag());
owner.sendMessage(allyIDoneMessage);
}
ConcurrencyManager concurrencyManager = FunnyGuilds.getInstance().getConcurrencyManager();
ConcurrencyTaskBuilder taskBuilder = ConcurrencyTask.builder();
for (User member : guild.getMembers()) {
// IndependentThread.action(ActionType.PREFIX_UPDATE_GUILD, member, invitedGuild);
taskBuilder.delegate(new PrefixUpdateGuildRequest(member, invitedGuild));
}
for (User member : invitedGuild.getMembers()) {
// IndependentThread.action(ActionType.PREFIX_UPDATE_GUILD, member, guild);
taskBuilder.delegate(new PrefixUpdateGuildRequest(member, guild));
}
ConcurrencyTask task = taskBuilder.build();
concurrencyManager.postTask(task);
return;
}
if (InvitationList.hasInvitationFrom(invitedGuild, guild)) {
if (!SimpleEventHandler.handle(new GuildRevokeAllyInvitationEvent(EventCause.USER, user, guild, invitedGuild))) {
return;
}
InvitationList.expireInvitation(guild, invitedGuild);
String allyReturnMessage = messages.allyReturn;
allyReturnMessage = StringUtils.replace(allyReturnMessage, "{GUILD}", invitedGuild.getName());
allyReturnMessage = StringUtils.replace(allyReturnMessage, "{TAG}", invitedGuild.getTag());
player.sendMessage(allyReturnMessage);
Player owner = invitedGuild.getOwner().getPlayer();
if (owner != null) {
String allyIReturnMessage = messages.allyIReturn;
allyIReturnMessage = StringUtils.replace(allyIReturnMessage, "{GUILD}", guild.getName());
allyIReturnMessage = StringUtils.replace(allyIReturnMessage, "{TAG}", guild.getTag());
owner.sendMessage(allyIReturnMessage);
}
return;
}
if (!SimpleEventHandler.handle(new GuildSendAllyInvitationEvent(EventCause.USER, user, guild, invitedGuild))) {
return;
}
InvitationList.createInvitation(guild, invitedGuild);
String allyInviteDoneMessage = messages.allyInviteDone;
allyInviteDoneMessage = StringUtils.replace(allyInviteDoneMessage, "{GUILD}", invitedGuild.getName());
allyInviteDoneMessage = StringUtils.replace(allyInviteDoneMessage, "{TAG}", invitedGuild.getTag());
player.sendMessage(allyInviteDoneMessage);
Player owner = invitedGuild.getOwner().getPlayer();
if (owner != null) {
String allyToInvitedMessage = messages.allyToInvited;
allyToInvitedMessage = StringUtils.replace(allyToInvitedMessage, "{GUILD}", guild.getName());
allyToInvitedMessage = StringUtils.replace(allyToInvitedMessage, "{TAG}", guild.getTag());
owner.sendMessage(allyToInvitedMessage);
}
}
Aggregations