Exemplo n.º 1
0
        protected override void InternalParse()
        {
            GuildEvents _event = (GuildEvents)Reader.ReadByte();

            Output.AppendFormatLine("Event: {0} ({0:D})", _event);

            byte nStrings = Reader.ReadByte();

            Output.AppendLine("Strings: " + nStrings);
            for (byte i = 0; i < nStrings; ++i)
            {
                Output.AppendFormatLine("  {0}) {1}", i, Reader.ReadCString());
            }

            switch (_event)
            {
            case GuildEvents.GE_JOINED:
            case GuildEvents.GE_LEFT:
            case GuildEvents.GE_SIGNED_ON:
            case GuildEvents.GE_SIGNED_OFF:
            case GuildEvents.GE_REMOVED:
                Output.AppendLine("Guid: " + Reader.ReadGuid());
                break;
            }
        }
Exemplo n.º 2
0
        //Event
        public void SendBroadcastEvent(GuildEvents guildEvent, ulong guid = 0, params object[] str)
        {
            int strCount = str.Count();

            if (strCount > 3)
            {
                return;
            }

            PacketWriter writer = new PacketWriter(Opcodes.SMSG_GuildEvent);

            writer.WriteUInt8((byte)guildEvent);
            writer.WriteUInt8((byte)strCount);

            foreach (string text in str)
            {
                writer.WriteCString(text);
            }

            if (guid != 0)
            {
                writer.WriteUInt64(guid);
            }

            BroadcastPacket(writer);
        }
Exemplo n.º 3
0
        /// <summary>
        /// When overridden in the derived class, logs an event from a guild.
        /// </summary>
        /// <param name="eventCreator">The guild member that created the event.</param>
        /// <param name="guildEvent">The type of event that took place.</param>
        /// <param name="eventTarget">Optionally contains the other guild member that the event involves. This member
        /// may or may not actually be in the guild at this point.</param>
        /// <param name="arg0">The optional first argument string.</param>
        /// <param name="arg1">The optional second argument string.</param>
        /// <param name="arg2">The optional third argument string.</param>
        protected override void InternalLogEvent(IGuildMember eventCreator, GuildEvents guildEvent, IGuildMember eventTarget,
                                                 string arg0, string arg1, string arg2)
        {
            var guildID  = eventCreator.Guild.ID;
            var charID   = (CharacterID)eventCreator.ID;
            var eventID  = (byte)guildEvent;
            var targetID = (eventTarget == null ? null : (CharacterID?)eventTarget.ID);

            var args = new InsertGuildEventQuery.QueryArgs(guildID, charID, targetID, eventID, arg0, arg1, arg2);

            _insertGuildEventQuery.Execute(args);
        }
Exemplo n.º 4
0
        /// <summary>
        /// Logs an event from a guild.
        /// </summary>
        /// <param name="eventCreator">The guild member that created the event.</param>
        /// <param name="guildEvent">The type of event that took place.</param>
        /// <param name="eventTarget">Optionally contains the other guild member that the event involves. This member
        /// may or may not actually be in the guild at this point.</param>
        /// <param name="arg0">The optional first argument string.</param>
        /// <param name="arg1">The optional second argument string.</param>
        /// <param name="arg2">The optional third argument string.</param>
        /// <exception cref="ArgumentNullException"><paramref name="eventCreator"/> is null.</exception>
        public void LogEvent(IGuildMember eventCreator, GuildEvents guildEvent, IGuildMember eventTarget, string arg0, string arg1,
                             string arg2)
        {
            if (eventCreator == null)
            {
                throw new ArgumentNullException("eventCreator");
            }

            Debug.Assert(EnumHelper <GuildEvents> .IsDefined(guildEvent));

            InternalLogEvent(eventCreator, guildEvent, eventTarget, arg0, arg1, arg2);
        }
 /// <summary>
 /// Logs an event from a guild.
 /// </summary>
 /// <param name="guildManager">The <see cref="IGuildManager"/>.</param>
 /// <param name="eventCreator">The guild member that created the event.</param>
 /// <param name="guildEvent">The type of event that took place.</param>
 /// <exception cref="ArgumentNullException"><paramref name="eventCreator"/> is null.</exception>
 public static void LogEvent(this IGuildManager guildManager, IGuildMember eventCreator, GuildEvents guildEvent)
 {
     guildManager.LogEvent(eventCreator, guildEvent, null, null, null, null);
 }
 /// <summary>
 /// Logs an event from a guild.
 /// </summary>
 /// <param name="guildManager">The <see cref="IGuildManager"/>.</param>
 /// <param name="eventCreator">The guild member that created the event.</param>
 /// <param name="guildEvent">The type of event that took place.</param>
 /// <param name="eventTarget">Optionally contains the other guild member that the event involves. This member
 /// may or may not actually be in the guild at this point.</param>
 /// <param name="arg0">The optional first argument string.</param>
 /// <exception cref="ArgumentNullException"><paramref name="eventCreator"/> is null.</exception>
 public static void LogEvent(this IGuildManager guildManager, IGuildMember eventCreator, GuildEvents guildEvent,
                             IGuildMember eventTarget, string arg0)
 {
     guildManager.LogEvent(eventCreator, guildEvent, eventTarget, arg0, null, null);
 }
