// // Licensed under the MIT License. See LICENSE file in the project root for full license information. // namespace MUnique.OpenMU.GuildServer; using MUnique.OpenMU.Interfaces; /// /// Interface for a publisher of guild related events. /// public interface IGuildChangePublisher { /// /// Notifies the game server that a guild member got removed from a guild. /// /// Name of the player which got removed from a guild. ValueTask GuildPlayerKickedAsync(string playerName); /// /// Notifies the game server that a guild got deleted. /// /// The guild identifier. ValueTask GuildDeletedAsync(uint guildId); /// /// Assigns a guild to a player. /// /// The server identifier. /// Name of the character. /// The status. ValueTask AssignGuildToPlayerAsync(byte serverId, string characterName, GuildMemberStatus status); /// /// Notifies game servers that an alliance was created (or a guild was added to an existing alliance). /// /// The identifier of the alliance master guild. /// The identifier of the newly added member guild. ValueTask AllianceCreatedAsync(uint masterGuildId, uint memberGuildId); /// /// Notifies game servers that a guild was removed from an alliance. /// When master and member guild are the same, the whole alliance got disbanded. /// /// The identifier of the alliance master guild. /// The identifier of the removed member guild. ValueTask AllianceDisbandedAsync(uint masterGuildId, uint memberGuildId); /// /// Notifies game servers that the hostility between two guilds (or alliances) has changed. /// /// The identifier of the first guild. /// All guild IDs in the alliance of guild A (or just [guildIdA] if not in an alliance). /// The identifier of the second guild. /// All guild IDs in the alliance of guild B (or just [guildIdB] if not in an alliance). /// true if the hostility was created; false if it was removed. ValueTask GuildHostilityChangedAsync(uint guildIdA, IReadOnlyList allianceGuildIdsA, uint guildIdB, IReadOnlyList allianceGuildIdsB, bool created); }