forked from SteamWar/SteamWar
Fix BoatRace
This commit is contained in:
@@ -42,6 +42,7 @@ tasks.register<DevServer>("DevLobby") {
|
|||||||
group = "run"
|
group = "run"
|
||||||
description = "Run a Dev Lobby"
|
description = "Run a Dev Lobby"
|
||||||
dependsOn(":SpigotCore:shadowJar")
|
dependsOn(":SpigotCore:shadowJar")
|
||||||
|
dependsOn(":KotlinCore:shadowJar")
|
||||||
dependsOn(":LobbySystem:jar")
|
dependsOn(":LobbySystem:jar")
|
||||||
template = "Lobby21"
|
template = "Lobby21"
|
||||||
worldName = "Lobby"
|
worldName = "Lobby"
|
||||||
|
|||||||
@@ -20,7 +20,6 @@
|
|||||||
package de.steamwar.lobby.boatrace;
|
package de.steamwar.lobby.boatrace;
|
||||||
|
|
||||||
import de.steamwar.entity.REntity;
|
import de.steamwar.entity.REntity;
|
||||||
import de.steamwar.entity.REntityAction;
|
|
||||||
import de.steamwar.entity.REntityServer;
|
import de.steamwar.entity.REntityServer;
|
||||||
import de.steamwar.entity.RInteraction;
|
import de.steamwar.entity.RInteraction;
|
||||||
import de.steamwar.lobby.LobbySystem;
|
import de.steamwar.lobby.LobbySystem;
|
||||||
@@ -36,6 +35,7 @@ import org.bukkit.entity.Boat;
|
|||||||
import org.bukkit.entity.Entity;
|
import org.bukkit.entity.Entity;
|
||||||
import org.bukkit.entity.EntityType;
|
import org.bukkit.entity.EntityType;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.entity.boat.*;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.HandlerList;
|
import org.bukkit.event.HandlerList;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
@@ -44,6 +44,7 @@ import org.bukkit.event.vehicle.VehicleMoveEvent;
|
|||||||
import org.bukkit.scheduler.BukkitTask;
|
import org.bukkit.scheduler.BukkitTask;
|
||||||
|
|
||||||
import java.util.EventListener;
|
import java.util.EventListener;
|
||||||
|
import java.util.Random;
|
||||||
|
|
||||||
import static de.steamwar.lobby.util.LeaderboardManager.renderTime;
|
import static de.steamwar.lobby.util.LeaderboardManager.renderTime;
|
||||||
|
|
||||||
@@ -61,11 +62,11 @@ public class BoatRace implements EventListener, Listener {
|
|||||||
static {
|
static {
|
||||||
boatNpcServer = new REntityServer();
|
boatNpcServer = new REntityServer();
|
||||||
new REntity(boatNpcServer, EntityType.VILLAGER, BoatRacePositions.NPC);
|
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.setInteractionHeight(1.95f);
|
||||||
interaction.setCallback((player, entity, action) -> {
|
interaction.setCallback((player, entity, action) -> {
|
||||||
Bukkit.getWorlds().get(0).getEntities().stream().filter(e -> e.getType() == EntityType.END_CRYSTAL).forEach(Entity::remove);
|
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;
|
oneNotStarted = true;
|
||||||
new BoatRace(player);
|
new BoatRace(player);
|
||||||
}
|
}
|
||||||
@@ -153,10 +154,24 @@ public class BoatRace implements EventListener, Listener {
|
|||||||
oneNotStarted = false;
|
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) {
|
public BoatRace(Player player) {
|
||||||
this.player = player;
|
this.player = player;
|
||||||
boat = Bukkit.getWorlds().get(0).spawn(BoatRacePositions.START, Boat.class);
|
boat = Bukkit.getWorlds().get(0).spawn(BoatRacePositions.START, boatClasses[random.nextInt(boatClasses.length)]);
|
||||||
// boat.setBoatType(Boat.Type.values()[new Random().nextInt(Boat.Type.values().length)]);
|
|
||||||
boat.addPassenger(player);
|
boat.addPassenger(player);
|
||||||
bossBar = Bukkit.createBossBar("", BarColor.BLUE, BarStyle.SOLID);
|
bossBar = Bukkit.createBossBar("", BarColor.BLUE, BarStyle.SOLID);
|
||||||
task = Bukkit.getScheduler().runTaskTimer(LobbySystem.getInstance(), () -> {
|
task = Bukkit.getScheduler().runTaskTimer(LobbySystem.getInstance(), () -> {
|
||||||
|
|||||||
Reference in New Issue
Block a user