de59059

AKL City ยท akl-city.git

Branches > main > de59059 > files

Clean up Minecarts.java

Grahp, 2026-05-24

Commit: de59059babb0f64a3d844549515d45587756fd72
Parent: 09ec71f

1 changed file:

src/main/java/dev/grahp/aklcity/Minecarts.java modified (view file)

@@ -2,96 +2,52 @@  import static dev.grahp.aklcity.PlayerUtils.isHoldingFist; -import org.bukkit.event.Listener;-import org.bukkit.event.EventHandler;-import org.bukkit.Material;-import org.bukkit.Location;+import org.bukkit.*;+import org.bukkit.event.*;+import org.bukkit.event.vehicle.*;+import org.bukkit.event.player.PlayerInteractEvent;+import org.bukkit.event.block.Action; import org.bukkit.block.Block;-import org.bukkit.entity.Minecart;-import org.bukkit.entity.Vehicle;-import org.bukkit.entity.Player;-import org.bukkit.event.vehicle.VehicleMoveEvent;-import org.bukkit.util.Vector;-import org.bukkit.Bukkit; import org.bukkit.block.data.Powerable;-import java.util.HashSet;-import java.util.Set;-import java.util.UUID;-import java.util.Map;-import java.util.HashMap;+import org.bukkit.entity.*;+import org.bukkit.util.Vector; import org.bukkit.scheduler.BukkitTask; +import java.util.*;+ import net.kyori.adventure.text.Component; -import org.bukkit.World;--import org.bukkit.event.vehicle.VehicleExitEvent;-import org.bukkit.event.vehicle.VehicleEnterEvent;--import org.bukkit.event.player.PlayerInteractEvent;-import org.bukkit.event.block.Action;  // TODO: // - Stops mobs from pathfinding onto rails? Or... Just kill them when they do smiemsie, keep momentum+// Somehow tell whether the player is going the wrong way?  public class Minecarts implements Listener {+  private static final Material stopperRailMaterial = Material.DETECTOR_RAIL;+  private static final long timeToWaitForMinecartsToBeKilledAfterBeingDismounted = 5L;+  private static final double minecartVelocityThreshold = 0.001;+  private static final long ticksToStopAtStops = 20L;+  private static final long extraTicksToDismountAfterDeparting = 10L; -  // Returns a safe place to dismount the player if there is one, or just the normal position a player would dismount a minecart from.-  private Location findSafeDismount(Minecart cart) {-    Location base = cart.getLocation();-    World world = base.getWorld();--    // for (int dx = -2; dx <= 2; dx++) {-    //   for (int dz = -2; dz <= 2; dz++) {-    //-    //     Location feet = base.clone().add(dx, 0, dz);-    //-    //     Block ground = feet.clone().subtract(0, 1, 0).getBlock();-    //     Block feetBlock = feet.getBlock();-    //     Block headBlock = feet.clone().add(0, 1, 0).getBlock();-    //-    //     boolean solidGround = ground.getType().isSolid();-    //     boolean clear = feetBlock.isPassable() && headBlock.isPassable();-    //     boolean notRail =-    // !feetBlock.getType().toString().endsWith("RAIL") &&-    // !ground.getType().toString().endsWith("RAIL");-    //-    //     if (solidGround && clear && notRail) {-    //       return feet.add(0.5, 0, 0.5);-    //     }-    //   }-    // }-    //-    // Bukkit.broadcastMessage("choosing default");-    return base;+  /// Returns whether a player is in a Minecart+  private boolean isPlayerInMinecart(Minecart cart) {+    return !cart.getPassengers().isEmpty() && cart.getPassengers().get(0) instanceof Player;   } -  private Player playerInMinecart(Minecart cart) {-    if (!cart.getPassengers().isEmpty() && cart.getPassengers().get(0) instanceof Player p) {-      return p;-    }-    return null;-  }-+  // TODO should find a safe point to dismount the player and tp them there   private void dismount(Minecart cart) {     cart.eject();-    // var p = playerInMinecart(cart);-    // if (p != null) {-    //   p.teleport(findSafeDismount(cart));-    // }

Show all 279 lines