--- a/net/minecraft/server/commands/DefaultGameModeCommands.java
+++ b/net/minecraft/server/commands/DefaultGameModeCommands.java
@@ -28,9 +_,13 @@
         GameType forcedGameType = server.getForcedGameType();
         if (forcedGameType != null) {
             for (ServerPlayer serverPlayer : server.getPlayerList().getPlayers()) {
-                if (serverPlayer.setGameMode(forcedGameType)) {
-                    i++;
+                // Paper start - Expand PlayerGameModeChangeEvent
+                org.bukkit.event.player.PlayerGameModeChangeEvent event = serverPlayer.setGameMode(gamemode, org.bukkit.event.player.PlayerGameModeChangeEvent.Cause.DEFAULT_GAMEMODE, net.kyori.adventure.text.Component.empty());
+                if (event != null && event.isCancelled()) {
+                    commandSource.sendSuccess(() -> io.papermc.paper.adventure.PaperAdventure.asVanilla(event.cancelMessage()), false);
                 }
+                // Paper end - Expand PlayerGameModeChangeEvent
+                    i++;
             }
         }
 