Exemplo n.º 7
0
 /// <summary>
 /// Logs an event from a guild.
 /// </summary>
 /// <param name="guildManager">The <see cref="IGuildManager"/>.</param>
 /// <param name="eventCreator">The guild member that created the event.</param>
 /// <param name="guildEvent">The type of event that took place.</param>
 /// <exception cref="ArgumentNullException"><paramref name="eventCreator"/> is null.</exception>
 public static void LogEvent(this IGuildManager guildManager, IGuildMember eventCreator, GuildEvents guildEvent)
 {
     guildManager.LogEvent(eventCreator, guildEvent, null, null, null, null);
 }
Exemplo n.º 8
0
 /// <summary>
 /// Logs an event from a guild.
 /// </summary>
 /// <param name="guildManager">The <see cref="IGuildManager"/>.</param>
 /// <param name="eventCreator">The guild member that created the event.</param>
 /// <param name="guildEvent">The type of event that took place.</param>
 /// <param name="eventTarget">Optionally contains the other guild member that the event involves. This member
 /// may or may not actually be in the guild at this point.</param>
 /// <param name="arg0">The optional first argument string.</param>
 /// <exception cref="ArgumentNullException"><paramref name="eventCreator"/> is null.</exception>
 public static void LogEvent(this IGuildManager guildManager, IGuildMember eventCreator, GuildEvents guildEvent,
                             IGuildMember eventTarget, string arg0)
 {
     guildManager.LogEvent(eventCreator, guildEvent, eventTarget, arg0, null, null);
 }
Exemplo n.º 9
0
		/// <summary>
		/// Sends event connected with guilds to all guild members. Use this one for promotion/demotion events.
		/// </summary>
		/// <param name="guild">guild</param>
		/// <param name="guildEvent">event that happened</param>
		/// <param name="affectedMember">The <see cref="GuildMember"/> which was affected</param>
		/// <param name="influencer">one who caused this event</param>
		public static void SendEventToGuild(Guild guild, GuildEvents guildEvent, GuildMember affectedMember, GuildMember influencer)
		{
			using (var packet = CreateEventPacket(guild, guildEvent, affectedMember, influencer))
			{
				guild.SendAll(packet);
			}
		}
Exemplo n.º 10
0
		private static RealmPacketOut CreateEventPacket(Guild guild, GuildEvents guildEvent, GuildMember affectedMember)
		{
			return CreateEventPacket(guild, guildEvent, affectedMember, null);
		}
Exemplo n.º 11
0
		/// <summary>
		/// Sends event connected with guilds to all guild members, except one
		/// </summary>
		/// <param name="guild">guild</param>
		/// <param name="guildEvent">event that happened</param>
		/// <param name="affectedMember">The <see cref="GuildMember"/> which was affected</param>
		/// <param name="ignoredCharacter">character to be ignored</param>
		public static void SendEventToGuild(Guild guild, GuildEvents guildEvent, GuildMember affectedMember, Character ignoredCharacter)
		{
			using (RealmPacketOut packet = CreateEventPacket(guild, guildEvent, affectedMember))
			{
				guild.Broadcast(packet, ignoredCharacter);
			}
		}
Exemplo n.º 12
0
		/// <summary>
		/// Sends event connected with guilds to all guild members
		/// </summary>
		/// <param name="guild">guild</param>
		/// <param name="guildEvent">event that happened</param>
		/// <param name="affectedMember">The <see cref="GuildMember"/> which was affected</param>
		public static void SendEventToGuild(Guild guild, GuildEvents guildEvent, GuildMember affectedMember)
		{
			using (var packet = CreateEventPacket(guild, guildEvent, affectedMember))
			{
				guild.Broadcast(packet);
			}
		}
