public void JoinGuild(GuildRecord guild, Character character, GuildRightsBitEnum rights, ushort rank)
        {
            CharacterGuildRecord characterGuild = new CharacterGuildRecord(character.Id, guild.Id, rank, 0, 0, (uint)rights);

            characterGuild.AddElement();
            character.HumanOptions.Add(new HumanOptionGuild(guild.GetGuildInformations()));
            character.Client.Send(new GuildJoinedMessage(guild.GetGuildInformations(), (uint)rights, true));
            character.RefreshOnMapInstance();
            character.LearnEmote(GuildProvider.EMOTE_ID);
            if (character.HasAlliance)
            {
                character.HumanOptions.Add(new HumanOptionAlliance(character.GetAlliance().GetAllianceInformations(), (sbyte)0));
                character.Client.Send(new AllianceJoinedMessage(character.GetAlliance().GetAllianceInformations(), true));
                character.RefreshOnMapInstance();
                character.LearnEmote(AllianceProvider.EMOTE_ID);
            }
        }