From f55148203e820d144db2cec5c6dc325138cd44b8 Mon Sep 17 00:00:00 2001 From: jannis_mg Date: Sat, 18 Jul 2026 15:15:29 +0200 Subject: [PATCH] started player race --- .../minigames/instance/game/GameList.java | 4 ++- .../types/playerRace/PlayerRace.java | 29 +++++++++++++++++ .../types/playerRace/PlayerRaceFactory.java | 32 +++++++++++++++++++ 3 files changed, 64 insertions(+), 1 deletion(-) create mode 100644 src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/playerRace/PlayerRace.java create mode 100644 src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/playerRace/PlayerRaceFactory.java diff --git a/src/main/java/eu/mhsl/minenet/minigames/instance/game/GameList.java b/src/main/java/eu/mhsl/minenet/minigames/instance/game/GameList.java index d160948..74c3272 100644 --- a/src/main/java/eu/mhsl/minenet/minigames/instance/game/GameList.java +++ b/src/main/java/eu/mhsl/minenet/minigames/instance/game/GameList.java @@ -17,6 +17,7 @@ import eu.mhsl.minenet.minigames.instance.game.stateless.types.highGround.HighGr import eu.mhsl.minenet.minigames.instance.game.stateless.types.jumpDive.JumpDiveFactory; import eu.mhsl.minenet.minigames.instance.game.stateless.types.minerun.MinerunFactory; import eu.mhsl.minenet.minigames.instance.game.stateless.types.pillars.PillarsFactory; +import eu.mhsl.minenet.minigames.instance.game.stateless.types.playerRace.PlayerRaceFactory; import eu.mhsl.minenet.minigames.instance.game.stateless.types.spaceSnake.SpaceSnakeFactory; import eu.mhsl.minenet.minigames.instance.game.stateless.types.spleef.SpleefFactory; import eu.mhsl.minenet.minigames.instance.game.stateless.types.stickfight.StickFightFactory; @@ -52,7 +53,8 @@ public enum GameList { BOATRACE(new BoatRaceFactory(), GameType.OTHER), PILLARS(new PillarsFactory(), GameType.PROTOTYPE), BLOCKBATTLE(new BlockBattleFactory(), GameType.PVP), - COLORJUMP(new ColorJumpFactory(), GameType.JUMPNRUN); + COLORJUMP(new ColorJumpFactory(), GameType.JUMPNRUN), + PLAYERRACE(new PlayerRaceFactory(), GameType.PROTOTYPE); private final GameFactory factory; private final GameType type; diff --git a/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/playerRace/PlayerRace.java b/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/playerRace/PlayerRace.java new file mode 100644 index 0000000..b21b8df --- /dev/null +++ b/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/playerRace/PlayerRace.java @@ -0,0 +1,29 @@ +package eu.mhsl.minenet.minigames.instance.game.stateless.types.playerRace; + +import eu.mhsl.minenet.minigames.instance.Dimension; +import eu.mhsl.minenet.minigames.instance.game.stateless.StatelessGame; +import eu.mhsl.minenet.minigames.score.LastWinsScore; +import net.minestom.server.coordinate.Pos; +import net.minestom.server.instance.batch.AbsoluteBlockBatch; +import net.minestom.server.instance.block.Block; +import org.jetbrains.annotations.NotNull; + +import java.util.concurrent.CompletableFuture; + +public class PlayerRace extends StatelessGame { + public PlayerRace() { + super(Dimension.THE_END.key, "PlayerRace", new LastWinsScore()); + } + + @Override + protected void onLoad(@NotNull CompletableFuture callback) { + AbsoluteBlockBatch batch = new AbsoluteBlockBatch(); + this.setBlock(0, 100, 0, Block.AMETHYST_BLOCK); + } + + @Override + public Pos getSpawn() { + return new Pos(0.5, 101.5, 0.5); + } + +} \ No newline at end of file diff --git a/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/playerRace/PlayerRaceFactory.java b/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/playerRace/PlayerRaceFactory.java new file mode 100644 index 0000000..8f82310 --- /dev/null +++ b/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/playerRace/PlayerRaceFactory.java @@ -0,0 +1,32 @@ +package eu.mhsl.minenet.minigames.instance.game.stateless.types.playerRace; + +import eu.mhsl.minenet.minigames.instance.game.Game; +import eu.mhsl.minenet.minigames.instance.game.stateless.config.GameFactory; +import eu.mhsl.minenet.minigames.instance.game.stateless.config.Option; +import eu.mhsl.minenet.minigames.instance.room.Room; +import eu.mhsl.minenet.minigames.message.component.TranslatedComponent; +import net.minestom.server.item.Material; + +import java.util.Map; + +public class PlayerRaceFactory implements GameFactory { + @Override + public TranslatedComponent name() { + return TranslatedComponent.byId("game_PlayerRace#name"); + } + + @Override + public Game manufacture(Room parent, Map> configuration) throws Exception { + return new PlayerRace().setParent(parent); + } + + @Override + public Material symbol() { + return Material.GRASS_BLOCK; + } + + @Override + public TranslatedComponent description() { + return TranslatedComponent.byId("game_PlayerRace#description"); + } +}