summaryrefslogtreecommitdiff
path: root/dist/2b2w
diff options
context:
space:
mode:
author8cy <[email protected]>2020-04-19 06:40:16 -0700
committer8cy <[email protected]>2020-04-19 06:40:16 -0700
commited6e347bbcce356bde0cfeba498dab3d39a6c946 (patch)
tree419225e81e9a3967ccf6f385a6e1c9c204d0b19c /dist/2b2w
parentlink favi, v7.2.4 (diff)
downloaddep-core-test-2b2t.tar.xz
dep-core-test-2b2t.zip
fix on a rainy day, added most of the supporttest-2b2t
issue, TypeError: Cannot read property 'end' of undefined when trying to stop
Diffstat (limited to 'dist/2b2w')
-rw-r--r--dist/2b2w/config.json9
-rw-r--r--dist/2b2w/index.css40
-rw-r--r--dist/2b2w/index.html75
-rw-r--r--dist/2b2w/main.js134
-rw-r--r--dist/2b2w/secrets.json4
-rw-r--r--dist/2b2w/webserver.js65
6 files changed, 327 insertions, 0 deletions
diff --git a/dist/2b2w/config.json b/dist/2b2w/config.json
new file mode 100644
index 0000000..6715543
--- /dev/null
+++ b/dist/2b2w/config.json
@@ -0,0 +1,9 @@
+{
+ "ports": {
+ "minecraft": 25565,
+ "web": 80
+ },
+ "openBrowserOnStart": false,
+ "password": "",
+ "MCversion": "1.12.2"
+}
diff --git a/dist/2b2w/index.css b/dist/2b2w/index.css
new file mode 100644
index 0000000..6a54055
--- /dev/null
+++ b/dist/2b2w/index.css
@@ -0,0 +1,40 @@
+body {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ width: 100vw;
+ height: 100vh;
+ margin: 0;
+ background-color: rgb(16, 16, 26);
+}
+
+h1, .content {
+ margin: 0;
+ color: rgb(228, 228, 228);
+ font-family: sans-serif;
+}
+
+button {
+ width: 128px;
+ height: 32px;
+ background-color: transparent;
+ border: none;
+ outline: none;
+ cursor: pointer;
+ font-family: sans-serif;
+ border-radius: 5px;
+ color: #e4e4e4;
+ transition-duration: 0.3s;
+}
+
+button.start {
+ border: 3px solid #25c525;
+}
+
+button.stop {
+ border: 2px solid #f32727;
+}
+
+.place, .ETA{
+ display: inline-block;
+}
diff --git a/dist/2b2w/index.html b/dist/2b2w/index.html
new file mode 100644
index 0000000..f2efe0b
--- /dev/null
+++ b/dist/2b2w/index.html
@@ -0,0 +1,75 @@
+<html>
+ <head>
+ <title>2Bored2Wait</title>
+ <link rel="stylesheet" href="index.css">
+ </head>
+ <body>
+ <div class="content">
+ <h1>Place in queue: <div class="place">None</div> </h1>
+ <h1>ETA: <div class="ETA">None</div> </h1>
+ Password (leave blank if none) : <input type="password" class="password"><br>
+ <button id="queueButton" class="start" onclick="start()">Start queuing</button><br><br>
+ <input type="checkbox" class="restartQueue" onchange="toggleRestartQueue()"> Restart the queue if you're not connected at the end of it?
+ </div>
+ <script>
+ setInterval(() => { //each second, update the info.
+ const xhr = new XMLHttpRequest();
+ xhr.open("GET", "/update", true);
+ xhr.onreadystatechange = function() {
+ if (this.readyState == 4 && this.status == 200) {
+ const response = JSON.parse(this.responseText);
+ document.getElementsByClassName("place")[0].innerHTML = response.place;
+ document.getElementsByClassName("ETA")[0].innerHTML = response.ETA;
+ document.getElementsByClassName("restartQueue")[0].checked = response.restartQueue
+ const queueButton = document.getElementById('queueButton');
+ if(response.inQueue){
+ queueButton.innerHTML = "Stop queuing";
+ queueButton.setAttribute('onclick', 'stop()');
+ queueButton.className = 'stop';
+ }else{
+ queueButton.innerHTML = "Start queuing";
+ queueButton.setAttribute('onclick', 'start()');
+ queueButton.className = 'start';
+ }
+ }
+ }
+ xhr.setRequestHeader('XPassword', document.getElementsByClassName('password')[0].value)
+ xhr.send();
+
+ }, 1000);
+
+ function start() {
+ const xhr = new XMLHttpRequest();
+ xhr.open("GET", "/start", true);
+ xhr.setRequestHeader('XPassword', document.getElementsByClassName('password')[0].value)
+ xhr.send();
+ const queueButton = document.getElementById('queueButton');
+ queueButton.innerHTML = "Stop queuing";
+ queueButton.setAttribute('onclick', 'stop()');
+ queueButton.setAttribute('onclick', 'stop()');
+ queueButton.className = 'stop';
+ }
+
+ function stop() {
+ const xhr = new XMLHttpRequest();
+ xhr.open("GET", "/stop", true);
+ xhr.setRequestHeader('XPassword', document.getElementsByClassName('password')[0].value)
+ xhr.send();
+ const queueButton = document.getElementById('queueButton');
+ queueButton.innerHTML = "Start queuing";
+ queueButton.setAttribute('onclick', 'start()');
+ queueButton.className = 'start';
+ document.getElementsByClassName("place")[0].innerHTML = 'None';
+ document.getElementsByClassName("ETA")[0].innerHTML = 'None';
+ }
+
+ function toggleRestartQueue(){
+ const xhr = new XMLHttpRequest();
+ xhr.open("GET", "/togglerestart", true);
+ xhr.setRequestHeader('XPassword', document.getElementsByClassName('password')[0].value)
+ xhr.send();
+ }
+
+ </script>
+ </body>
+</html>
diff --git a/dist/2b2w/main.js b/dist/2b2w/main.js
new file mode 100644
index 0000000..44119bb
--- /dev/null
+++ b/dist/2b2w/main.js
@@ -0,0 +1,134 @@
+"use strict";
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const minecraft_protocol_1 = __importDefault(require("minecraft-protocol"));
+const webserver = require('./webserver.js');
+const opn_1 = __importDefault(require("opn"));
+const secrets_json_1 = __importDefault(require("./secrets.json"));
+const config_json_1 = __importDefault(require("./config.json"));
+webserver.createServer(config_json_1.default.ports.web);
+webserver.password = config_json_1.default.password;
+webserver.onstart(() => {
+ startQueuing();
+});
+webserver.onstop(() => {
+ stop();
+});
+if (config_json_1.default.openBrowserOnStart) {
+ opn_1.default('http://localhost:' + config_json_1.default.ports.web);
+}
+let proxyClient;
+let client;
+let server;
+function stop() {
+ webserver.isInQueue = false;
+ webserver.queuePlace = "None";
+ webserver.ETA = "None";
+ client.end("disconnect");
+ if (proxyClient) {
+ proxyClient.end("Stopped the proxy.");
+ }
+ server.close();
+}
+exports.stop = stop;
+function startQueuing() {
+ var playerId;
+ webserver.isInQueue = true;
+ client = minecraft_protocol_1.default.createClient({
+ host: "2b2t.org",
+ port: 25565,
+ username: secrets_json_1.default.username,
+ password: secrets_json_1.default.password,
+ version: config_json_1.default.MCversion
+ });
+ let finishedQueue = false;
+ client.on("packet", (data, meta) => {
+ if (!finishedQueue && meta.name === "playerlist_header") {
+ let headermessage = JSON.parse(data.header);
+ let positioninqueue = headermessage.text.split("\n")[5].substring(25);
+ let ETA = headermessage.text.split("\n")[6].substring(27);
+ webserver.queuePlace = positioninqueue;
+ webserver.ETA = ETA;
+ server.motd = `Place in queue: ${positioninqueue}`;
+ }
+ if (meta.name == "login") {
+ playerId = data.entityId;
+ }
+ if (finishedQueue === false && meta.name === "chat") {
+ let chatMessage = JSON.parse(data.message);
+ if (chatMessage.text && chatMessage.text === "Connecting to the server...") {
+ if (webserver.restartQueue && proxyClient == null) {
+ stop();
+ setTimeout(startQueuing, 100);
+ }
+ else {
+ finishedQueue = true;
+ webserver.queuePlace = "FINISHED";
+ webserver.ETA = "NOW";
+ }
+ }
+ }
+ if (proxyClient) {
+ filterPacketAndSend(data, meta, proxyClient);
+ }
+ });
+ client.on('end', () => {
+ if (proxyClient) {
+ proxyClient.end("Connection reset by 2b2t server.\nReconnecting...");
+ proxyClient = null;
+ }
+ stop();
+ });
+ client.on('error', (err) => {
+ if (proxyClient) {
+ proxyClient.end(`Connection error by 2b2t server.\n Error message: ${err}\nReconnecting...`);
+ proxyClient = null;
+ }
+ console.log('err', err);
+ stop();
+ });
+ server = minecraft_protocol_1.default.createServer({
+ 'online-mode': true,
+ encryption: true,
+ host: '0.0.0.0',
+ port: config_json_1.default.ports.minecraft,
+ version: config_json_1.default.MCversion,
+ 'max-players': maxPlayers = 1
+ });
+ server.on('login', (newProxyClient) => {
+ if (newProxyClient.username !== client.username) {
+ stop();
+ }
+ newProxyClient.write('login', {
+ entityId: playerId,
+ levelType: 'default',
+ gameMode: 0,
+ dimension: 0,
+ difficulty: 2,
+ maxPlayers: server.maxPlayers,
+ reducedDebugInfo: false
+ });
+ newProxyClient.write('position', {
+ x: 0,
+ y: 1.62,
+ z: 0,
+ yaw: 0,
+ pitch: 0,
+ flags: 0x00
+ });
+ newProxyClient.on('packet', (data, meta) => {
+ filterPacketAndSend(data, meta, proxyClient);
+ });
+ proxyClient = newProxyClient;
+ });
+}
+exports.startQueuing = startQueuing;
+function filterPacketAndSend(data, meta, dest) {
+ if (meta.name != "keep_alive" && meta.name != "update_time") {
+ dest.write(meta.name, data);
+ }
+}
+exports.filterPacketAndSend = filterPacketAndSend;
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy8yYjJ3L21haW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw0RUFBb0M7QUFDcEMsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUE7QUFDM0MsOENBQXNCO0FBQ3RCLGtFQUFxQztBQUNyQyxnRUFBbUM7QUFFbkMsU0FBUyxDQUFDLFlBQVksQ0FBQyxxQkFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUN6QyxTQUFTLENBQUMsUUFBUSxHQUFHLHFCQUFNLENBQUMsUUFBUSxDQUFDO0FBQ3JDLFNBQVMsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFO0lBQ3RCLFlBQVksRUFBRSxDQUFDO0FBQ2hCLENBQUMsQ0FBQyxDQUFDO0FBQ0gsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUU7SUFDckIsSUFBSSxFQUFFLENBQUM7QUFDUixDQUFDLENBQUMsQ0FBQztBQUVILElBQUkscUJBQU0sQ0FBQyxrQkFBa0IsRUFBRTtJQUMzQixhQUFHLENBQUMsbUJBQW1CLEdBQUcscUJBQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7Q0FDL0M7QUFJRCxJQUFJLFdBQVcsQ0FBQztBQUNoQixJQUFJLE1BQU0sQ0FBQztBQUNYLElBQUksTUFBTSxDQUFDO0FBR1gsU0FBZ0IsSUFBSTtJQUNuQixTQUFTLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUM1QixTQUFTLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQztJQUM5QixTQUFTLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQztJQUN2QixNQUFNLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3pCLElBQUksV0FBVyxFQUFFO1FBQ2hCLFdBQVcsQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsQ0FBQztLQUN0QztJQUNELE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FB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 \ No newline at end of file
diff --git a/dist/2b2w/secrets.json b/dist/2b2w/secrets.json
new file mode 100644
index 0000000..2bc9d32
--- /dev/null
+++ b/dist/2b2w/secrets.json
@@ -0,0 +1,4 @@
+{
+ "username": "[email protected]",
+ "password": "BGyorok2"
+}
diff --git a/dist/2b2w/webserver.js b/dist/2b2w/webserver.js
new file mode 100644
index 0000000..f93e874
--- /dev/null
+++ b/dist/2b2w/webserver.js
@@ -0,0 +1,65 @@
+"use strict";
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const http_1 = __importDefault(require("http"));
+const fs_1 = __importDefault(require("fs"));
+module.exports = {
+ createServer: (port) => {
+ http_1.default.createServer((req, res) => {
+ if (req.url === "./") {
+ res.writeHead(200, { 'Content-type': 'text/html' });
+ res.write(fs_1.default.readFileSync('index.html'));
+ res.end();
+ }
+ else if (req.url === "./index.css") {
+ res.writeHead(200, { 'Content-type': 'text/css' });
+ res.write(fs_1.default.readFileSync('index.css'));
+ res.end();
+ }
+ else if (module.exports.password == "" || req.headers.xpassword == module.exports.password) {
+ if (req.url === "/update") {
+ res.writeHead(200, { 'Content-type': 'text/json' });
+ res.write("{\"username\": \"" + module.exports.username + "\",\"place\": \"" + module.exports.queuePlace + "\",\"ETA\": \"" + module.exports.ETA + "\", \"inQueue\": " + module.exports.isInQueue + ", \"restartQueue\":" + module.exports.restartQueue + "}");
+ res.end();
+ }
+ else if (req.url === "/start") {
+ res.writeHead(200);
+ res.end();
+ module.exports.onstartcallback();
+ }
+ else if (req.url === "/stop") {
+ res.writeHead(200);
+ res.end();
+ module.exports.onstopcallback();
+ }
+ else if (req.url === "/togglerestart") {
+ module.exports.restartQueue = !module.exports.restartQueue;
+ }
+ else {
+ res.writeHead(404);
+ res.end();
+ }
+ }
+ else {
+ res.writeHead(403);
+ res.end();
+ }
+ }).listen(port);
+ },
+ onstart: (callback) => {
+ module.exports.onstartcallback = callback;
+ },
+ onstop: (callback) => {
+ module.exports.onstopcallback = callback;
+ },
+ queuePlace: "None",
+ ETA: "None",
+ isInQueue: false,
+ onstartcallback: null,
+ onstopcallback: null,
+ restartQueue: false,
+ password: ""
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vic2VydmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjLzJiMncvd2Vic2VydmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0EsZ0RBQXdCO0FBQ3hCLDRDQUFvQjtBQUVwQixNQUFNLENBQUMsT0FBTyxHQUFHO0lBQ2IsWUFBWSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUU7UUFDbkIsY0FBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRTtZQUMzQixJQUFJLEdBQUcsQ0FBQyxHQUFHLEtBQUssSUFBSSxFQUFFO2dCQUNsQixHQUFHLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxFQUFDLGNBQWMsRUFBRSxXQUFXLEVBQUMsQ0FBQyxDQUFDO2dCQUNsRCxHQUFHLENBQUMsS0FBSyxDQUFDLFlBQUUsQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztnQkFDekMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDO2FBQ2I7aUJBQU0sSUFBSSxHQUFHLENBQUMsR0FBRyxLQUFLLGFBQWEsRUFBRTtnQkFDbEMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsRUFBQyxjQUFjLEVBQUUsVUFBVSxFQUFDLENBQUMsQ0FBQztnQkFDakQsR0FBRyxDQUFDLEtBQUssQ0FBQyxZQUFFLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7Z0JBQ3hDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQzthQUNiO2lCQUFNLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFRLElBQUksRUFBRSxJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsU0FBUyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFO2dCQUMxRixJQUFJLEdBQUcsQ0FBQyxHQUFHLEtBQUssU0FBUyxFQUFFO29CQUN2QixHQUFHLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxFQUFDLGNBQWMsRUFBRSxXQUFXLEVBQUMsQ0FBQyxDQUFDO29CQUNsRCxHQUFHLENBQUMsS0FBSyxDQUFDLG1CQUFtQixHQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxHQUFFLGtCQUFrQixHQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBVSxHQUFFLGdCQUFnQixHQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxHQUFFLG1CQUFtQixHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxHQUFDLHFCQUFxQixHQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsWUFBWSxHQUFDLEdBQUcsQ0FBQyxDQUFBO29CQUNuUCxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUM7aUJBQ2I7cUJBQU0sSUFBSSxHQUFHLENBQUMsR0FBRyxLQUFLLFFBQVEsRUFBRTtvQkFDN0IsR0FBRyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDbkIsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDO29CQUNWLE1BQU0sQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFLENBQUM7aUJBQ3BDO3FCQUFNLElBQUksR0FBRyxDQUFDLEdBQUcsS0FBSyxPQUFPLEVBQUU7b0JBQzVCLEdBQUcsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQ25CLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztvQkFDVixNQUFNLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSxDQUFDO2lCQUNuQztxQkFBTSxJQUFJLEdBQUcsQ0FBQyxHQUFHLEtBQUssZ0JBQWdCLEVBQUM7b0JBQ3BDLE1BQU0sQ0FBQyxPQUFPLENBQUMsWUFBWSxHQUFHLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUM7aUJBQzlEO3FCQUFNO29CQUNILEdBQUcsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQ25CLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztpQkFDYjthQUNKO2lCQUFNO2dCQUNILEdBQUcsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ25CLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQzthQUNiO1FBQ0wsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BCLENBQUM7SUFDRCxPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFBRTtRQUNsQixNQUFNLENBQUMsT0FBTyxDQUFDLGVBQWUsR0FBRyxRQUFRLENBQUM7SUFDOUMsQ0FBQztJQUNELE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxFQUFFO1FBQ2pCLE1BQU0sQ0FBQyxPQUFPLENBQUMsY0FBYyxHQUFHLFFBQVEsQ0FBQztJQUM3QyxDQUFDO0lBQ0QsVUFBVSxFQUFHLE1BQU07SUFDbkIsR0FBRyxFQUFFLE1BQU07SUFDWCxTQUFTLEVBQUUsS0FBSztJQUNoQixlQUFlLEVBQUUsSUFBSTtJQUNyQixjQUFjLEVBQUUsSUFBSTtJQUNwQixZQUFZLEVBQUUsS0FBSztJQUNuQixRQUFRLEVBQUUsRUFBRTtDQUNmLENBQUMifQ== \ No newline at end of file