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