Skip to content

Commit 42ca32e

Browse files
wiAnakinnnnn
andauthored
Disallow Domains in Multiple Mappings & IP Addresses (#4529)
* feat: disallow domains in multiple mappings * feat: error for invalid domains * chore: update msg * chore: server fixes!!! * chore: last fix * chore: actual last fix --------- Co-authored-by: Anakin <[email protected]>
1 parent b1e3d19 commit 42ca32e

File tree

18 files changed

+20
-26
lines changed

18 files changed

+20
-26
lines changed

.scripts/validate.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -218,6 +218,7 @@ def check_metadata(args: argparse.Namespace) -> defaultdict[str, list[str]]:
218218
messages[server_id] = [f"{server_id} is being edited but is in the inactive file!"]
219219

220220
# Looping over each server folder
221+
seen_domains = defaultdict(set)
221222
for root, _, _ in os.walk(args.servers_dir):
222223
server_id = root.split(os.path.sep)[-1]
223224
if (
@@ -241,6 +242,8 @@ def check_metadata(args: argparse.Namespace) -> defaultdict[str, list[str]]:
241242
primary_domain = get_tld(server.get("primaryAddress", ""), as_object=True, fail_silently=True, fix_protocol=True)
242243
if primary_domain is not None and primary_domain.fld not in server["addresses"]:
243244
messages[server_id].append(f"The primary address' domain ({primary_domain.fld}) is not in the addresses list. Or the primary address is not a valid domain.")
245+
elif primary_domain is None:
246+
messages[server_id].append(f"The primary address `{server.get('primaryAddress', '')}` is not a valid domain. Please review the [documentation](https://lunarclient.dev/server-mappings/adding-servers/metadata).")
244247

245248

246249
all_versions = get_all_versions(server["minecraftVersions"])
@@ -256,6 +259,13 @@ def check_metadata(args: argparse.Namespace) -> defaultdict[str, list[str]]:
256259
domain = get_tld(address, as_object=True, fail_silently=True, fix_protocol=True)
257260
if domain is not None and domain.subdomain:
258261
messages[server_id].append(f"{address} does not follow the [documentation](https://lunarclient.dev/server-mappings/adding-servers/metadata). Please make sure the address is a valid domain, and does not have a subdomain.")
262+
263+
if domain is not None and domain.fld in seen_domains:
264+
messages[server_id].append(f"The domain {domain.fld} is also present in {', '.join(map(lambda s: f"`{s}`", seen_domains[domain.fld]))}. Please ensure each server has a unique domain(s).")
265+
elif domain is not None:
266+
seen_domains[domain.fld].add(server_id)
267+
else:
268+
messages[server_id].append(f"`{address}` is not a valid domain. Please review the [documentation](https://lunarclient.dev/server-mappings/adding-servers/metadata).")
259269

260270
if primary_region := server.get("primaryRegion"):
261271
if not (regions := server.get("regions")) or primary_region not in regions:

inactive.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
"cometmc",
4646
"corepvp",
4747
"craftoriya",
48+
"crimsonsmp",
4849
"crystal",
4950
"crobarus",
5051
"crove",
@@ -201,6 +202,7 @@
201202
"mysticlands",
202203
"mythicnetwork",
203204
"nasgar",
205+
"naturemc",
204206
"navybridge",
205207
"neptunemc",
206208
"nexopvp",
@@ -259,6 +261,7 @@
259261
"plasma",
260262
"evamc",
261263
"voidmc",
264+
"voidpixel",
262265
"mushroomnet",
263266
"zeromc",
264267
"asrbw",

servers/akyto/metadata.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
"addresses": [
66
"akyto.club",
77
"akyto.net",
8-
"potted.gg",
98
"groupezk.fr",
109
"pvptemple.it"
1110
],

servers/beemc/metadata.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,7 @@
44
"website": "https://beemc.pl/",
55
"store": "https://sklep.beemc.pl/",
66
"addresses": [
7-
"beemc.pl",
8-
"193.41.226.236"
7+
"beemc.pl"
98
],
109
"primaryAddress": "mc.beemc.pl",
1110
"primaryColor": "#FFD700",

servers/bte/metadata.json

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,7 @@
1515
"bteuk.net",
1616
"btefrance.fr",
1717
"bteoce.com",
18-
"139.99.91.188",
1918
"btehkmu.net",
20-
"142.202.222.202",
2119
"btemexca.net",
2220
"bteconosur.com",
2321
"bteromania.ro",

servers/ember/metadata.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,7 @@
66
"emberpvp.es",
77
"emberpvp.club",
88
"pvpsurge.com",
9-
"varant.es",
10-
"exempvp.es"
9+
"varant.es"
1110
],
1211
"primaryAddress": "emberpvp.es",
1312
"primaryColor": "#f62c22",

servers/eternitymcnet/metadata.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,7 @@
44
"website": "https://eternitymc.net/",
55
"store": "https://store.eternitymc.net/",
66
"addresses": [
7-
"eternitymc.net",
8-
"pvpmania.eu"
7+
"eternitymc.net"
98
],
109
"primaryAddress": "mc.eternitymc.net",
1110
"primaryColor": "#00aaaa",

servers/exodiamc/metadata.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
"store": "https://tienda.exodiamc.net",
66
"description": "A Spanish-speaking server that offers fair gameplay for everyone.",
77
"addresses": [
8-
"gamesmadeinpola.com",
98
"exodiamc.net"
109
],
1110
"primaryAddress": "exodiamc.net",

servers/gapplemc/metadata.json

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,6 @@
55
"store": "https://store.gapplemc.net",
66
"description": "GappleMC is THE Hispanic server you're looking for.",
77
"addresses": [
8-
"gegmc.net",
9-
"gegcraft.org",
108
"gapplemc.com"
119
],
1210
"primaryAddress": "gapplemc.com",

servers/kaiya/metadata.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
"website": "https://kaiya.rip/",
55
"addresses": [
66
"kaiya.rip",
7-
"rengo.us",
87
"kuda.rip"
98
],
109
"primaryAddress": "kaiya.rip",

0 commit comments

Comments
 (0)