@@ -80,22 +80,25 @@ protected void init() {
8080 }
8181
8282 private void handleActionClick (ButtonWidget buttonWidget ) {
83+ if (exception != null ) {
84+ buttonWidget .active = true ;
85+ MinecraftClient .getInstance ().openScreen (new ModManagerErrorScreen (this , exception ));
86+ return ;
87+ }
8388 buttonWidget .active = false ;
84- String key = ((TranslatableText ) buttonWidget .getMessage ()).getKey ();
85- switch (key ) {
86- case "modmanager.message.install" -> {
89+ switch (ModManager .getState (summarizedMod )) {
90+ case OUTDATED -> {
91+ buttonWidget .setMessage (new TranslatableText ("modmanager.message.updating" ));
92+ ModManager .getModManipulationManager ().updateMod (summarizedMod , this ::handleTaskResult );
93+ }
94+ case DOWNLOADABLE -> {
8795 buttonWidget .setMessage (new TranslatableText ("modmanager.message.installing" ));
8896 ModManager .getModManipulationManager ().installMod (summarizedMod , this ::handleTaskResult );
8997 }
90- case "modmanager.message.remove" -> {
98+ case INSTALLED -> {
9199 buttonWidget .setMessage (new TranslatableText ("modmanager.message.removing" ));
92100 ModManager .getModManipulationManager ().removeMod (summarizedMod , this ::handleTaskResult );
93101 }
94- case "modmanager.message.showError" -> {
95- buttonWidget .active = true ;
96- MinecraftClient .getInstance ().openScreen (new ModManagerErrorScreen (this , exception ));
97- }
98- case "modmanager.message.update" -> buttonWidget .setMessage (new TranslatableText ("modmanager.message.updating" ));
99102 }
100103 }
101104
@@ -110,14 +113,11 @@ void updateActionButton() {
110113 actionButton .setMessage (new TranslatableText ("modmanager.message.showError" ));
111114 return ;
112115 }
113- if (ModManager .getModManipulationManager ().isInstalled (summarizedMod )) {
114- if (ModManager .getModManipulationManager ().isMarkedUninstalled (summarizedMod )) {
115- actionButton .setMessage (new TranslatableText ("modmanager.message.install" ));
116- }
117- actionButton .setMessage (new TranslatableText ("modmanager.message.remove" ));
118- return ;
116+ switch (ModManager .getState (summarizedMod )) {
117+ case DOWNLOADABLE -> actionButton .setMessage (new TranslatableText ("modmanager.message.install" ));
118+ case INSTALLED -> actionButton .setMessage (new TranslatableText ("modmanager.message.remove" ));
119+ case OUTDATED -> actionButton .setMessage (new TranslatableText ("modmanager.message.update" ));
119120 }
120- actionButton .setMessage (new TranslatableText ("modmanager.message.install" ));
121121 }
122122
123123 @ Override
0 commit comments