@@ -25,18 +25,35 @@ public class OptCarpetAddition implements CarpetExtension, ModInitializer {
2525 @ Override
2626 public void onInitialize () {
2727 CarpetServer .manageExtension (additionInstance );
28-
28+
2929 ServerEntityWorldChangeEvents .AFTER_PLAYER_CHANGE_WORLD .register (new FixExperienceBug ());
3030 }
3131
3232 @ Override
3333 public void onGameStarted () {
3434 CarpetServer .settingsManager .parseSettingsClass (OptCarpetSettings .class );
3535 CarpetServer .settingsManager .addRuleObserver (((serverCommandSource , rule , s ) -> {
36- if (Objects .equals (rule .name , "forceFakePlayerGameMode" )) {
36+ if (Objects .equals (rule .name , "forceFakePlayerGameMode" ) && !Objects .equals (OptCarpetSettings .forceFakePlayerGameMode , "false" )) {
37+ GameMode gameMode = GameMode .SURVIVAL ;
38+
39+ switch (OptCarpetSettings .forceFakePlayerGameMode ) {
40+ case "survival" : {
41+ gameMode = GameMode .SURVIVAL ;
42+ break ;
43+ }
44+ case "creative" : {
45+ gameMode = GameMode .CREATIVE ;
46+ break ;
47+ }
48+ case "adventure" : {
49+ gameMode = GameMode .ADVENTURE ;
50+ break ;
51+ }
52+ }
53+
3754 for (ServerPlayerEntity player : serverCommandSource .getMinecraftServer ().getPlayerManager ().getPlayerList ()) {
3855 if (player instanceof EntityPlayerMPFake ) {
39- player .setGameMode (GameMode . valueOf ( OptCarpetSettings . forceFakePlayerGameMode ) );
56+ player .setGameMode (gameMode );
4057 }
4158 }
4259 }
@@ -52,7 +69,24 @@ public void registerCommands(CommandDispatcher<ServerCommandSource> dispatcher)
5269 @ Override
5370 public void onPlayerLoggedIn (ServerPlayerEntity player ) {
5471 if (player instanceof EntityPlayerMPFake && !(Objects .equals (OptCarpetSettings .forceFakePlayerGameMode , "false" ))) {
55- player .setGameMode (GameMode .valueOf (OptCarpetSettings .forceFakePlayerGameMode ));
72+ GameMode gameMode = GameMode .SURVIVAL ;
73+
74+ switch (OptCarpetSettings .forceFakePlayerGameMode ) {
75+ case "survival" : {
76+ gameMode = GameMode .SURVIVAL ;
77+ break ;
78+ }
79+ case "creative" : {
80+ gameMode = GameMode .CREATIVE ;
81+ break ;
82+ }
83+ case "adventure" : {
84+ gameMode = GameMode .ADVENTURE ;
85+ break ;
86+ }
87+ }
88+
89+ player .setGameMode (gameMode );
5690 }
5791 }
5892}
0 commit comments