public static void handleChannelJoinEvent(ChannelJoinEvent event)
	{
		Bukkit.getServer().getPluginManager().callEvent(event);
		if (!event.isCancelled())
		{
			ChatChannel chatChannel = event.getChatChannel();
			String chatChannelCreator = chatChannel.getCreator();

			Player player = event.getPlayer();
			String playerName = player.getName();
			String playerDisplayName = player.getDisplayName();

			if (chatChannel.hasPermission())
			{
				if (!event.getPlayer().hasPermission(chatChannel.getChannelPermission()))
				{
					player.sendMessage(StringUtil.formatColorCodes(String.format("&cNon-sufficient permissions to join the channel; You must have &e%s&c to join.", chatChannel.getChannelPermission())));
					return;
				}
			}

			if (chatChannel.isPrivate() && !chatChannelCreator.equalsIgnoreCase(playerName))
			{
				if (ChatManager.channelHandler.hasChannelInvitation(playerName))
				{
					if (ChatManager.channelHandler.acceptChannelInvitation(playerName))
					{
						if (chatChannel.allowJoinLeaveMessages())
						{
							chatChannel.sendToMembers(StringUtil.formatColorCodes(String.format("&7%s has joined the Channel!", playerDisplayName)));
						}
					}
					else
					{
						player.sendMessage(StringUtil.formatColorCodes("&cFailed to join the channel."));
					}
				}
				else
				{
					player.sendMessage(StringUtil.formatColorCodes("&eYou don't have an invitation to join this chat."));
				}
			}
			else
			{
				String playerCurrentChannelName = PlayerHandler.getData(playerName).getChatChannel(); //Get the players cPlayer instance

				ChatChannel currentPlayerChannel = ChatManager.channelHandler.getChannel(playerCurrentChannelName); //Get the players current chat channel

				ChannelLeaveEvent channelLeaveEvent = new ChannelLeaveEvent(currentPlayerChannel, player);
				ChannelEventHandler.handleChannelLeaveEvent(channelLeaveEvent);

				ChatManager.channelHandler.addPlayerToChannel(player, chatChannel);

				if (chatChannel.allowJoinLeaveMessages())
				{
					chatChannel.sendToMembers(StringUtil.formatColorCodes(String.format("&7%s has joined the Channel!", playerName)));
				}
				PlayerHandler.getData(playerName).setChatChannel(chatChannel.getName());
				player.sendMessage(StringUtil.formatColorCodes("&7You're now chatting in: &o" + chatChannel.getName()));
			}
		}
	}