Exemplo n.º 1
0
        public WebsocketMessage HandleMessage(WebsocketMessage message)
        {
            var toReturn = new WebsocketMessage();

            toReturn.command = message.command;

            switch (message.command)
            {
            case "write":
                Console.WriteLine("<<<<< Comando: Write >>>>>");
                toReturn.success = Write(message.tag);
                toReturn.tag     = message.tag;
                break;

            case "read":
                Console.WriteLine("<<<<< Comando: read >>>>>");
                var result = Read();
                if (result != "failed")
                {
                    toReturn.success = true;
                    toReturn.tag     = result;
                }
                else
                {
                    toReturn.success = false;
                    toReturn.tag     = message.tag;
                }
                break;

            default:
                Console.WriteLine("<<<< Commando desconocido o flatante >>>");
                break;
            }
            return(toReturn);
        }
Exemplo n.º 2
0
        private void EventBusOnConnectionEstablished(object sender, Version version)
        {
            log.Info($"Connected to FuelRats API version '{version}'");

            var profileRequest = WebsocketMessage.Request("users", "profile", ApiEventNames.UserProfile);

            eventBus.PostWebsocketMessage(profileRequest);
        }
Exemplo n.º 3
0
        public HelloWorldMessage ConvertFromWebsocketMessage(WebsocketMessage websocketMessage)
        {
            var str = Encoding.UTF8.GetString(websocketMessage.Data);

            return(new HelloWorldMessage
            {
                HelloWorld = str == "Hello world!"
            });
        }
Exemplo n.º 4
0
        private void EventBusOnProfileLoaded(object sender, User receivedUser)
        {
            PlayerInfo.User = receivedUser;

            var rescuesRequest = WebsocketMessage.Request("rescues", "read", ApiEventNames.RescueRead);

            rescuesRequest.AddData(nameof(Rescue.Status).ToApiName(), WebsocketMessage.Data("$not", RescueState.Closed.ToApiName()));
            eventBus.PostWebsocketMessage(rescuesRequest);
        }
Exemplo n.º 5
0
        private string BuildRequestMsg(WebsocketMessage subMsg, string msgType)
        {
            var reqMsg = new JArray();

            reqMsg.Add(new JValue(0));
            reqMsg.Add(new JValue(msgType));
            reqMsg.Add(null);
            reqMsg.Add(JObject.FromObject(subMsg));

            return(reqMsg.ToString());
        }
Exemplo n.º 6
0
        public void SendMessage(WebsocketHandler websocketHandler, string message)
        {
            var websocketMessage = new WebsocketMessage();

            websocketMessage.Data   = Encoding.UTF8.GetBytes(message);
            websocketMessage.Opcode = WebsocketMessage.Opcodes.Text;
            websocketMessage.FIN    = true;
            websocketMessage.Masked = true;
            rng.GetBytes(websocketMessage.Mask);
            websocketHandler.QueueMessage(websocketMessage);
        }
    public void SendMessage(string dataType)
    {
        message = new WebsocketMessage()
        {
            type  = dataType,
            value = ""
        };
        JsonMessage = JsonUtility.ToJson(message);

        websocket.SendText(JsonMessage); //Send Data
    }
Exemplo n.º 8
0
        private void EventBusOnConnectionEstablished(object sender, Version version)
        {
            log.Info($"Connected to FuelRats API version '{version}'");

            var profileRequest = WebsocketMessage.Request("users", "profile", ApiEventNames.UserProfile);

            eventBus.PostWebsocketMessage(profileRequest);

            var rescuesRequest = WebsocketMessage.Request("rescues", "read", ApiEventNames.RescueRead);

            rescuesRequest.AddData(nameof(Rescue.Status).ToApiName(), WebsocketMessage.Data("$not", RescueState.Closed.ToApiName()));
            eventBus.PostWebsocketMessage(rescuesRequest);
        }
    public void SendPlayerInformation(Player playerData)
    {
        JsonPlayer = JsonUtility.ToJson(playerData);

        message = new WebsocketMessage()
        {
            type  = "LEADERBOARD_SUBMIT",
            value = JsonPlayer
        };
        JsonMessage = JsonUtility.ToJson(message);

        websocket.SendText(JsonMessage); //Send Data
    }
