diff --git a/LobbySystem/build.gradle.kts b/LobbySystem/build.gradle.kts index b2517c75..d0d6b708 100644 --- a/LobbySystem/build.gradle.kts +++ b/LobbySystem/build.gradle.kts @@ -42,6 +42,7 @@ tasks.register("DevLobby") { group = "run" description = "Run a Dev Lobby" dependsOn(":SpigotCore:shadowJar") + dependsOn(":KotlinCore:shadowJar") dependsOn(":LobbySystem:jar") template = "Lobby21" worldName = "Lobby" diff --git a/LobbySystem/src/de/steamwar/lobby/boatrace/BoatRace.java b/LobbySystem/src/de/steamwar/lobby/boatrace/BoatRace.java index 11aa3023..74e0d945 100644 --- a/LobbySystem/src/de/steamwar/lobby/boatrace/BoatRace.java +++ b/LobbySystem/src/de/steamwar/lobby/boatrace/BoatRace.java @@ -20,7 +20,6 @@ package de.steamwar.lobby.boatrace; import de.steamwar.entity.REntity; -import de.steamwar.entity.REntityAction; import de.steamwar.entity.REntityServer; import de.steamwar.entity.RInteraction; import de.steamwar.lobby.LobbySystem; @@ -36,6 +35,7 @@ import org.bukkit.entity.Boat; import org.bukkit.entity.Entity; import org.bukkit.entity.EntityType; import org.bukkit.entity.Player; +import org.bukkit.entity.boat.*; import org.bukkit.event.EventHandler; import org.bukkit.event.HandlerList; import org.bukkit.event.Listener; @@ -44,6 +44,7 @@ import org.bukkit.event.vehicle.VehicleMoveEvent; import org.bukkit.scheduler.BukkitTask; import java.util.EventListener; +import java.util.Random; import static de.steamwar.lobby.util.LeaderboardManager.renderTime; @@ -61,11 +62,11 @@ public class BoatRace implements EventListener, Listener { static { boatNpcServer = new REntityServer(); new REntity(boatNpcServer, EntityType.VILLAGER, BoatRacePositions.NPC); - RInteraction interaction = new RInteraction(boatNpcServer, BoatRacePositions.NPC.clone().subtract(0.5, 0, 0.5)); + RInteraction interaction = new RInteraction(boatNpcServer, BoatRacePositions.NPC.clone()); interaction.setInteractionHeight(1.95f); interaction.setCallback((player, entity, action) -> { Bukkit.getWorlds().get(0).getEntities().stream().filter(e -> e.getType() == EntityType.END_CRYSTAL).forEach(Entity::remove); - if (action == REntityAction.INTERACT && !oneNotStarted) { + if (!oneNotStarted) { oneNotStarted = true; new BoatRace(player); } @@ -153,10 +154,24 @@ public class BoatRace implements EventListener, Listener { oneNotStarted = false; } + private final Class[] boatClasses = new Class[]{ + AcaciaBoat.class, + BambooRaft.class, + BirchBoat.class, + CherryBoat.class, + DarkOakBoat.class, + JungleBoat.class, + MangroveBoat.class, + OakBoat.class, + PaleOakBoat.class, + SpruceBoat.class, + }; + + private final Random random = new Random(); + public BoatRace(Player player) { this.player = player; - boat = Bukkit.getWorlds().get(0).spawn(BoatRacePositions.START, Boat.class); - // boat.setBoatType(Boat.Type.values()[new Random().nextInt(Boat.Type.values().length)]); + boat = Bukkit.getWorlds().get(0).spawn(BoatRacePositions.START, boatClasses[random.nextInt(boatClasses.length)]); boat.addPassenger(player); bossBar = Bukkit.createBossBar("", BarColor.BLUE, BarStyle.SOLID); task = Bukkit.getScheduler().runTaskTimer(LobbySystem.getInstance(), () -> {