Skip to content

Commit e8a83ce

Browse files
Add Bedrock 1.21.120 world paths (#1209)
In Bedrock 1.21.120 the world paths changed. This adds the new paths to the world select dialog. Refactor path storage so that the name does not need to be unique.
1 parent ebafe4b commit e8a83ce

File tree

18 files changed

+126
-51
lines changed

18 files changed

+126
-51
lines changed

amulet_map_editor/api/wx/ui/select_world.py

Lines changed: 106 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -25,49 +25,121 @@
2525
# macOS ~/Library/Application Support/minecraft
2626
# Linux ~/.minecraft
2727

28-
minecraft_world_paths = {}
28+
minecraft_world_paths: list[tuple[str, str]] = []
2929

3030
if platform == "win32":
31-
minecraft_world_paths[lang.get("world.java_platform")] = os.path.join(
32-
os.getenv("APPDATA"), ".minecraft", "saves"
31+
minecraft_world_paths.append(
32+
(
33+
lang.get("world.java_platform"),
34+
os.path.join(os.getenv("APPDATA"), ".minecraft", "saves"),
35+
)
3336
)
34-
minecraft_world_paths[lang.get("world.bedrock_platform")] = os.path.join(
35-
os.getenv("LOCALAPPDATA"),
36-
"Packages",
37-
"Microsoft.MinecraftUWP_8wekyb3d8bbwe",
38-
"LocalState",
39-
"games",
40-
"com.mojang",
41-
"minecraftWorlds",
37+
minecraft_world_paths.append(
38+
(
39+
lang.get("world.bedrock_uwp"),
40+
os.path.join(
41+
os.getenv("LOCALAPPDATA"),
42+
"Packages",
43+
"Microsoft.MinecraftUWP_8wekyb3d8bbwe",
44+
"LocalState",
45+
"games",
46+
"com.mojang",
47+
"minecraftWorlds",
48+
),
49+
)
4250
)
43-
minecraft_world_paths[lang.get("world.bedrock_education_store")] = os.path.join(
44-
os.getenv("LOCALAPPDATA"),
45-
"Packages",
46-
"Microsoft.MinecraftEducationEdition_8wekyb3d8bbwe",
47-
"LocalState",
48-
"games",
49-
"com.mojang",
50-
"minecraftWorlds",
51+
minecraft_world_paths.append(
52+
(
53+
lang.get("world.bedrock_uwp_beta"),
54+
os.path.join(
55+
os.getenv("LOCALAPPDATA"),
56+
"Packages",
57+
"Microsoft.MinecraftWindowsBeta_8wekyb3d8bbwe",
58+
"LocalState",
59+
"games",
60+
"com.mojang",
61+
"minecraftWorlds",
62+
),
63+
)
5164
)
52-
minecraft_world_paths[lang.get("world.bedrock_education_desktop")] = os.path.join(
53-
os.getenv("APPDATA"),
54-
"Minecraft Education Edition",
55-
"games",
56-
"com.mojang",
57-
"minecraftWorlds",
65+
minecraft_world_paths.append(
66+
(
67+
lang.get("world.bedrock_education_store"),
68+
os.path.join(
69+
os.getenv("LOCALAPPDATA"),
70+
"Packages",
71+
"Microsoft.MinecraftEducationEdition_8wekyb3d8bbwe",
72+
"LocalState",
73+
"games",
74+
"com.mojang",
75+
"minecraftWorlds",
76+
),
77+
)
78+
)
79+
minecraft_world_paths.append(
80+
(
81+
lang.get("world.bedrock_education_desktop"),
82+
os.path.join(
83+
os.getenv("APPDATA"),
84+
"Minecraft Education Edition",
85+
"games",
86+
"com.mojang",
87+
"minecraftWorlds",
88+
),
89+
)
5890
)
59-
minecraft_world_paths[lang.get("world.bedrock_netease")] = os.path.join(
60-
os.getenv("APPDATA"),
61-
"MinecraftPE_Netease",
62-
"minecraftWorlds",
91+
minecraft_world_paths.append(
92+
(
93+
lang.get("world.bedrock_netease"),
94+
os.path.join(
95+
os.getenv("APPDATA"),
96+
"MinecraftPE_Netease",
97+
"minecraftWorlds",
98+
),
99+
)
63100
)
101+
for group, key in (
102+
("Minecraft Bedrock", "world.bedrock_gdk"),
103+
("Minecraft Bedrock Preview", "world.bedrock_gdk_preview"),
104+
):
105+
for worlds_path in glob.glob(
106+
os.path.join(
107+
glob.escape(os.getenv("APPDATA")),
108+
group,
109+
"Users",
110+
"*",
111+
"games",
112+
"com.mojang",
113+
"minecraftWorlds",
114+
)
115+
):
116+
user_id = worlds_path.split(os.sep)[-4]
117+
minecraft_world_paths.append(
118+
(
119+
f"{lang.get(key)} {user_id}",
120+
worlds_path,
121+
)
122+
)
123+
64124
elif platform == "darwin":
65-
minecraft_world_paths[lang.get("world.java_platform")] = os.path.join(
66-
os.path.expanduser("~"), "Library", "Application Support", "minecraft", "saves"
125+
minecraft_world_paths.append(
126+
(
127+
lang.get("world.java_platform"),
128+
os.path.join(
129+
os.path.expanduser("~"),
130+
"Library",
131+
"Application Support",
132+
"minecraft",
133+
"saves",
134+
),
135+
)
67136
)
68137
elif platform == "linux":
69-
minecraft_world_paths[lang.get("world.java_platform")] = os.path.join(
70-
os.path.expanduser("~"), ".minecraft", "saves"
138+
minecraft_world_paths.append(
139+
(
140+
lang.get("world.java_platform"),
141+
os.path.join(os.path.expanduser("~"), ".minecraft", "saves"),
142+
)
71143
)
72144

73145
world_images: Dict[str, Tuple[int, wx.Bitmap, int]] = {}
@@ -215,7 +287,7 @@ def reload(self):
215287
for val in self.dirs.values():
216288
val.Destroy()
217289
self.dirs.clear()
218-
for group_name, directory in minecraft_world_paths.items():
290+
for group_name, directory in sorted(minecraft_world_paths, key=lambda x: x[0]):
219291
if os.path.isdir(directory):
220292
world_list = CollapsibleWorldListUI(
221293
self,

amulet_map_editor/lang/cs.lang

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ app.world_still_used=Svět je stále otevřený. Nejprve jej prosím zavřete
5858
app.browser_open_tooltip=Kliknutím otevřete stránku ve vašem prohlížeči
5959

6060
world.java_platform=Java
61-
world.bedrock_platform=Bedrock
61+
world.bedrock_uwp=Bedrock UWP
6262
world.close_world=Zavřít Svět
6363

6464
# Menu bar

amulet_map_editor/lang/de.lang

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ app.world_still_used=Eine Welt ist noch geöffnet, bitte schließen
3030
app.browser_open_tooltip=Durch Anklicken wird die Seite in Deinem Default-Browser geöffnet
3131

3232
world.java_platform=Java
33-
world.bedrock_platform=Bedrock
33+
world.bedrock_uwp=Bedrock UWP
3434
world.close_world=Welt schließen
3535

3636

amulet_map_editor/lang/en.lang

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,10 @@ app.world_still_used=A world is still being used. Please close it first
6161
app.browser_open_tooltip=Clicking will open the page in your browser
6262

6363
world.java_platform=Java
64-
world.bedrock_platform=Bedrock
64+
world.bedrock_uwp=Bedrock UWP
65+
world.bedrock_uwp_beta=Bedrock UWP Beta
66+
world.bedrock_gdk=Bedrock GDK
67+
world.bedrock_gdk_preview=Bedrock GDK Preview
6568
world.bedrock_education_store=Education Edition (Store)
6669
world.bedrock_education_desktop=Education Edition (Desktop)
6770
world.bedrock_netease=Bedrock (Netease)

amulet_map_editor/lang/es_MX.lang

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ app.world_still_used=Un mundo todavía está en uso. Por favor, ciérralo primer
6161
app.browser_open_tooltip=Se abrirá esta página en tu navegador si das click.
6262

6363
world.java_platform=Java
64-
world.bedrock_platform=Bedrock
64+
world.bedrock_uwp=Bedrock UWP
6565
world.close_world=Cerrar Mundo
6666

6767
# Menu bar

amulet_map_editor/lang/fr.lang

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ app.world_still_used=Un monde est toujours en cours d'utilisation. Veuillez d'ab
5858
app.browser_open_tooltip=Cliquer ouvrira la page dans votre navigateur
5959

6060
world.java_platform=Java
61-
world.bedrock_platform=Bedrock
61+
world.bedrock_uwp=Bedrock UWP
6262
world.close_world=Fermer le monde
6363

6464
# Barre de menu

amulet_map_editor/lang/he_IL.lang

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ app.world_still_used=יש עולם שעדיין פתוח. בבקשה תסגור
6565
app.browser_open_tooltip=לחיצה תפתח את הדף בדפדפן שלך
6666

6767
world.java_platform=ג'אווה
68-
world.bedrock_platform=בדרוק
68+
world.bedrock_uwp=בדרוק
6969
world.close_world=סגור עולם
7070

7171
# Menu bar

amulet_map_editor/lang/id.lang

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ app.world_still_used=Dunia masih digunakan. Mohon tutup terlebih dahulu
3333
app.browser_open_tooltip=Mengklik akan membuka halaman di browser Anda
3434

3535
world.java_platform=Java
36-
world.bedrock_platform=Bedrock
36+
world.bedrock_uwp=Bedrock UWP
3737
world.close_world=Tutup Dunia
3838

3939
# Menu bar

amulet_map_editor/lang/ja.lang

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ app.world_still_used=ワールドはまだ使用されています。 先に閉
6161
app.browser_open_tooltip=ブラウザでページを表示します。
6262

6363
world.java_platform=Java
64-
world.bedrock_platform=Bedrock
64+
world.bedrock_uwp=Bedrock UWP
6565
world.close_world=ワールドを閉じる
6666

6767
# メニューバー

amulet_map_editor/lang/ko.lang

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ app.world_still_used=월드가 이미 사용되고 있습니다. 먼저 닫아
6161
app.browser_open_tooltip=클릭하면 브라우저에서 파일이 열립니다
6262

6363
world.java_platform=자바
64-
world.bedrock_platform=베드락
64+
world.bedrock_uwp=베드락
6565
world.close_world=월드 닫기
6666

6767
# Menu bar

0 commit comments

Comments
 (0)