Exemplo n.º 13
0
		/// <summary>
		/// Sends event connected with guilds to all guild members
		/// </summary>
		/// <param name="guild">guild</param>
		/// <param name="guildEvent">event that happened</param>
		public static void SendEventToGuild(Guild guild, GuildEvents guildEvent)
		{
			using (var packet = CreateEventPacket(guild, guildEvent, null))
			{
				guild.Broadcast(packet);
			}
		}
Exemplo n.º 14
0
		/// <summary>
		/// Sends events connected with guilds
		/// </summary>
		/// <param name="client">the client to send to</param>
		/// <param name="guild">guild</param>
		/// <param name="guildEvent">event that happened</param>
		/// <param name="affectedMember">The <see cref="GuildMember"/> which was affected</param>
		public static void SendEvent(IPacketReceiver client, Guild guild, GuildEvents guildEvent, GuildMember affectedMember)
		{
			using (RealmPacketOut packet = CreateEventPacket(guild, guildEvent, affectedMember))
			{
				client.Send(packet);
			}
		}
Exemplo n.º 15
0
		/// <summary>
		/// Sends event connected with guilds to all guild members, except one
		/// </summary>
		/// <param name="guild">guild</param>
		/// <param name="guildEvent">event that happened</param>
		/// <param name="ignoredCharacter">character to be ignored</param>
		public static void SendEventToGuild(Guild guild, GuildEvents guildEvent, Character ignoredCharacter)
		{
			using (RealmPacketOut packet = CreateEventPacket(guild, guildEvent, null))
			{
				guild.SendAll(packet, ignoredCharacter);
			}
		}
Exemplo n.º 16
0
 /// <summary>
 /// When overridden in the derived class, logs an event from a guild.
 /// </summary>
 /// <param name="eventCreator">The guild member that created the event.</param>
 /// <param name="guildEvent">The type of event that took place.</param>
 /// <param name="eventTarget">Optionally contains the other guild member that the event involves. This member
 /// may or may not actually be in the guild at this point.</param>
 /// <param name="arg0">The optional first argument string.</param>
 /// <param name="arg1">The optional second argument string.</param>
 /// <param name="arg2">The optional third argument string.</param>
 protected abstract void InternalLogEvent(IGuildMember eventCreator, GuildEvents guildEvent, IGuildMember eventTarget,
                                          string arg0, string arg1, string arg2);
Exemplo n.º 17
0
		/// <summary>
		/// TODO: Fix for 3.3
		/// </summary>
		/// <param name="guild"></param>
		/// <param name="guildEvent"></param>
		/// <param name="affectedMember"></param>
		/// <param name="influencer"></param>
		/// <returns></returns>
		private static RealmPacketOut CreateEventPacket(Guild guild, GuildEvents guildEvent, GuildMember affectedMember, GuildMember influencer)
		{
			var packet = new RealmPacketOut(RealmServerOpCode.SMSG_GUILD_EVENT);

			packet.WriteByte((byte)guildEvent);

			// Next byte is strings count

			switch (guildEvent)
			{
				case GuildEvents.PROMOTION:
				case GuildEvents.DEMOTION:
					packet.Write((byte)3);
					packet.WriteCString(influencer.Name);
					packet.WriteCString(affectedMember.Name);
					packet.WriteCString(affectedMember.Rank.Name);
					break;

				case GuildEvents.MOTD:
					if (guild.MOTD != null)
					{
						packet.Write((byte)1);
						packet.WriteCString(guild.MOTD);
					}
					else
					{
						packet.Write((byte)0);
					}
					break;

				case GuildEvents.JOINED:
				case GuildEvents.LEFT:
				case GuildEvents.ONLINE:
				case GuildEvents.OFFLINE:
					packet.Write((byte)1);
					packet.WriteCString(affectedMember.Name);
					break;

				case GuildEvents.REMOVED:
					packet.Write((byte)2);
					packet.WriteCString(influencer.Name);
					packet.WriteCString(affectedMember.Name);
					break;

				case GuildEvents.LEADER_CHANGED:
					packet.Write((byte)2);
					packet.WriteCString(affectedMember.Name);
					packet.WriteCString(influencer.Name);
					break;

				default:
					packet.Write((byte)0);
					break;
			}

			return packet;
		}