assertGameMode does not detect the change of gamemode
### Is there an existing issue for this?

- [X] I have searched the existing issues

### Are you using the latest version of MockBukkit?

- [X] I am using the latest version of MockBukkit.

### Minecraft Version

1.18

### Describe the bug

When I type this code 
```java
PlayerMock player = new PlayerMock(server, "test") ;

player.setGameMode(GameMode.CREATIVE) ;
player.assertGameMode(GameMode.CREATIVE) ;
```
assertGameMode keeps the player's GameMode.SURVIVAL state
the response :
```
org.opentest4j.AssertionFailedError: 
Expected :CREATIVE
Actual   :SURVIVAL
```

### Reproducible Test

```java
PlayerMock player = new PlayerMock(server, "test") ;

player.setGameMode(GameMode.CREATIVE) ;
player.assertGameMode(GameMode.CREATIVE) ;
```

### Anything else?

_No response_
diff --git a/src/main/java/be/seeseemelk/mockbukkit/entity/PlayerMock.java b/src/main/java/be/seeseemelk/mockbukkit/entity/PlayerMock.java
index 3c0bcc84..e87ca931 100644
--- a/src/main/java/be/seeseemelk/mockbukkit/entity/PlayerMock.java
+++ b/src/main/java/be/seeseemelk/mockbukkit/entity/PlayerMock.java
@@ -133,8 +133,7 @@ public class PlayerMock extends HumanEntityMock implements Player, SoundReceiver
 
 	private static final Component DEFAULT_KICK_COMPONENT = Component.text("You are not whitelisted on this server!");
 
-	private @NotNull GameMode gamemode = GameMode.SURVIVAL;
-	private @NotNull GameMode previousGamemode = gamemode;
+	private @NotNull GameMode previousGamemode = super.getGameMode();
 
 	private boolean online;
 	private @Nullable Component displayName = null;
@@ -359,7 +358,7 @@ public class PlayerMock extends HumanEntityMock implements Player, SoundReceiver
 	public @Nullable BlockDamageEvent simulateBlockDamage(@NotNull Block block)
 	{
 		Preconditions.checkNotNull(block, "Block cannot be null");
-		if (gamemode != GameMode.SURVIVAL)
+		if (super.getGameMode() != GameMode.SURVIVAL)
 		{
 			return null;
 		}
@@ -387,8 +386,8 @@ public class PlayerMock extends HumanEntityMock implements Player, SoundReceiver
 	public @Nullable BlockBreakEvent simulateBlockBreak(@NotNull Block block)
 	{
 		Preconditions.checkNotNull(block, "Block cannot be null");
-		if ((gamemode == GameMode.SPECTATOR || gamemode == GameMode.ADVENTURE)
-				|| (gamemode == GameMode.SURVIVAL && simulateBlockDamagePure(block).isCancelled()))
+		if ((super.getGameMode() == GameMode.SPECTATOR || super.getGameMode() == GameMode.ADVENTURE)
+				|| (super.getGameMode() == GameMode.SURVIVAL && simulateBlockDamagePure(block).isCancelled()))
 			return null;
 
 		BlockBreakEvent event = new BlockBreakEvent(block, this);
@@ -411,7 +410,7 @@ public class PlayerMock extends HumanEntityMock implements Player, SoundReceiver
 	{
 		Preconditions.checkNotNull(material, "Material cannot be null");
 		Preconditions.checkNotNull(location, "Location cannot be null");
-		if (gamemode == GameMode.ADVENTURE || gamemode == GameMode.SPECTATOR)
+		if (super.getGameMode() == GameMode.ADVENTURE || super.getGameMode() == GameMode.SPECTATOR)
 			return null;
 		Block block = location.getBlock();
 		BlockState blockState = block.getState();
@@ -510,25 +509,19 @@ public class PlayerMock extends HumanEntityMock implements Player, SoundReceiver
 		return event;
 	}
 
-	@Override
-	public @NotNull GameMode getGameMode()
-	{
-		return this.gamemode;
-	}
-
 	@Override
 	public void setGameMode(@NotNull GameMode mode)
 	{
 		Preconditions.checkNotNull(mode, "GameMode cannot be null");
-		if (this.gamemode == mode)
+		if (super.getGameMode() == mode)
 			return;
 
 		PlayerGameModeChangeEvent event = new PlayerGameModeChangeEvent(this, mode, PlayerGameModeChangeEvent.Cause.UNKNOWN, null);
 		if (!event.callEvent())
 			return;
 
-		this.previousGamemode = this.gamemode;
-		this.gamemode = mode;
+		this.previousGamemode = super.getGameMode();
+		super.setGameMode(mode);
 	}
 
 	@Override
['src/main/java/be/seeseemelk/mockbukkit/entity/PlayerMock.java']