diff --git a/build.gradle b/build.gradle index 6607b2c..3272b6a 100644 --- a/build.gradle +++ b/build.gradle @@ -59,7 +59,7 @@ dependencies { //PvP - implementation 'com.github.TogAr2:MinestomPvP:0a5f94bcd7' + implementation 'com.github.TogAr2:MinestomPvP:04180ddf9a' // Hephaestus engine implementation("team.unnamed:hephaestus-api:0.2.1-SNAPSHOT") 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 f8bbc35..5c0cc63 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 @@ -11,6 +11,8 @@ import eu.mhsl.minenet.minigames.instance.game.stateless.types.deathcube.Deathcu import eu.mhsl.minenet.minigames.instance.game.stateless.types.minerun.MinerunFactory; import eu.mhsl.minenet.minigames.instance.game.stateless.types.spleef.SpleefFactory; import eu.mhsl.minenet.minigames.instance.game.stateless.types.stickfight.StickFightFactory; +import eu.mhsl.minenet.minigames.instance.game.stateless.types.test.Test; +import eu.mhsl.minenet.minigames.instance.game.stateless.types.test.TestFactory; import eu.mhsl.minenet.minigames.instance.game.stateless.types.tntrun.TntRunFactory; import eu.mhsl.minenet.minigames.instance.game.stateless.types.towerdefense.TowerdefenseFactory; import eu.mhsl.minenet.minigames.instance.game.stateless.types.trafficlightrace.TrafficLightRaceFactory; @@ -28,7 +30,8 @@ public enum GameList { ANVILRUN(new AnvilRunFactory(), GameType.PVE), ELYTRARACE(new ElytraRaceFactory(), GameType.PVP), SPLEEF(new SpleefFactory(), GameType.PVP), - BOWSPLEEF(new BowSpleefFactory(), GameType.PVP); + BOWSPLEEF(new BowSpleefFactory(), GameType.PVP), + Test(new TestFactory(), GameType.OTHER); private final GameFactory factory; private final GameType type; diff --git a/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/deathcube/Deathcube.java b/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/deathcube/Deathcube.java index fc79e93..73bcd03 100644 --- a/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/deathcube/Deathcube.java +++ b/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/deathcube/Deathcube.java @@ -7,6 +7,7 @@ import eu.mhsl.minenet.minigames.instance.Dimension; import eu.mhsl.minenet.minigames.world.BlockPallet; import eu.mhsl.minenet.minigames.world.generator.terrain.CircularPlateTerrainGenerator; import net.minestom.server.coordinate.Pos; +import net.minestom.server.entity.Player; import net.minestom.server.event.player.PlayerMoveEvent; import net.minestom.server.instance.batch.AbsoluteBlockBatch; import org.jetbrains.annotations.NotNull; diff --git a/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/test/Test.java b/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/test/Test.java new file mode 100644 index 0000000..ecf8b94 --- /dev/null +++ b/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/test/Test.java @@ -0,0 +1,47 @@ +package eu.mhsl.minenet.minigames.instance.game.stateless.types.test; + +import eu.mhsl.minenet.minigames.instance.Dimension; +import eu.mhsl.minenet.minigames.instance.game.stateless.StatelessGame; +import eu.mhsl.minenet.minigames.score.FirstWinsScore; +import net.minestom.server.coordinate.Pos; +import net.minestom.server.event.player.PlayerBlockInteractEvent; +import net.minestom.server.instance.block.Block; +import org.jetbrains.annotations.NotNull; + +import java.util.concurrent.CompletableFuture; + +public class Test extends StatelessGame { + + int zähler = 0; + + public Test() { + super(Dimension.THE_END.key, "test", new FirstWinsScore()); + eventNode().addListener(PlayerBlockInteractEvent.class, event -> { + if (!isBeforeBeginning) { + zähler++; + } + if (zähler >= 10) { + getScore().insertResult(event.getPlayer()); + System.out.println("Sieg"); + } + }); + + } + + @Override + protected void onLoad(@NotNull CompletableFuture callback) { + for(int x = 0; x <= 10; x++) { + for(int z = 0; z <= 10; z++) { + setBlock(x, 0, z, Block.BEDROCK); + } + } + setBlock(3,1,6, Block.BIRCH_BUTTON.withProperty("face", "floor")); + } + + + + @Override + public Pos getSpawn() { + return new Pos(5, 3, 5); + } +} diff --git a/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/test/TestFactory.java b/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/test/TestFactory.java new file mode 100644 index 0000000..95da72c --- /dev/null +++ b/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/test/TestFactory.java @@ -0,0 +1,22 @@ +package eu.mhsl.minenet.minigames.instance.game.stateless.types.test; + +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.kyori.adventure.text.Component; + +import java.util.Map; + +public class TestFactory implements GameFactory { + @Override + public TranslatedComponent name() { + return TranslatedComponent.byId("test"); + } + + @Override + public Game manufacture(Room parent, Map> configuration) throws Exception { + return new Test().setParent(parent); + } +}