Example #1
0
 public virtual bool CanChangeGuildLeader(BasePlayerCharacterEntity playerCharacterEntity, string characterId, out int guildId, out GuildData guild)
 {
     guildId = 0;
     guild   = null;
     if (playerCharacterEntity == null || !IsServer)
     {
         return(false);
     }
     guildId = playerCharacterEntity.GuildId;
     if (guildId <= 0 || !guilds.TryGetValue(guildId, out guild))
     {
         SendServerGameMessage(playerCharacterEntity.ConnectionId, GameMessage.Type.NotJoinedGuild);
         return(false);
     }
     if (!guild.IsLeader(playerCharacterEntity))
     {
         SendServerGameMessage(playerCharacterEntity.ConnectionId, GameMessage.Type.NotGuildLeader);
         return(false);
     }
     if (!guild.ContainsMemberId(characterId))
     {
         SendServerGameMessage(playerCharacterEntity.ConnectionId, GameMessage.Type.CharacterNotJoinedGuild);
         return(false);
     }
     return(true);
 }
Example #2
0
        public virtual bool CanKickFromGuild(BasePlayerCharacterEntity playerCharacterEntity, string characterId, out int guildId, out GuildData guild)
        {
            guildId = 0;
            guild   = null;
            if (playerCharacterEntity == null || !IsServer)
            {
                return(false);
            }
            guildId = playerCharacterEntity.GuildId;
            if (guildId <= 0 || !guilds.TryGetValue(guildId, out guild))
            {
                SendServerGameMessage(playerCharacterEntity.ConnectionId, GameMessage.Type.NotJoinedGuild);
                return(false);
            }
            if (guild.IsLeader(characterId))
            {
                SendServerGameMessage(playerCharacterEntity.ConnectionId, GameMessage.Type.CannotKickGuildLeader);
                return(false);
            }
            if (!guild.CanKick(playerCharacterEntity.Id))
            {
                SendServerGameMessage(playerCharacterEntity.ConnectionId, GameMessage.Type.CannotKickGuildMember);
                return(false);
            }
            if (playerCharacterEntity.Id.Equals(characterId))
            {
                SendServerGameMessage(playerCharacterEntity.ConnectionId, GameMessage.Type.CannotKickYourSelfFromGuild);
                return(false);
            }
            byte role;

            if (!guild.TryGetMemberRole(characterId, out role) && playerCharacterEntity.GuildRole < role)
            {
                SendServerGameMessage(playerCharacterEntity.ConnectionId, GameMessage.Type.CannotKickHigherGuildMember);
                return(false);
            }
            if (!guild.ContainsMemberId(characterId))
            {
                SendServerGameMessage(playerCharacterEntity.ConnectionId, GameMessage.Type.CharacterNotJoinedGuild);
                return(false);
            }
            return(true);
        }