From 35dca97628683cde642b2f3d7ee0b9faa50f5750 Mon Sep 17 00:00:00 2001 From: Nico_ND1 Date: Fri, 2 Aug 2024 17:13:49 +0200 Subject: [PATCH] Fix last bugs --- .../dgr/map/object/impl/flight/Flight.java | 2 ++ .../dgr/map/object/impl/flight/FlightImpl.java | 5 +++++ .../map/object/impl/flight/FlightRadarImpl.java | 2 +- .../impl/flight/RealisticFlightRadar.java | 5 +++++ .../map/object/impl/marketing/MarketingGui.java | 17 +++++++++++++---- 5 files changed, 26 insertions(+), 5 deletions(-) diff --git a/src/main/java/space/chunks/gamecup/dgr/map/object/impl/flight/Flight.java b/src/main/java/space/chunks/gamecup/dgr/map/object/impl/flight/Flight.java index 6830c26..e12347c 100644 --- a/src/main/java/space/chunks/gamecup/dgr/map/object/impl/flight/Flight.java +++ b/src/main/java/space/chunks/gamecup/dgr/map/object/impl/flight/Flight.java @@ -34,4 +34,6 @@ public interface Flight { @Nullable Boolean isBoarding(); + + boolean isValid(); } diff --git a/src/main/java/space/chunks/gamecup/dgr/map/object/impl/flight/FlightImpl.java b/src/main/java/space/chunks/gamecup/dgr/map/object/impl/flight/FlightImpl.java index 747e084..4928653 100644 --- a/src/main/java/space/chunks/gamecup/dgr/map/object/impl/flight/FlightImpl.java +++ b/src/main/java/space/chunks/gamecup/dgr/map/object/impl/flight/FlightImpl.java @@ -94,4 +94,9 @@ public double progress() { public Boolean isBoarding() { return null; } + + @Override + public boolean isValid() { + return true; + } } diff --git a/src/main/java/space/chunks/gamecup/dgr/map/object/impl/flight/FlightRadarImpl.java b/src/main/java/space/chunks/gamecup/dgr/map/object/impl/flight/FlightRadarImpl.java index 8934e1c..0e16b7e 100644 --- a/src/main/java/space/chunks/gamecup/dgr/map/object/impl/flight/FlightRadarImpl.java +++ b/src/main/java/space/chunks/gamecup/dgr/map/object/impl/flight/FlightRadarImpl.java @@ -107,7 +107,7 @@ public void forceCreate(@NotNull Destination destination) { } protected void tickFlightDeletor(int currentTick) { - this.flights.removeIf(flight -> flight.targetFinishTick() == currentTick); + this.flights.removeIf(flight -> !flight.isValid() || flight.targetFinishTick() == currentTick); } protected void tickFlightCreator(int currentTick) { diff --git a/src/main/java/space/chunks/gamecup/dgr/map/object/impl/flight/RealisticFlightRadar.java b/src/main/java/space/chunks/gamecup/dgr/map/object/impl/flight/RealisticFlightRadar.java index ef7967b..6675382 100644 --- a/src/main/java/space/chunks/gamecup/dgr/map/object/impl/flight/RealisticFlightRadar.java +++ b/src/main/java/space/chunks/gamecup/dgr/map/object/impl/flight/RealisticFlightRadar.java @@ -130,5 +130,10 @@ public double progress() { } return null; } + + @Override + public boolean isValid() { + return this.passengers.stream().filter(Passenger::isValid).count() > 0; + } } } diff --git a/src/main/java/space/chunks/gamecup/dgr/map/object/impl/marketing/MarketingGui.java b/src/main/java/space/chunks/gamecup/dgr/map/object/impl/marketing/MarketingGui.java index 5d3b249..343e72f 100644 --- a/src/main/java/space/chunks/gamecup/dgr/map/object/impl/marketing/MarketingGui.java +++ b/src/main/java/space/chunks/gamecup/dgr/map/object/impl/marketing/MarketingGui.java @@ -20,6 +20,7 @@ import space.chunks.gamecup.dgr.map.object.upgradable.UpgradeHolderRegistry; import space.chunks.gamecup.dgr.minestom.inventory.Item; import space.chunks.gamecup.dgr.minestom.inventory.SinglePageGui; +import space.chunks.gamecup.dgr.team.Team; import java.util.ArrayList; import java.util.List; @@ -68,11 +69,19 @@ private void drawItem(int slot, @NotNull Material iconType, @NotNull String key, .withLore(lore) .withoutExtraTooltip()) .addAllClickListener(event -> { - boolean upgrade = holder.upgrade(); - if (upgrade) { - event.getPlayer().playSound(Sound.sound(Key.key("entity.player.levelup"), Source.AMBIENT, 1F, 1F), this.config.spawnPosition()); + Team team = this.map.owner(); + if (team.money() >= getCost(currentLevel+1)) { + boolean upgrade = holder.upgrade(); + + if (upgrade) { + team.forceRemoveMoney(getCost(currentLevel+1)); + event.getPlayer().playSound(Sound.sound(Key.key("entity.player.levelup"), Source.AMBIENT, 1F, 1F), this.config.spawnPosition()); + } + + redraw(); + } else { + event.getPlayer().sendMessage(Component.text("Not enough money!").color(NamedTextColor.RED)); } - redraw(); })); }