Exemplo n.º 1
0
        private void OnReady(Ready arg)
        {
            Guard.IsNotNull(arg, nameof(arg));

            Self.SetSelfUser(arg.User);

            var guildSettings   = new Dictionary <ulong, GuildSettings>();
            var channelSettings = new Dictionary <ulong, ChannelSettings>();

            foreach (var jsonGuildSettings in arg.GuildSettings)
            {
                var gs = new GuildSettings(jsonGuildSettings, out ChannelSettings[] css);
                guildSettings.Add(gs.GuildId ?? 0, gs);
                foreach (var cs in css)
                {
                    channelSettings.Add(cs.ChannelId, cs);
                }
            }

            foreach (var guild in arg.Guilds)
            {
                GuildSettings?thisGuildSettings = null;
                guildSettings.TryGetValue(guild.Id, out thisGuildSettings);

                // All child members are handled here
                Guilds.AddGuild(guild, thisGuildSettings, channelSettings);
            }

            foreach (var channel in arg.PrivateChannels)
            {
                ChannelSettings?thisChannelSettings = null;
                channelSettings?.TryGetValue(channel.Id, out thisChannelSettings);

                Channels.AddChannel(channel, null, thisChannelSettings);
            }

            foreach (var readState in arg.ReadStates)
            {
                Channels.AddReadState(readState);
            }

            foreach (var presence in arg.Presences)
            {
                Users.AddPresence(presence);
            }

            foreach (var relationship in arg.Relationships)
            {
                Users.AddRelationship(relationship);
            }

            Self.UpdateSettings(arg.Settings);

            Guard.IsNotNull(Self.CurrentUser, nameof(Self.CurrentUser));

            LoggedIn?.Invoke(this, Self.CurrentUser);
        }
Exemplo n.º 2
0
        private void OnChannelCreated(JsonChannel arg)
        {
            var channel = Channels.AddChannel(arg);

            if (channel is null)
            {
                return;
            }

            ChannelCreated?.Invoke(this, channel);
        }
Exemplo n.º 3
0
        public ServerSocket(TcpTunnelServer tunnel)
        {
            this.Tunnel = tunnel;

            Tunnel.MinecraftHandler.PlayerKicked            += new MinecraftHandler.OnPlayerKicked(MinecraftHandler_PlayerKicked);
            Tunnel.MinecraftHandler.TimerCommandReader.Tick += new EventHandler(TimerCommandReader_Tick);
            Tunnel.MinecraftHandler.ExecuteMODT             += new MinecraftHandler.OnExecuteMODT(MinecraftHandler_ExecuteMODT);
            Tunnel.MinecraftHandler.PlayerJoined            += new MinecraftHandler.OnPlayerjoined(MinecraftHandler_PlayerJoined);

            Channels.AddChannel(defaultChannel);
        }