Exemplo n.º 10
0
        private async Task HandleDeafen()
        {
            var voiceManager = DiscordManager.GetDiscord().GetVoiceManager();

            voiceManager.SetSelfDeaf(!voiceManager.IsSelfDeaf());

            var isDeafened = voiceManager.IsSelfDeaf();

            Console.WriteLine("Deafened changed to " + isDeafened);

            var msg = new WebsocketMessage()
            {
                Type = RichPresenceMessageTypes.VoiceStatus
            };

            msg.From(new VoiceStatusMessage {
                IsConnected = true, IsMuted = IsSelfMuted(voiceManager), IsDeafened = voiceManager.IsSelfDeaf()
            });
            await Send(msg);
        }
        private async Task HandleClickedConnect(VoiceLobbyMessage voiceLobbyMessage)
        {
            var lobbyManager = DiscordManager.GetDiscord().GetLobbyManager();

            // Search lobbies.
            var query = lobbyManager.GetSearchQuery();

            // Filter by a metadata value.
            query.Filter("metadata.FoundryRemoteIp", LobbySearchComparison.Equal, LobbySearchCast.String, voiceLobbyMessage.WorldUniqueIdentifier);
            // Only return 1 result max.
            query.Limit(1);

            Console.WriteLine("Searching for existing Lobbies with FoundryRemoteIp of " + voiceLobbyMessage.WorldUniqueIdentifier);

            lobbyManager.Search(query, (_) =>
            {
                Console.WriteLine("Search returned {0} lobbies", lobbyManager.LobbyCount());
                if (lobbyManager.LobbyCount() == 1)
                {
                    CurrentLobby = lobbyManager.GetLobby(lobbyManager.GetLobbyId(0));
                    Console.WriteLine("Sirst lobby secret: {0}", CurrentLobby.Value.Secret);

                    lobbyManager.ConnectLobby(CurrentLobby.Value.Id, CurrentLobby.Value.Secret, (Result result, ref Lobby connectedLobby) =>
                    {
                        CurrentLobby = connectedLobby;
                        Console.WriteLine("Connected to Lobby " + CurrentLobby.Value.Id + " ? " + result);

                        // Connect to voice chat.
                        lobbyManager.ConnectVoice(CurrentLobby.Value.Id, async(_) =>
                        {
                            Console.WriteLine("Connected to voice chat!");
                            var voiceManager = DiscordManager.GetDiscord().GetVoiceManager();
                            var msg          = new WebsocketMessage()
                            {
                                Type = RichPresenceMessageTypes.VoiceStatus
                            };
                            msg.From(new VoiceStatusMessage {
                                IsConnected = true, IsMuted = voiceManager.IsSelfMute(), IsDeafened = voiceManager.IsSelfDeaf()
                            });
                            await Send(msg);
                        });
                    });
                }
                else if (lobbyManager.LobbyCount() == 0)
                {
                    var transaction = lobbyManager.GetLobbyCreateTransaction();
                    transaction.SetCapacity((uint)voiceLobbyMessage.VoicePartySize);
                    transaction.SetType(LobbyType.Public);
                    transaction.SetMetadata("FoundryRemoteIp", voiceLobbyMessage.WorldUniqueIdentifier);

                    lobbyManager.CreateLobby(transaction, (Result result, ref Lobby createdLobby) =>
                    {
                        CurrentLobby = createdLobby;
                        Console.WriteLine("Created new Lobby " + CurrentLobby.Value.Id);
                        if (result != Result.Ok)
                        {
                            Console.WriteLine("Couldn't create new Discord lobby");
                            return;
                        }

                        // Connect to voice chat.
                        lobbyManager.ConnectVoice(CurrentLobby.Value.Id, async(_) =>
                        {
                            Console.WriteLine("Connected to voice chat!");
                            var voiceManager = DiscordManager.GetDiscord().GetVoiceManager();
                            var msg          = new WebsocketMessage()
                            {
                                Type = RichPresenceMessageTypes.VoiceStatus
                            };
                            msg.From(new VoiceStatusMessage {
                                IsConnected = true, IsMuted = voiceManager.IsSelfMute(), IsDeafened = voiceManager.IsSelfDeaf()
                            });
                            await Send(msg);
                        });
                    });
                }
            });
        }
Exemplo n.º 12
0
        bool IWebsocketModule.HandleReceivedMessage(Client.Client client, WebsocketHandler handler, WebsocketMessage receivedMessage)
        {
            var messageString = Encoding.UTF8.GetString(receivedMessage.Data);

            client.Log(">" + messageString);
            return(false);
        }
Exemplo n.º 13
0
 bool IWebsocketModule.HandleReceivedMessage(ServerSide.Server server, WebsocketHandler handler, ClientData client, WebsocketMessage receivedMessage)
 {
     this.SendMessage(handler, client, receivedMessage);
     return(false);
 }
Exemplo n.º 14
0
 public void SendMessage(WebsocketHandler handler, ClientData client, WebsocketMessage message)
 {
     handler.QueueMessage(client, message.Data, WebsocketMessage.Opcodes.Binary);
 }
        public async Task HandleMessage(WebsocketMessage message)
        {
            var msg = JsonConvert.DeserializeObject <T>(message.Payload);

            await OnMessage(msg);
        }
Exemplo n.º 16
0
 public void SendMessage(WebsocketMessage message)
 {
     this.WebsocketRoutingHandler.QueueMessage(this.ClientData, message);
 }
Exemplo n.º 17
0
 public T ConvertFromWebsocketMessage(WebsocketMessage websocketMessage)
 {
     return(this.convertFrom(websocketMessage));
 }
Exemplo n.º 18
0
 public void CallHandleReceivedMessage(WebsocketMessage receivedMessage)
 {
     this.HandleReceivedMessage(receivedMessage);
 }
Exemplo n.º 19
0
 public void PostWebsocketMessage(WebsocketMessage websocketMessage)
 {
     websocketHandler.SendQuery(websocketMessage);
 }
Exemplo n.º 20
0
 public abstract void HandleReceivedMessage(WebsocketMessage receivedMessage);
Exemplo n.º 21
0
        protected override async Task OnMessage(ModuleLaunchedMessage message)
        {
            var userManager = DiscordManager.GetDiscord().GetUserManager();

            userManager.OnCurrentUserUpdate += async() =>
            {
                var currentUser = userManager.GetCurrentUser();

                Console.WriteLine("User fetched: {0} ({1})", currentUser.Username, currentUser.Id);

                // Request users's avatar data.
                // This can only be done after a user is successfully fetched.
                var imageManager = DiscordManager.GetDiscord().GetImageManager();
                imageManager.Fetch(ImageHandle.User(currentUser.Id), async(result, handle) =>
                {
                    if (result == Result.Ok)
                    {
                        Console.WriteLine("Fetched Image, processing..");
                        // You can also use GetTexture2D within Unity.
                        // These return raw RGBA.
                        var data = imageManager.GetData(handle);

                        var rgbaList = new List <Rgba32>();

                        for (int x = 0; x < data.Length; x += 4)
                        {
                            rgbaList.Add(new Rgba32(data[x], data[x + 1], data[x + 2], data[x + 3]));
                        }

                        var image = Image.LoadPixelData <Rgba32>(data, 128, 128);

                        var base64 = image.ToBase64String(PngFormat.Instance);
#if DEBUG
                        Console.WriteLine(base64);
#endif
                        var discordProfileInfo = new DiscordProfileInfoMessage
                        {
                            AvatarBase64 = base64,
                            DiscordId    = currentUser.Id
                        };

                        Console.WriteLine("Sent avatar!");

                        var msg = new WebsocketMessage()
                        {
                            Type = RichPresenceMessageTypes.DiscordProfileInfo
                        };
                        msg.From(discordProfileInfo);

                        await Send(msg);
                    }
                    else
                    {
                        Console.WriteLine("Image error {0}", handle.Id);
                    }
                });

                var lobbyManager = DiscordManager.GetDiscord().GetLobbyManager();
                var voiceManager = DiscordManager.GetDiscord().GetVoiceManager();

                if (CurrentLobby.HasValue)
                {
                    var msg = new WebsocketMessage()
                    {
                        Type = RichPresenceMessageTypes.VoiceStatus
                    };
                    msg.From(new VoiceStatusMessage {
                        IsConnected = true, IsDeafened = voiceManager.IsSelfDeaf(), IsMuted = IsSelfMuted(voiceManager)
                    });
                    await Send(msg);
                }

                lobbyManager.OnSpeaking += HandleSpeaking;
            };

            void HandleSpeaking(long lobbyId, long userId, bool speaking)
            {
                var msg = new WebsocketMessage()
                {
                    Type = RichPresenceMessageTypes.Speaking
                };

                msg.From(new SpeakingMessage {
                    DiscordId = userId, IsSpeaking = speaking
                });
                Send(msg).GetAwaiter().GetResult();
            }
        }