コード例 #1
0
 private void ZyreLeaveEvent(object sender, ZyreEventLeave e)
 {
     // This node has left the zone
     ZoneMember.Raise(this, ZoneMemberEvent.LeavingEvent, new ZoneMemberEvent
     {
         NodeName = e.SenderName,
         NodeUuid = e.SenderUuid,
         Zone     = e.GroupName
     });
 }
コード例 #2
0
 private void ZyreJoinEvent(object sender, ZyreEventJoin e)
 {
     // This node has joined a zone
     ZoneMember.Raise(this, ZoneMemberEvent.JoiningEvent, new ZoneMemberEvent
     {
         NodeName = e.SenderName,
         NodeUuid = e.SenderUuid,
         Zone     = e.GroupName
     });
 }
コード例 #3
0
        public static async Task <bool> AddMember(SocketCommandContext context, Zone zone, SocketGuildUser user, Enums.ZoneAccess zoneAccess)
        {
            string characterID;

            using (var dbConnection = new DatabaseConnection(DatabaseID.Players))
            {
                characterID = PlayerDataManager.FindLinkedDiscordCharacter(dbConnection.Database, user.Id);
            }

            if (string.IsNullOrEmpty(characterID))
            {
                await context.Channel.SendMessageAsync("That user has not linked their Discord account with their in-game account yet. Unable to add to the zone.");

                return(false);
            }

            bool foundMember = false;

            var zoneMember = zone.Members.Where(x => x.CharacterID == characterID).FirstOrDefault();

            if (zoneMember == null)
            {
                zoneMember = new ZoneMember()
                {
                    Access      = zoneAccess,
                    ZoneID      = zone.Num,
                    CharacterID = characterID
                };

                zone.Members.Add(zoneMember);
            }
            else
            {
                zoneMember.Access = zoneAccess;
                foundMember       = true;
            }

            ZoneManager.SaveZone(zone.Num);

            await SyncUsersWithZoneRole(context, zone.Num);

            if (!foundMember)
            {
                await context.Channel.SendMessageAsync($"`{user.Username}` added as a `{zoneAccess}` to `{zone.Name}`!");
            }
            else
            {
                await context.Channel.SendMessageAsync($"`{user.Username}` updated to be a `{zoneAccess}` in `{zone.Name}`!");
            }

            return(true);
        }