Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.sc.guilds.guild;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.Map;
- import java.util.UUID;
- import org.bukkit.Bukkit;
- import org.bukkit.ChatColor;
- import org.bukkit.command.Command;
- import org.bukkit.command.CommandExecutor;
- import org.bukkit.command.CommandSender;
- import org.bukkit.configuration.file.FileConfiguration;
- import org.bukkit.entity.Player;
- import com.sc.guilds.GuildsMain;
- import com.sc.guilds.LanguageData;
- import com.sc.guilds.util.Config;
- import com.sc.guilds.util.Invite;
- import com.sc.guilds.util.NameFetcher;
- import com.sc.guilds.util.Util;
- public class GuildManager implements CommandExecutor {
- private ArrayList<Guild> guilds = new ArrayList<Guild>();
- private ArrayList<Invite> invites = new ArrayList<Invite>();
- public GuildManager() {
- Bukkit.getPluginManager().registerEvents(new GuildListener(), GuildsMain.getMain());
- for(String guildName : GuildsMain.getData().getStringList("Guilds")) {
- ArrayList<GuildMember> members = new ArrayList<GuildMember>();
- FileConfiguration config = Config.getConfig("/guilds/" + guildName.toLowerCase() + ".yml");
- List<String> players = config.getStringList("players");
- List<UUID> uuids = new ArrayList<UUID>();
- for(String uuidString : players) {
- uuids.add(UUID.fromString(uuidString.split(",")[0]));
- }
- Map<UUID, String> response = null;
- try {
- response = new NameFetcher(uuids).call();
- } catch(Exception e) {
- GuildsMain.getMain().getLogger().warning("Exception while running NameFetcher: " + e.getMessage());
- }
- for(String player : players) {
- String[] info = player.split(",");
- UUID uuid = UUID.fromString(info[0]);
- members.add(
- new GuildMember(
- Rank.valueOf(info[1].toUpperCase()),
- response.get(uuid), uuid)
- );
- }
- guilds.add(new Guild(guildName, members, config));
- };
- }
- public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
- if(sender instanceof Player) {
- Player p = (Player) sender;
- try {
- switch (args[0].toLowerCase()) {
- case "info":
- Guild infoGuild = findGuild(args[1]);
- if (infoGuild != null) {
- Util.giveGuildInfo(p, infoGuild, findGuild(p));
- } else {
- p.sendMessage(LanguageData.FAKE_GUILD);
- }
- break;
- case "accept":
- case "a":
- case "join":
- if (!inviteAccept(p, args[1])) {
- p.sendMessage(LanguageData.NO_INVITE);
- }
- break;
- case "create":
- Guild possNull = findGuild(p);
- Guild possNull2 = findGuild(args[1]);
- if(possNull == null) {
- if(possNull2 == null) {
- createGuild(p, args[1], args[2]);
- } else {
- p.sendMessage(LanguageData.NAME_TAKEN);
- }
- } else {
- p.sendMessage(LanguageData.IN_GUILD);
- }
- break;
- case "help":
- p.sendMessage(ChatColor.YELLOW + "" + ChatColor.STRIKETHROUGH + "----------------------" + ChatColor.AQUA + "[" + ChatColor.GOLD + "Guild Help" + ChatColor.AQUA + "]" + ChatColor.YELLOW + ChatColor.STRIKETHROUGH + "----------------------");
- p.sendMessage(ChatColor.AQUA + " >>" + ChatColor.GREEN + " Create a guild? " + ChatColor.GOLD + "/guild create [Guildname] [Guildtag]");
- p.sendMessage(ChatColor.AQUA + " >>" + ChatColor.GREEN + " Want to invite a player to your guild? " + ChatColor.GOLD + "/guild invite [Name]");
- p.sendMessage(ChatColor.AQUA + " >>" + ChatColor.GREEN + " Want to kick a player from your guild " + ChatColor.GOLD + "/guild kick [Name]");
- p.sendMessage(ChatColor.AQUA + " >>" + ChatColor.GREEN + " Leave your current guild? " + ChatColor.GOLD + "/guild leave");
- p.sendMessage(ChatColor.AQUA + " >>" + ChatColor.GREEN + " Talk in guild chat? " + ChatColor.GOLD + "/gc [message]");
- p.sendMessage(ChatColor.AQUA + " >>" + ChatColor.GREEN + " Set the guild home? " + ChatColor.GOLD + "/guild sethome");
- p.sendMessage(ChatColor.AQUA + " >>" + ChatColor.GREEN + " Teleport to your guild home " + ChatColor.GOLD + " /guild home");
- p.sendMessage(ChatColor.AQUA + " >>" + ChatColor.GREEN + " Disband your guild? " + ChatColor.GOLD + " /guild disband");
- p.sendMessage(ChatColor.AQUA + " >>" + ChatColor.GREEN + " Rank a member in your guild? " + ChatColor.GOLD + " /guild ranking");
- p.sendMessage(ChatColor.AQUA + " >>" + ChatColor.GREEN + " Upgrade your guild bank (Coming Soon) " + ChatColor.GOLD + " /guild upgrade");
- p.sendMessage(ChatColor.AQUA + " >>" + ChatColor.GREEN + " Info about guild tiers? " + ChatColor.GOLD + " /guild tiers");
- break;
- case "tiers":
- p.sendMessage(ChatColor.YELLOW + "" + ChatColor.STRIKETHROUGH + "---------------------" + ChatColor.AQUA + "[" + ChatColor.GOLD + "Guild Tiers" + ChatColor.AQUA + "]" + ChatColor.YELLOW + ChatColor.STRIKETHROUGH + "---------------------");
- p.sendMessage(ChatColor.GREEN + "Guild Tiers are a great way to show the wealth of your guild and the guild gains great bonusses");
- p.sendMessage(ChatColor.GREEN + "Tier 1 -> 2 - 10,000");
- p.sendMessage(ChatColor.GREEN + "Tier 2 -> 3 - 20,000");
- p.sendMessage(ChatColor.GREEN + "Tier 3 -> 4 - 40,000");
- p.sendMessage(ChatColor.GREEN + "Tier 4 -> 5 - 100,000");
- p.sendMessage(ChatColor.GREEN + "Tier 5 -> 6 - 250,000");
- p.sendMessage(ChatColor.GREEN + "Tier 6 -> 7 - 600,000");
- p.sendMessage(ChatColor.GREEN + "Tier 7 -> 8 - 1,200,000");
- p.sendMessage(ChatColor.GREEN + "Tier 8 -> 9 - 2,000,000");
- p.sendMessage(ChatColor.GREEN + "Tier 9 -> 10 - 5,000,000");
- p.sendMessage(ChatColor.GREEN + "Rewards coming soon!");
- p.sendMessage(ChatColor.GREEN + "To upgrade your guild use " + ChatColor.GOLD + "/guild upgrade [Guild Name]");
- break;
- case "ranking":
- p.sendMessage(ChatColor.YELLOW + "" + ChatColor.STRIKETHROUGH + "---------------------" + ChatColor.AQUA + "[" + ChatColor.GOLD + "Guild Ranking" + ChatColor.AQUA + "]" + ChatColor.YELLOW + ChatColor.STRIKETHROUGH + "---------------------");
- p.sendMessage(ChatColor.GREEN + "In later versions of the guild system you will have the ability to setup permissions that will be linked in with guild ranks");
- p.sendMessage(ChatColor.GREEN + "for your guild, In this current release you can rank up members by doing the following command: " + ChatColor.GOLD + "/guild (knight/baron/council) [Name]");
- break;
- default:
- Guild guild = findGuild(p);
- if (guild != null) {
- guild.onCommand(p, args);
- return false;
- }
- p.sendMessage(LanguageData.CMD_NOT_FOUND);
- }
- } catch(ArrayIndexOutOfBoundsException e) {
- p.sendMessage(LanguageData.NOT_ENOUGH_ARGUMENTS);
- }
- }
- return false;
- }
- public void addInvite(Invite i, Player p) {
- for(Invite invite : invites) {
- // For no repeats
- if(invite.getInviter() == i.getInviter()
- && invite.getInvited() == i.getInvited()
- && invite.getGuild() == i.getGuild()) {
- return;
- }
- }
- invites.add(i);
- p.sendMessage(LanguageData.INVITE);
- }
- public boolean inviteAccept(Player player, String inviter) {
- if(findGuild(player) == null) {
- for(Invite i : invites) {
- if(i.getInvited().equalsIgnoreCase(player.getName())) {
- if(i.getGuild().equalsIgnoreCase(inviter) || i.getInviter().equalsIgnoreCase(inviter)) {
- Guild l = findGuild(i.getGuild());
- l.addMember(player);
- invites.remove(i);
- return true;
- }
- }
- }
- } else {
- player.sendMessage(LanguageData.IN_GUILD);
- return true;
- }
- return false;
- }
- public Guild findGuild(Player player) {
- for(Guild guild : guilds) {
- if(guild.getMember(player.getName()) != null) {
- return guild;
- }
- }
- return null;
- }
- public Guild findGuild(String guildName) {
- for(Guild guild : guilds) {
- if(guild.getName().equalsIgnoreCase(guildName)) {
- return guild;
- }
- }
- return null;
- }
- public Guild findGuild(UUID player) {
- for(Guild guild : guilds) {
- if(guild.getMember(player) != null) {
- return guild;
- }
- }
- return null;
- }
- private void createGuild(Player p, String guildName, String tag) {
- guilds.add(Config.createGuild(p, guildName, tag));
- }
- public void deleteGuild(Guild guild) {
- guilds.remove(guild);
- Config.deleteConfig("/guilds/" + guild.getName().toLowerCase() + ".yml");
- }
- public void save() {
- ArrayList<String> guildNames = new ArrayList<String>();
- for(Guild guild : guilds) {
- guildNames.add(guild.getName());
- guild.save();
- }
- GuildsMain.getData().set("Guilds", guildNames);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement