172 lines
		
	
	
		
			No EOL
		
	
	
		
			5 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			172 lines
		
	
	
		
			No EOL
		
	
	
		
			5 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <!DOCTYPE HTML>
 | |
| <html>
 | |
| <head>
 | |
|     <title>Salty Chat WebSocket</title>
 | |
|     <script src="nui://game/ui/jquery.js" type="text/javascript"></script>
 | |
| </head>
 | |
| <body style="display: none; position: absolute; top: 15vh; font-family:Arial; font-size:26px; 
 | |
| color:white; outline:thin; outline-color:black; text-shadow: 1px 1px 1px black">
 | |
| 	<div id="demo">
 | |
| 	</div>
 | |
| 	
 | |
| 	<script>
 | |
|         let pluginAddress = "127.0.0.1:8088";
 | |
| 		let isConnected = false;
 | |
|         let serverUniqueIdentifierFilter = null;
 | |
| 
 | |
|         // Packet Stats
 | |
|         let packetsSent = 0;
 | |
|         let packetsReceived = 0;
 | |
|         let lastCommand = "";
 | |
| 
 | |
|         function connect(address){
 | |
|             if (typeof address === "string"){
 | |
|                 pluginAddress = address
 | |
| 
 | |
|                 console.log("new address: " + address);
 | |
|             }
 | |
| 
 | |
|             console.log("connecting...");
 | |
| 
 | |
|             try{
 | |
|                 window.webSocket = new window.WebSocket(`ws://${pluginAddress}/`);
 | |
|             }
 | |
|             catch{
 | |
|                 // do nothing
 | |
|             }
 | |
| 
 | |
|             webSocket.onmessage = function (evt) {
 | |
|                 let object = JSON.parse(evt.data);
 | |
|                 if (typeof serverUniqueIdentifierFilter === "string")
 | |
|                 {
 | |
|                     if (object.ServerUniqueIdentifier === serverUniqueIdentifierFilter)
 | |
|                         sendNuiData("SaltyChat_OnMessage", evt.data);
 | |
|                     else if (typeof object.ServerUniqueIdentifier === "undefined")
 | |
|                         sendNuiData("SaltyChat_OnError", evt.data);
 | |
|                 }
 | |
|                 else
 | |
|                 {
 | |
|                     if (typeof object.ServerUniqueIdentifier === "string")
 | |
|                         sendNuiData("SaltyChat_OnMessage", evt.data);
 | |
|                     else
 | |
|                         sendNuiData("SaltyChat_OnError", evt.data);
 | |
|                 }
 | |
| 
 | |
|                 packetsReceived++;
 | |
|                 updateHtml();
 | |
|             };
 | |
| 
 | |
|             webSocket.onopen = function () {
 | |
|                 isConnected = true;
 | |
| 
 | |
|                 sendNuiData("SaltyChat_OnConnected");
 | |
|                 console.log("connected")
 | |
|             };
 | |
| 
 | |
|             webSocket.onclose = function () {
 | |
|                 isConnected = false;
 | |
| 
 | |
|                 sendNuiData("SaltyChat_OnDisconnected");
 | |
| 
 | |
|                 connect();
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         function setWebSocketAddress(address)
 | |
|         {
 | |
|             if (typeof address === "string")
 | |
|                 pluginAddress = address;
 | |
|         }
 | |
| 
 | |
|         function setServerUniqueIdentifierFilter(serverUniqueIdentifier)
 | |
|         {
 | |
|             if (typeof serverUniqueIdentifier === "string")
 | |
|                 serverUniqueIdentifierFilter = serverUniqueIdentifier;
 | |
|         }
 | |
| 		
 | |
| 		function runCommand(command)
 | |
|         {   
 | |
|             // console.log(JSON.stringify(command), typeof command, isConnected)
 | |
|             if (!isConnected || typeof command !== "string")
 | |
|             {
 | |
|                 lastCommand = "unexpected command";
 | |
|                 updateHtml();
 | |
| 
 | |
|                 return;
 | |
|             }
 | |
|             
 | |
|             webSocket.send(command);
 | |
| 
 | |
|             packetsSent++;
 | |
| 
 | |
|             let cmdJson = JSON.parse(command)
 | |
|             if(cmdJson.Command == 9){
 | |
|                 lastCommand = command;
 | |
|                 updateHtml();
 | |
|             }
 | |
| 		}
 | |
| 
 | |
|         function updateHtml()
 | |
|         {
 | |
|             // console.log(lastCommand)
 | |
|             $("#demo").html(`Last Command: ${lastCommand}</br>Packets Sent: ${packetsSent}</br>Packets Received ${packetsReceived}`);
 | |
|             // W I S E M A N
 | |
|         }
 | |
| 
 | |
|         function sendNuiData(event, data)
 | |
|         {   
 | |
|             if (typeof data === "undefined")
 | |
|             {   
 | |
|                 $.post(`http://${GetParentResourceName()}/${event}`)
 | |
|             }
 | |
|             else
 | |
|             {
 | |
|                 $.post(`http://${GetParentResourceName()}/${event}`, data);
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         function showBody(show)
 | |
|         {
 | |
|             if (show)
 | |
|             {
 | |
|                 $("body").show();
 | |
|             }
 | |
|             else
 | |
|             {
 | |
|                 $("body").hide();
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         $(function()
 | |
|         {   
 | |
|             window.addEventListener("DOMContentLoaded", function(){
 | |
|                 loaded = true
 | |
|                 // W I S E
 | |
|                 //connect();
 | |
|                 updateHtml();
 | |
|                 sendNuiData("SaltyChat_OnNuiReady");
 | |
|             });
 | |
| 
 | |
|             window.addEventListener('message', function(event)
 | |
|             {
 | |
|                 if (typeof event.data.Function === "string")
 | |
|                 {
 | |
|                     if (typeof event.data.Params === "undefined")
 | |
|                     {
 | |
|                         window[event.data.Function]();
 | |
|                     }
 | |
|                     else if (Array.isArray(event.data.Params) && event.data.Params.length == 1)
 | |
|                     {
 | |
|                         window[event.data.Function](event.data.Params[0]);
 | |
|                     }
 | |
|                     else
 | |
|                     {
 | |
|                         window[event.data.Function](event.data.Params);
 | |
|                     }
 | |
|                 }
 | |
|             }, false);
 | |
|             // M A N
 | |
|         });
 | |
| 	</script>
 | |
| </body>
 | |
| </html> | 
