Files
SANCTUM/Shared/data_request.js

43 lines
1.5 KiB
JavaScript

//initialize the exports
exports = module.exports = {};
//global, because why not?
let socketClient = require("socket.io-client");
let io;
let initialized = false;
//ConnectToServer
//username - the bot's username
//address - the server's web address
//port - the server's port
//pass - the server's passcode
exports.ConnectToServer = function(username, address, port, pass) { //NOTE: this doesn't need to be in a function, I just want to display the username server-side
//prevent double-initialization
if (initialized) return;
//socket tools
io = socketClient(`${address}:${port}`);
io.on("connect", () => io.emit("authentication", {SERVER_PASS_KEY: pass, username: username}) );
io.on("authenticated", () => console.log("Authenticated with server: " + `${address}:${port}`));
io.on("disconnect", () => console.log("disconnected from server: " + `${address}:${port}`));
// io.on("error", (err) => { throw err; } );
initialized = true;
}
//SendServerData
//dataType - the type of data being sent
//userID (optional) - the id of the user to be bundled with the data
//...data (optional) - any data you wish to send
exports.SendServerData = function(dataType, userID = "", ...data){
io.emit(dataType, { userID: userID, data: data });
}
//OnServerData
//dataType - the type of data being sent and received
//fn (optional) - the aknowledgement function that is called on the other end (takes the result as an argument)
//...data (optional) - any data you wish to send
exports.OnServerData = function(dataType, fn, ...data) {
io.emit(dataType, { data: data }, fn);
}