forked from SteamWar/SteamWar
Fix BoatRace
This commit is contained in:
@@ -42,6 +42,7 @@ tasks.register<DevServer>("DevLobby") {
|
||||
group = "run"
|
||||
description = "Run a Dev Lobby"
|
||||
dependsOn(":SpigotCore:shadowJar")
|
||||
dependsOn(":KotlinCore:shadowJar")
|
||||
dependsOn(":LobbySystem:jar")
|
||||
template = "Lobby21"
|
||||
worldName = "Lobby"
|
||||
|
||||
@@ -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<? extends Boat>[] 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(), () -> {
|
||||
|
||||
Reference in New Issue
Block a user