@@ -87,11 +87,14 @@ public boolean wakeUpScreen(){
8787 else return false ;
8888 }
8989 public boolean setScreenSleeping (int s ){
90+ return setCustomScreenSleeping (s , null );
91+ }
92+ public boolean setCustomScreenSleeping (int s , String sleep ){
9093 if (sleepingLevel != s ){
9194
9295 if (s != 0 ){
9396 sleepingLevel = s ;
94- setUpSleepingScreen ();
97+ setUpSleepingScreen (sleep == null ? getDefaultDisplayText () : Text . literal ( sleep ) );
9598 }else {
9699 //sleeping = false;
97100 sleepingLevel = s ;
@@ -115,15 +118,16 @@ public Screen getCurrentRenderingSleeping(){
115118 return currentRenderingSleeping ;
116119 }
117120 private class SleepingChatScreen extends ChatScreen implements SleepOverlay {
118-
119- public SleepingChatScreen (String originalChatText ) {
121+ Text displayMessage ;
122+ public SleepingChatScreen (String originalChatText , Text displayMessage ) {
120123 super (originalChatText , false );
124+ this .displayMessage = displayMessage ;
121125 }
122126 protected void init (){
123127 super .init ();
124128 sleepingScreenInstance = this ;
125129 DisplayWidget .instance (this .width - 80 , 0 , 80 , 40 )
126- .setRenderHandler (LabelElement .instance (Text . literal ( "按 " + getWakeupButton () + " 键退出休眠模式" ) ))
130+ .setRenderHandler (LabelElement .instance (displayMessage ))
127131 .addTo (this );
128132 shouldFreshSleepScreen = true ;
129133 }
@@ -161,16 +165,18 @@ public void close() {
161165 }
162166 }
163167 private class SleepingScreen extends Screen implements SafeSleepingScreen {
164- protected SleepingScreen (Text title ) {
168+ Text displayMessage ;
169+ protected SleepingScreen (Text title , Text displayMessage ) {
165170 super (title );
171+ this .displayMessage = displayMessage ;
166172 }
167173
168174 @ Override
169175 protected void init () {
170176 super .init ();
171177 sleepingScreenInstance = this ;
172178 DisplayWidget .instance (40 , 40 , this .width - 80 , this .height - 80 )
173- .setRenderHandler (LabelElement .instance (Text . literal ( "按 " + getWakeupButton () + " 键退出休眠模式" ) ))
179+ .setRenderHandler (LabelElement .instance (displayMessage ))
174180 .addTo (this );
175181 shouldFreshSleepScreen = true ;
176182 }
@@ -200,7 +206,7 @@ protected void init() {
200206 if (isScreenSleeping ()){
201207 if (ClientUtils .isPlayerOnline ()){
202208 sleepingScreenInstance = null ;
203- setUpSleepingScreen ();
209+ setUpSleepingScreen (getDefaultDisplayText () );
204210 }else {
205211 //keep this screen
206212 }
@@ -215,18 +221,21 @@ public void renderBackground(DrawContext context, int mouseX, int mouseY, float
215221
216222 }
217223 }
224+ private Text getDefaultDisplayText (){
225+ return Text .literal ("按 " + getWakeupButton () +" 键退出休眠模式" );
226+ }
218227 private static interface SafeSleepingScreen extends SleepOverlay {
219228 //screen which implement this can keep even when player exit game, which means it does not need mc.player or mc.world or sth
220229 }
221230 //
222- public void setUpSleepingScreen (){
231+ public void setUpSleepingScreen (Text display ){
223232 if (sleepingScreenInstance == null ){
224233 switch (sleepingLevel ){
225234 case 1 :
226- sleepingScreenInstance = new SleepingChatScreen ("" );
235+ sleepingScreenInstance = new SleepingChatScreen ("" , display );
227236 break ;
228237 default :
229- sleepingScreenInstance = new SleepingScreen (Text .empty ());
238+ sleepingScreenInstance = new SleepingScreen (Text .empty (), display );
230239 break ;
231240 }
232241 }
@@ -312,7 +321,7 @@ public boolean sleepingRenderTick(GameRenderer gameRenderer, RenderTickCounter t
312321 mc .gameRenderer .pool .decrementLifespan ();
313322 }
314323 }else {
315- setUpSleepingScreen ();
324+ setUpSleepingScreen (getDefaultDisplayText () );
316325 }
317326 return true ;
318327 }
0 commit comments