2020import net .minecraft .client .gui .screen .Screen ;
2121import net .minecraft .client .gui .widget .ButtonWidget ;
2222import net .minecraft .client .gui .widget .TextFieldWidget ;
23- import net .minecraft .client .input .KeyboardInput ;
2423import net .minecraft .client .util .math .MatrixStack ;
2524import net .minecraft .text .TranslatableText ;
26- import org .apache .logging .log4j .LogManager ;
27- import org .apache .logging .log4j .Logger ;
2825import xyz .deathsgun .modmanager .gui .widget .CategoryListEntry ;
2926import xyz .deathsgun .modmanager .gui .widget .CategoryListWidget ;
3027import xyz .deathsgun .modmanager .gui .widget .ModListEntry ;
@@ -43,6 +40,8 @@ public class ModsOverviewScreen extends Screen implements IListScreen {
4340 private TextFieldWidget searchBox ;
4441 private int paneWidth ;
4542 private int rightPaneX ;
43+ private ButtonWidget previousPage ;
44+ private ButtonWidget nextPage ;
4645
4746 public ModsOverviewScreen (Screen previousScreen ) {
4847 super (new TranslatableText ("modmanager.title" ));
@@ -67,9 +66,9 @@ protected void init() {
6766 this .categoryListWidget .init ();
6867 this .modListWidget .init ();
6968
70- this .addDrawableChild (new ButtonWidget (rightPaneX , this .height - 30 , modListWidth / 2 - 10 , 20 ,
69+ this .previousPage = this . addDrawableChild (new ButtonWidget (rightPaneX , this .height - 30 , modListWidth / 2 - 10 , 20 ,
7170 new TranslatableText ("modmanager.page.previous" ), button -> this .modListWidget .showPreviousPage ()));
72- this .addDrawableChild (new ButtonWidget (rightPaneX + modListWidth / 2 , this .height - 30 , modListWidth / 2 , 20 ,
71+ this .nextPage = this . addDrawableChild (new ButtonWidget (rightPaneX + modListWidth / 2 , this .height - 30 , modListWidth / 2 , 20 ,
7372 new TranslatableText ("modmanager.page.next" ), button -> this .modListWidget .showNextPage ()));
7473 }
7574
@@ -91,6 +90,7 @@ public void render(MatrixStack matrices, int mouseX, int mouseY, float delta) {
9190 @ Override
9291 public void tick () {
9392 this .searchBox .tick ();
93+ this .nextPage .active = this .modListWidget .getEntryCount () >= this .modListWidget .getLimit ();
9494 }
9595
9696 @ Override
@@ -116,7 +116,9 @@ public <E> void updateSelectedEntry(Object widget, E entry) {
116116 Objects .requireNonNull (this .client ).openScreen (new ModDetailScreen (this , ((ModListEntry ) entry ).getMod ()));
117117 return ;
118118 }
119- this .selectedMod = (ModListEntry ) entry ;
119+ if (entry instanceof ModListEntry ) {
120+ this .selectedMod = (ModListEntry ) entry ;
121+ }
120122 }
121123 }
122124 }
0 commit comments