Skip to content

Commit 1c98d7e

Browse files
committed
editable server ip and port in url param
1 parent 41d36c0 commit 1c98d7e

File tree

9 files changed

+58
-34
lines changed

9 files changed

+58
-34
lines changed

README.md

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
[![Join the chat at https://gitter.im/web-minecraft/community](https://badges.gitter.im/web-minecraft/community.svg)](https://gitter.im/web-minecraft/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
44
[![Discord](https://img.shields.io/badge/chat-on%20discord-brightgreen.svg)](https://discord.gg/h6DQzDx2G7)
55

6-
76
## About
87

98
**Web-minecraft is minecraft client written in Javascript.** From web browser this client connects to node.js server and then to real minecraft server, so you can play minecraft in the browser.
@@ -18,19 +17,16 @@ git clone https://github.com/michaljaz/web-minecraft
1817
cd web-minecraft
1918
npm i
2019

21-
```
22-
</details>
23-
24-
20+
```
2521

22+
</details>
2623

2724
<details>
2825
<summary>Minecraft server setup</summary>
29-
To run this game you need to start real minecraft server (by default it is 1.16.5 offline mode java edition on ip localhost:25565) you can also define it in */src/server.json* file.
26+
To run this game you need to start real minecraft server (by default it is 1.16.5 offline mode java edition on ip localhost:25565).
3027

3128
</details>
3229

33-
3430
<details>
3531
<summary>Linting</summary>
3632

@@ -53,6 +49,7 @@ npm run lint:fix
5349
npm run dev
5450

5551
```
52+
5653
</details>
5754
<details>
5855
<summary>Production setup</summary>
@@ -71,10 +68,8 @@ npm start
7168

7269
</details>
7370

74-
75-
76-
7771
## Screenshots
72+
7873
[<img src="https://i.ibb.co/bPh99MV/hypixel.png" alt="screen6" width="100%">](https://i.ibb.co/bPh99MV/hypixel.png)
7974
[<img src="https://i.ibb.co/jzZVrT2/Screenshot-from-2021-01-27-21-13-37.png" alt="screen6" width="100%">](https://i.ibb.co/jzZVrT2/Screenshot-from-2021-01-27-21-13-37.png)
8075
[<img src="https://i.ibb.co/tKmnJ8D/Screenshot-from-2021-01-27-21-16-12.png" alt="screen6" width="100%">](https://i.ibb.co/tKmnJ8D/Screenshot-from-2021-01-27-21-16-12.png)

package-lock.json

Lines changed: 18 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
"compression": "^1.7.4",
2222
"dat.gui": "^0.7.7",
2323
"express": "^4.17.1",
24+
"express-ws": "^4.0.0",
2425
"extract-zip": "^2.0.1",
2526
"helmet": "^4.4.1",
2627
"html-webpack-plugin": "^4.5.1",
@@ -44,7 +45,8 @@
4445
"webpack-dev-server": "^3.11.1",
4546
"webpack-merge": "^5.7.3",
4647
"webpackbar": "^5.0.0-3",
47-
"worker-loader": "^3.0.7"
48+
"worker-loader": "^3.0.7",
49+
"ws": "^7.4.3"
4850
},
4951
"devDependencies": {
5052
"autoprefixer": "^9.0.0",

src/client/scripts/Setup.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import Stats from "stats-js";
44
import * as dat from "dat.gui";
55
import io from "socket.io-client";
66
import { DistanceBasedFog } from "./DistanceBasedFog.js";
7-
import { RandomNick } from "./RandomNick.js";
7+
import { UrlParams } from "./UrlParams.js";
88
import { gpuInfo } from "./gpuInfo.js";
99
import { World } from "./World/World.js";
1010
import { InventoryBar } from "./InventoryBar.js";
@@ -35,11 +35,13 @@ function Setup(game) {
3535
game.stats.showPanel(0);
3636
document.body.appendChild(game.stats.dom);
3737
game.distanceBasedFog = new DistanceBasedFog(game);
38-
RandomNick(game);
38+
UrlParams(game);
3939
console.warn(gpuInfo());
4040
game.socket = io({
4141
query: {
4242
nick: game.nick,
43+
server: game.server,
44+
port: game.serverPort,
4345
},
4446
});
4547
game.pii = new PlayerInInventory(game);
Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
var RandomNick = function (game) {
1+
var UrlParams = function (game) {
22
var nameList = [
33
"Time",
44
"Past",
@@ -176,14 +176,26 @@ var RandomNick = function (game) {
176176
var finalName = "";
177177
finalName = nameList[Math.floor(Math.random() * nameList.length)];
178178
finalName += nameList[Math.floor(Math.random() * nameList.length)];
179-
game.nick = document.location.hash.substring(
180-
1,
181-
document.location.hash.length
182-
);
183-
if (game.nick === "") {
179+
180+
game.nick = new URL(document.location).searchParams.get("nick");
181+
game.server = new URL(document.location).searchParams.get("server");
182+
game.serverPort = new URL(document.location).searchParams.get("port");
183+
var reload = false;
184+
if (game.nick === "" || game.nick === null) {
185+
reload = true;
184186
game.nick = finalName;
185-
document.location.href = `#${game.nick}`;
187+
}
188+
if (game.server === "" || game.server === null) {
189+
reload = true;
190+
game.server = "localhost";
191+
}
192+
if (game.serverPort === "" || game.serverPort === null) {
193+
reload = true;
194+
game.serverPort = "25565";
195+
}
196+
if (reload) {
197+
document.location.href = `?server=${game.server}&port=${game.serverPort}&nick=${game.nick}`;
186198
}
187199
};
188200

189-
export { RandomNick };
201+
export { UrlParams };

src/client/scripts/index.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ class Game {
4040
console.log("Connected to server!");
4141
$(".loadingText").text("Joining server...");
4242
console.log(`User nick: ${this.nick}`);
43+
console.log(`Server ip: ${this.server}:${this.serverPort}`);
4344
this.socket.emit("initClient", {
4445
nick: this.nick,
4546
});

src/index.js

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
1+
var version = "1.16.5";
12
var opn = require("open");
2-
var fs = require("fs");
3-
var config = JSON.parse(fs.readFileSync(`${__dirname}/properties.json`));
43
var express = require("express");
54
var app = express();
65
var server = require("http").createServer(app);
76
var io = require("socket.io")(server);
87
var mineflayer = require("mineflayer");
9-
var Chunk = require("prismarine-chunk")(config.version);
8+
var Chunk = require("prismarine-chunk")(version);
109
var vec3 = require("vec3");
1110
var Convert = require("ansi-to-html");
1211
var convert = new Convert();
@@ -42,10 +41,10 @@ io.sockets.on("connection", function (socket) {
4241
console.log(`[\x1b[32m+\x1b[0m] ${query.nick}`);
4342
var heldItem = null;
4443
var bot = mineflayer.createBot({
45-
host: config.ip,
46-
port: config.port,
44+
host: query.server,
45+
port: query.port,
4746
username: query.nick,
48-
version: config.version,
47+
version: version,
4948
});
5049
botByNick[query.nick] = bot;
5150
bot._client.on("map_chunk", function (packet) {

src/prebuild.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1+
var version = "1.16.5";
12
var fs = require("fs");
2-
var config = require("./properties.json");
3-
var pBlock = require("prismarine-block")(config.version);
3+
var pBlock = require("prismarine-block")(version);
44
var atlasCreator = require("./atlasCreator");
55

66
new atlasCreator({

src/properties.json

Lines changed: 0 additions & 5 deletions
This file was deleted.

0 commit comments

Comments
 (0)