ddmaster 2.1.3 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +95 -1
- package/index.js +5 -1
- package/package.json +3 -2
- package/testserverlist.js +12 -3
package/README.md
CHANGED
|
@@ -5,4 +5,98 @@
|
|
|
5
5
|
getDDNetServers() - Возвращает сервера дднет в виде [ 'ip:port' ]
|
|
6
6
|
getrawDDNetServers() - Возвращает сырую инфу
|
|
7
7
|
|
|
8
|
-
Лицензия MIT (./LICENSE)
|
|
8
|
+
Лицензия MIT (./LICENSE)
|
|
9
|
+
|
|
10
|
+
npm i ddmaster
|
|
11
|
+
const ddmaster = require('ddmaster');
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
getrawDDNetServers() пример
|
|
15
|
+
[{
|
|
16
|
+
"addresses": [
|
|
17
|
+
"tw-0.6+udp://203.86.233.50:8352",
|
|
18
|
+
"tw-0.7+udp://203.86.233.50:8352"
|
|
19
|
+
],
|
|
20
|
+
"community": "ddnet",
|
|
21
|
+
"location": "as:hk",
|
|
22
|
+
"info": {
|
|
23
|
+
"max_clients": 63,
|
|
24
|
+
"max_players": 63,
|
|
25
|
+
"passworded": false,
|
|
26
|
+
"game_type": "DDraceNetwork",
|
|
27
|
+
"flag": 156,
|
|
28
|
+
"name": "DDNet CHN1 香港 - Moderate 中阶",
|
|
29
|
+
"map": {
|
|
30
|
+
"name": "Weapons",
|
|
31
|
+
"sha256": "8d6d0f5724dbec496d2ed88dc50c80ff09fdc6fd3d60bd2e1de6d3e666544054",
|
|
32
|
+
"size": 625069
|
|
33
|
+
},
|
|
34
|
+
"version": "0.6.4, 19.6",
|
|
35
|
+
"client_score_kind": "time",
|
|
36
|
+
"requires_login": false,
|
|
37
|
+
"clients": [
|
|
38
|
+
{
|
|
39
|
+
"name": "Rabbit Doll",
|
|
40
|
+
"clan": "兔玩偶",
|
|
41
|
+
"country": -1,
|
|
42
|
+
"score": -9999,
|
|
43
|
+
"is_player": true,
|
|
44
|
+
"skin": {
|
|
45
|
+
"name": "rongrongtu_blue"
|
|
46
|
+
},
|
|
47
|
+
"afk": false,
|
|
48
|
+
"team": 0
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"name": "Nyakori's",
|
|
52
|
+
"clan": "兔玩偶",
|
|
53
|
+
"country": -1,
|
|
54
|
+
"score": -9999,
|
|
55
|
+
"is_player": true,
|
|
56
|
+
"skin": {
|
|
57
|
+
"name": "rongrongtu_pink"
|
|
58
|
+
},
|
|
59
|
+
"afk": false,
|
|
60
|
+
"team": 0
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"name": "18687017299",
|
|
64
|
+
"clan": "糖糖教",
|
|
65
|
+
"country": -1,
|
|
66
|
+
"score": -9999,
|
|
67
|
+
"is_player": true,
|
|
68
|
+
"skin": {
|
|
69
|
+
"name": "Shadow Catsk"
|
|
70
|
+
},
|
|
71
|
+
"afk": true,
|
|
72
|
+
"team": 0
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
"name": "pbAdq",
|
|
76
|
+
"clan": "",
|
|
77
|
+
"country": -1,
|
|
78
|
+
"score": 2167,
|
|
79
|
+
"is_player": true,
|
|
80
|
+
"skin": {
|
|
81
|
+
"name": "maotouying"
|
|
82
|
+
},
|
|
83
|
+
"afk": false,
|
|
84
|
+
"team": 0
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
"name": "549120418",
|
|
88
|
+
"clan": "日月教",
|
|
89
|
+
"country": 156,
|
|
90
|
+
"score": -9999,
|
|
91
|
+
"is_player": true,
|
|
92
|
+
"skin": {
|
|
93
|
+
"name": "ghostjtj",
|
|
94
|
+
"color_body": 14810880,
|
|
95
|
+
"color_feet": 16776960
|
|
96
|
+
},
|
|
97
|
+
"afk": false,
|
|
98
|
+
"team": 0
|
|
99
|
+
}
|
|
100
|
+
]
|
|
101
|
+
}
|
|
102
|
+
}]
|
package/index.js
CHANGED
package/package.json
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ddmaster",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.2.0",
|
|
4
4
|
"description": "Позволяет опрашивать мастер-сервер дднета",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"test": "echo \"Error: no test specified\" && exit 1"
|
|
8
8
|
},
|
|
9
9
|
"keywords": [
|
|
10
|
-
"DDNet"
|
|
10
|
+
"DDNet",
|
|
11
|
+
"master server"
|
|
11
12
|
],
|
|
12
13
|
"author": "0374flop",
|
|
13
14
|
"license": "MIT",
|
package/testserverlist.js
CHANGED
|
@@ -14,6 +14,16 @@ async function getrawDDNetServers() {
|
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
+
/**
|
|
18
|
+
*
|
|
19
|
+
* @param {string} addr - берёт примерно такое "tw-0.7+udp://152.89.254.27:8310"
|
|
20
|
+
* @returns {string|null} 152.89.254.27:8310 возвращает чистый адрес (если addr не валидный то null)
|
|
21
|
+
*/
|
|
22
|
+
function convertudptw(addr = 'string') {
|
|
23
|
+
const match = addr.match(/(\d{1,3}(\.\d{1,3}){3}:\d+)/);
|
|
24
|
+
return match[1];
|
|
25
|
+
}
|
|
26
|
+
|
|
17
27
|
/**
|
|
18
28
|
* Делает запрос на мастер сервер ДДНета.
|
|
19
29
|
* @returns Сервера ДДНета если все пошло хорошо. ['ip:port']
|
|
@@ -28,8 +38,7 @@ async function getDDNetServers() {
|
|
|
28
38
|
|
|
29
39
|
for (const server of servers) {
|
|
30
40
|
server.addresses.forEach(addr => {
|
|
31
|
-
|
|
32
|
-
if (match) ipv4WithPorts.push(match[1]);
|
|
41
|
+
ipv4WithPorts.push(convertudptw(addr));
|
|
33
42
|
});
|
|
34
43
|
}
|
|
35
44
|
return [...new Set(ipv4WithPorts)];
|
|
@@ -39,4 +48,4 @@ async function getDDNetServers() {
|
|
|
39
48
|
}
|
|
40
49
|
}
|
|
41
50
|
|
|
42
|
-
module.exports = { getDDNetServers, getrawDDNetServers }
|
|
51
|
+
module.exports = { getDDNetServers, getrawDDNetServers, convertudptw }
|