Merge branch 'master' of https://git.knarcraft.net/EpicKnarvik97/Stargate
Some checks failed
EpicKnarvik97/Stargate/pipeline/head There was a failure building this commit
Some checks failed
EpicKnarvik97/Stargate/pipeline/head There was a failure building this commit
Conflicts: README.md pom.xml src/main/resources/plugin.yml
This commit is contained in:
commit
68bed24137
@ -45,18 +45,14 @@ import java.util.logging.Logger;
|
|||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
public class Stargate extends JavaPlugin {
|
public class Stargate extends JavaPlugin {
|
||||||
|
|
||||||
//Used for changing gate open/closed material.
|
|
||||||
private static final Queue<BlockChangeRequest> blockChangeRequestQueue = new LinkedList<>();
|
private static final Queue<BlockChangeRequest> blockChangeRequestQueue = new LinkedList<>();
|
||||||
private static final Queue<ChunkUnloadRequest> chunkUnloadQueue = new PriorityQueue<>();
|
private static final Queue<ChunkUnloadRequest> chunkUnloadQueue = new PriorityQueue<>();
|
||||||
|
|
||||||
private static Logger logger;
|
private static Logger logger;
|
||||||
private static Stargate stargate;
|
private static Stargate stargate;
|
||||||
|
|
||||||
private static String pluginVersion;
|
private static String pluginVersion;
|
||||||
|
|
||||||
private static PluginManager pluginManager;
|
private static PluginManager pluginManager;
|
||||||
private static StargateConfig stargateConfig;
|
private static StargateConfig stargateConfig;
|
||||||
|
|
||||||
private static String updateAvailable = null;
|
private static String updateAvailable = null;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -430,4 +426,5 @@ public class Stargate extends JavaPlugin {
|
|||||||
public static StargateConfig getStargateConfig() {
|
public static StargateConfig getStargateConfig() {
|
||||||
return stargateConfig;
|
return stargateConfig;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -35,4 +35,5 @@ public class CommandStarGate implements CommandExecutor {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -217,22 +217,10 @@ public class ConfigTabCompleter implements TabCompleter {
|
|||||||
*/
|
*/
|
||||||
private List<ChatColor> getChatColors() {
|
private List<ChatColor> getChatColors() {
|
||||||
List<ChatColor> chatColors = new ArrayList<>();
|
List<ChatColor> chatColors = new ArrayList<>();
|
||||||
chatColors.add(ChatColor.WHITE);
|
char[] colors = new char[]{'a', 'b', 'c', 'd', 'e', 'f', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'};
|
||||||
chatColors.add(ChatColor.BLUE);
|
for (char color : colors) {
|
||||||
chatColors.add(ChatColor.DARK_BLUE);
|
chatColors.add(ChatColor.getByChar(color));
|
||||||
chatColors.add(ChatColor.DARK_PURPLE);
|
}
|
||||||
chatColors.add(ChatColor.LIGHT_PURPLE);
|
|
||||||
chatColors.add(ChatColor.GOLD);
|
|
||||||
chatColors.add(ChatColor.GREEN);
|
|
||||||
chatColors.add(ChatColor.BLACK);
|
|
||||||
chatColors.add(ChatColor.DARK_GREEN);
|
|
||||||
chatColors.add(ChatColor.DARK_RED);
|
|
||||||
chatColors.add(ChatColor.RED);
|
|
||||||
chatColors.add(ChatColor.AQUA);
|
|
||||||
chatColors.add(ChatColor.DARK_AQUA);
|
|
||||||
chatColors.add(ChatColor.DARK_GRAY);
|
|
||||||
chatColors.add(ChatColor.GRAY);
|
|
||||||
chatColors.add(ChatColor.YELLOW);
|
|
||||||
chatColors.add(ChatColor.of("#ed76d9"));
|
chatColors.add(ChatColor.of("#ed76d9"));
|
||||||
chatColors.add(ChatColor.of("#ffecb7"));
|
chatColors.add(ChatColor.of("#ffecb7"));
|
||||||
return chatColors;
|
return chatColors;
|
||||||
|
@ -117,7 +117,7 @@ public enum ConfigOption {
|
|||||||
*/
|
*/
|
||||||
WAIT_FOR_PLAYER_AFTER_TELEPORT_DELAY("advanced.waitForPlayerAfterTeleportDelay",
|
WAIT_FOR_PLAYER_AFTER_TELEPORT_DELAY("advanced.waitForPlayerAfterTeleportDelay",
|
||||||
"The amount of ticks to wait before adding a player as passenger of a vehicle. On slow servers, " +
|
"The amount of ticks to wait before adding a player as passenger of a vehicle. On slow servers, " +
|
||||||
"a value of 6 is required to avoid client glitches after teleporting on a vehicle.", 1),
|
"a value of 6 is required to avoid client glitches after teleporting on a vehicle.", 6),
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Whether to enable economy support for taking payment from players creating/destroying/using stargates
|
* Whether to enable economy support for taking payment from players creating/destroying/using stargates
|
||||||
|
@ -520,4 +520,5 @@ public final class StargateConfig {
|
|||||||
public LanguageLoader getLanguageLoader() {
|
public LanguageLoader getLanguageLoader() {
|
||||||
return languageLoader;
|
return languageLoader;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -16,6 +16,7 @@ import java.util.Map;
|
|||||||
* The Stargate gate config keeps track of all global config values related to gates
|
* The Stargate gate config keeps track of all global config values related to gates
|
||||||
*/
|
*/
|
||||||
public final class StargateGateConfig {
|
public final class StargateGateConfig {
|
||||||
|
|
||||||
private static final int activeTime = 10;
|
private static final int activeTime = 10;
|
||||||
private static final int openTime = 10;
|
private static final int openTime = 10;
|
||||||
private final Map<ConfigOption, Object> configOptions;
|
private final Map<ConfigOption, Object> configOptions;
|
||||||
@ -142,6 +143,9 @@ public final class StargateGateConfig {
|
|||||||
* @return <p>The delay to use before adding a player as passenger of a teleported vehicle</p>
|
* @return <p>The delay to use before adding a player as passenger of a teleported vehicle</p>
|
||||||
*/
|
*/
|
||||||
public int waitForPlayerAfterTeleportDelay() {
|
public int waitForPlayerAfterTeleportDelay() {
|
||||||
|
if ((int) configOptions.get(ConfigOption.WAIT_FOR_PLAYER_AFTER_TELEPORT_DELAY) < 2) {
|
||||||
|
configOptions.put(ConfigOption.WAIT_FOR_PLAYER_AFTER_TELEPORT_DELAY, 6);
|
||||||
|
}
|
||||||
return (int) configOptions.get(ConfigOption.WAIT_FOR_PLAYER_AFTER_TELEPORT_DELAY);
|
return (int) configOptions.get(ConfigOption.WAIT_FOR_PLAYER_AFTER_TELEPORT_DELAY);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -320,4 +324,5 @@ public final class StargateGateConfig {
|
|||||||
PortalSignDrawer.setHighlightColor(ChatColor.WHITE);
|
PortalSignDrawer.setHighlightColor(ChatColor.WHITE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -58,16 +58,11 @@ public class RelativeBlockVector {
|
|||||||
* @return <p>A new relative block vector with the property altered</p>
|
* @return <p>A new relative block vector with the property altered</p>
|
||||||
*/
|
*/
|
||||||
public RelativeBlockVector addToVector(Property propertyToAddTo, int valueToAdd) {
|
public RelativeBlockVector addToVector(Property propertyToAddTo, int valueToAdd) {
|
||||||
switch (propertyToAddTo) {
|
return switch (propertyToAddTo) {
|
||||||
case RIGHT:
|
case RIGHT -> new RelativeBlockVector(this.right + valueToAdd, this.down, this.out);
|
||||||
return new RelativeBlockVector(this.right + valueToAdd, this.down, this.out);
|
case DOWN -> new RelativeBlockVector(this.right, this.down + valueToAdd, this.out);
|
||||||
case DOWN:
|
case OUT -> new RelativeBlockVector(this.right, this.down, this.out + valueToAdd);
|
||||||
return new RelativeBlockVector(this.right, this.down + valueToAdd, this.out);
|
};
|
||||||
case OUT:
|
|
||||||
return new RelativeBlockVector(this.right, this.down, this.out + valueToAdd);
|
|
||||||
default:
|
|
||||||
throw new IllegalArgumentException("Invalid relative block vector property given");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -33,6 +33,7 @@ import org.bukkit.event.player.PlayerJoinEvent;
|
|||||||
import org.bukkit.event.player.PlayerMoveEvent;
|
import org.bukkit.event.player.PlayerMoveEvent;
|
||||||
import org.bukkit.inventory.EquipmentSlot;
|
import org.bukkit.inventory.EquipmentSlot;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
import org.bukkit.util.Vector;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@ -131,6 +132,7 @@ public class PlayerEventListener implements Listener {
|
|||||||
horse.setOwner(player);
|
horse.setOwner(player);
|
||||||
}
|
}
|
||||||
//Teleport the player's vehicle
|
//Teleport the player's vehicle
|
||||||
|
player.setVelocity(new Vector());
|
||||||
new VehicleTeleporter(destination, (Vehicle) playerVehicle).teleportEntity(entrancePortal);
|
new VehicleTeleporter(destination, (Vehicle) playerVehicle).teleportEntity(entrancePortal);
|
||||||
} else {
|
} else {
|
||||||
//Just teleport the player like normal
|
//Just teleport the player like normal
|
||||||
|
@ -49,4 +49,5 @@ public class PluginEventListener implements Listener {
|
|||||||
Stargate.logInfo("Vault plugin lost.");
|
Stargate.logInfo("Vault plugin lost.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -46,4 +46,5 @@ public class WorldEventListener implements Listener {
|
|||||||
PortalRegistry.clearPortals(world);
|
PortalRegistry.clearPortals(world);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -345,4 +345,5 @@ public class Portal {
|
|||||||
return cleanNetwork.equalsIgnoreCase(other.cleanNetwork);
|
return cleanNetwork.equalsIgnoreCase(other.cleanNetwork);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -448,4 +448,5 @@ public class PortalHandler {
|
|||||||
}
|
}
|
||||||
return input.replaceAll("[|:#]", "").trim();
|
return input.replaceAll("[|:#]", "").trim();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -49,6 +49,10 @@ public class PlayerTeleporter extends Teleporter {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Calculate the exit velocity of the player
|
||||||
|
Vector newVelocityDirection = DirectionHelper.getDirectionVectorFromYaw(portal.getYaw());
|
||||||
|
Vector newVelocity = newVelocityDirection.multiply(velocity * Stargate.getGateConfig().getExitVelocity());
|
||||||
|
|
||||||
//Load chunks to make sure not to teleport to the void
|
//Load chunks to make sure not to teleport to the void
|
||||||
loadChunks();
|
loadChunks();
|
||||||
|
|
||||||
@ -56,7 +60,7 @@ public class PlayerTeleporter extends Teleporter {
|
|||||||
TeleportHelper.teleportLeashedCreatures(player, origin, portal);
|
TeleportHelper.teleportLeashedCreatures(player, origin, portal);
|
||||||
|
|
||||||
if (player.eject()) {
|
if (player.eject()) {
|
||||||
TeleportHelper.handleEntityPassengers(passengers, player, origin, portal, exit.getDirection());
|
TeleportHelper.handleEntityPassengers(passengers, player, origin, portal, exit.getDirection(), newVelocity);
|
||||||
}
|
}
|
||||||
|
|
||||||
//If no event is passed in, assume it's a teleport, and act as such
|
//If no event is passed in, assume it's a teleport, and act as such
|
||||||
@ -68,11 +72,7 @@ public class PlayerTeleporter extends Teleporter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Set the velocity of the teleported player after the teleportation is finished
|
//Set the velocity of the teleported player after the teleportation is finished
|
||||||
Bukkit.getScheduler().scheduleSyncDelayedTask(Stargate.getInstance(), () -> {
|
Bukkit.getScheduler().scheduleSyncDelayedTask(Stargate.getInstance(), () -> player.setVelocity(newVelocity), 1);
|
||||||
Vector newVelocityDirection = DirectionHelper.getDirectionVectorFromYaw(portal.getYaw());
|
|
||||||
Vector newVelocity = newVelocityDirection.multiply(velocity * Stargate.getGateConfig().getExitVelocity());
|
|
||||||
player.setVelocity(newVelocity);
|
|
||||||
}, 1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -19,6 +19,7 @@ import org.bukkit.entity.AbstractHorse;
|
|||||||
import org.bukkit.entity.Entity;
|
import org.bukkit.entity.Entity;
|
||||||
import org.bukkit.event.Event;
|
import org.bukkit.event.Event;
|
||||||
import org.bukkit.scheduler.BukkitScheduler;
|
import org.bukkit.scheduler.BukkitScheduler;
|
||||||
|
import org.bukkit.util.Vector;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -83,7 +84,8 @@ public abstract class Teleporter {
|
|||||||
loadChunks();
|
loadChunks();
|
||||||
|
|
||||||
if (teleportedEntity.eject()) {
|
if (teleportedEntity.eject()) {
|
||||||
TeleportHelper.handleEntityPassengers(passengers, teleportedEntity, origin, portal, exit.getDirection());
|
TeleportHelper.handleEntityPassengers(passengers, teleportedEntity, origin, portal, exit.getDirection(),
|
||||||
|
new Vector());
|
||||||
}
|
}
|
||||||
teleportedEntity.teleport(exit);
|
teleportedEntity.teleport(exit);
|
||||||
return true;
|
return true;
|
||||||
|
@ -12,6 +12,7 @@ import org.bukkit.entity.Boat;
|
|||||||
import org.bukkit.entity.Entity;
|
import org.bukkit.entity.Entity;
|
||||||
import org.bukkit.entity.LivingEntity;
|
import org.bukkit.entity.LivingEntity;
|
||||||
import org.bukkit.entity.Vehicle;
|
import org.bukkit.entity.Vehicle;
|
||||||
|
import org.bukkit.event.player.PlayerTeleportEvent;
|
||||||
import org.bukkit.util.Vector;
|
import org.bukkit.util.Vector;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -57,7 +58,10 @@ public class VehicleTeleporter extends EntityTeleporter {
|
|||||||
Vector newVelocity = newVelocityDirection.multiply(velocity);
|
Vector newVelocity = newVelocityDirection.multiply(velocity);
|
||||||
|
|
||||||
//Call the StargateEntityPortalEvent to allow plugins to change destination
|
//Call the StargateEntityPortalEvent to allow plugins to change destination
|
||||||
triggerPortalEvent(origin, new StargateEntityPortalEvent(teleportingVehicle, origin, portal, exit));
|
exit = triggerPortalEvent(origin, new StargateEntityPortalEvent(teleportingVehicle, origin, portal, exit));
|
||||||
|
if (exit == null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
//Teleport the vehicle
|
//Teleport the vehicle
|
||||||
return teleportVehicle(exit, newVelocity, origin);
|
return teleportVehicle(exit, newVelocity, origin);
|
||||||
@ -129,11 +133,18 @@ public class VehicleTeleporter extends EntityTeleporter {
|
|||||||
*/
|
*/
|
||||||
private void teleportVehicle(List<Entity> passengers, Location exit, Vector newVelocity, Portal origin) {
|
private void teleportVehicle(List<Entity> passengers, Location exit, Vector newVelocity, Portal origin) {
|
||||||
if (teleportingVehicle.eject()) {
|
if (teleportingVehicle.eject()) {
|
||||||
TeleportHelper.handleEntityPassengers(passengers, teleportingVehicle, origin, portal, exit.getDirection());
|
TeleportHelper.handleEntityPassengers(passengers, teleportingVehicle, origin, portal, exit.getDirection(),
|
||||||
|
newVelocity);
|
||||||
}
|
}
|
||||||
teleportingVehicle.teleport(exit);
|
Stargate.debug("VehicleTeleporter::teleportVehicle", "Teleporting " + teleportingVehicle +
|
||||||
|
" to final location " + exit + " with direction " + exit.getDirection());
|
||||||
|
teleportingVehicle.teleport(exit, PlayerTeleportEvent.TeleportCause.PLUGIN);
|
||||||
scheduler.scheduleSyncDelayedTask(Stargate.getInstance(),
|
scheduler.scheduleSyncDelayedTask(Stargate.getInstance(),
|
||||||
() -> teleportingVehicle.setVelocity(newVelocity), 1);
|
() -> {
|
||||||
|
Stargate.debug("VehicleTeleporter::teleportVehicle", "Setting velocity " + newVelocity +
|
||||||
|
" for vehicle " + teleportingVehicle);
|
||||||
|
teleportingVehicle.setVelocity(newVelocity);
|
||||||
|
}, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -162,7 +173,8 @@ public class VehicleTeleporter extends EntityTeleporter {
|
|||||||
}
|
}
|
||||||
//Remove the old vehicle
|
//Remove the old vehicle
|
||||||
if (teleportingVehicle.eject()) {
|
if (teleportingVehicle.eject()) {
|
||||||
TeleportHelper.handleEntityPassengers(passengers, newVehicle, origin, portal, exit.getDirection());
|
TeleportHelper.handleEntityPassengers(passengers, newVehicle, origin, portal, exit.getDirection(),
|
||||||
|
newVelocity);
|
||||||
}
|
}
|
||||||
teleportingVehicle.remove();
|
teleportingVehicle.remove();
|
||||||
scheduler.scheduleSyncDelayedTask(Stargate.getInstance(), () -> newVehicle.setVelocity(newVelocity), 1);
|
scheduler.scheduleSyncDelayedTask(Stargate.getInstance(), () -> newVehicle.setVelocity(newVelocity), 1);
|
||||||
|
@ -4,6 +4,7 @@ import net.knarcraft.stargate.Stargate;
|
|||||||
import net.knarcraft.stargate.portal.Portal;
|
import net.knarcraft.stargate.portal.Portal;
|
||||||
import net.knarcraft.stargate.portal.teleporter.EntityTeleporter;
|
import net.knarcraft.stargate.portal.teleporter.EntityTeleporter;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.Location;
|
||||||
import org.bukkit.entity.Creature;
|
import org.bukkit.entity.Creature;
|
||||||
import org.bukkit.entity.Entity;
|
import org.bukkit.entity.Entity;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
@ -78,14 +79,28 @@ public final class TeleportHelper {
|
|||||||
* @param targetVehicle <p>The entity to add the passenger to</p>
|
* @param targetVehicle <p>The entity to add the passenger to</p>
|
||||||
* @param passenger <p>The passenger to teleport and add</p>
|
* @param passenger <p>The passenger to teleport and add</p>
|
||||||
* @param exitDirection <p>The direction of any passengers exiting the stargate</p>
|
* @param exitDirection <p>The direction of any passengers exiting the stargate</p>
|
||||||
|
* @param newVelocity <p>The new velocity of the teleported passenger</p>
|
||||||
*/
|
*/
|
||||||
public static void teleportAndAddPassenger(Entity targetVehicle, Entity passenger, Vector exitDirection) {
|
public static void teleportAndAddPassenger(Entity targetVehicle, Entity passenger, Vector exitDirection,
|
||||||
if (!passenger.teleport(targetVehicle.getLocation().clone().setDirection(exitDirection))) {
|
Vector newVelocity) {
|
||||||
Stargate.debug("handleVehiclePassengers", "Failed to teleport passenger" + passenger);
|
Location passengerExit = targetVehicle.getLocation().clone().setDirection(exitDirection);
|
||||||
|
if (!passenger.teleport(passengerExit)) {
|
||||||
|
Stargate.debug("TeleportHelper::handleVehiclePassengers", "Failed to teleport passenger" +
|
||||||
|
passenger);
|
||||||
|
} else {
|
||||||
|
Stargate.debug("TeleportHelper::handleVehiclePassengers", "Teleported " + passenger +
|
||||||
|
" to " + passengerExit);
|
||||||
}
|
}
|
||||||
if (!targetVehicle.addPassenger(passenger)) {
|
if (!targetVehicle.addPassenger(passenger)) {
|
||||||
Stargate.debug("handleVehiclePassengers", "Failed to add passenger" + passenger);
|
Stargate.debug("TeleportHelper::handleVehiclePassengers", "Failed to add passenger" +
|
||||||
|
passenger);
|
||||||
|
} else {
|
||||||
|
Stargate.debug("TeleportHelper::handleVehiclePassengers", "Added passenger " + passenger +
|
||||||
|
" to " + targetVehicle);
|
||||||
}
|
}
|
||||||
|
Stargate.debug("VehicleTeleporter::teleportVehicle", "Setting velocity " + newVelocity +
|
||||||
|
" for passenger " + passenger);
|
||||||
|
passenger.setVelocity(newVelocity);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -96,9 +111,10 @@ public final class TeleportHelper {
|
|||||||
* @param origin <p>The portal the entity teleported from</p>
|
* @param origin <p>The portal the entity teleported from</p>
|
||||||
* @param target <p>The portal the entity is teleporting to</p>
|
* @param target <p>The portal the entity is teleporting to</p>
|
||||||
* @param exitRotation <p>The rotation of any passengers exiting the stargate</p>
|
* @param exitRotation <p>The rotation of any passengers exiting the stargate</p>
|
||||||
|
* @param newVelocity <p>The new velocity of the teleported passengers</p>
|
||||||
*/
|
*/
|
||||||
public static void handleEntityPassengers(List<Entity> passengers, Entity entity, Portal origin, Portal target,
|
public static void handleEntityPassengers(List<Entity> passengers, Entity entity, Portal origin, Portal target,
|
||||||
Vector exitRotation) {
|
Vector exitRotation, Vector newVelocity) {
|
||||||
for (Entity passenger : passengers) {
|
for (Entity passenger : passengers) {
|
||||||
List<Entity> passengerPassengers = passenger.getPassengers();
|
List<Entity> passengerPassengers = passenger.getPassengers();
|
||||||
if (!passengerPassengers.isEmpty()) {
|
if (!passengerPassengers.isEmpty()) {
|
||||||
@ -107,14 +123,14 @@ public final class TeleportHelper {
|
|||||||
}
|
}
|
||||||
if (passenger.eject()) {
|
if (passenger.eject()) {
|
||||||
//Teleport any passengers of the passenger
|
//Teleport any passengers of the passenger
|
||||||
handleEntityPassengers(passengerPassengers, passenger, origin, target, exitRotation);
|
handleEntityPassengers(passengerPassengers, passenger, origin, target, exitRotation, newVelocity);
|
||||||
}
|
}
|
||||||
Bukkit.getScheduler().scheduleSyncDelayedTask(Stargate.getInstance(), () -> {
|
Bukkit.getScheduler().scheduleSyncDelayedTask(Stargate.getInstance(), () -> {
|
||||||
if (passenger instanceof Player player) {
|
if (passenger instanceof Player player) {
|
||||||
//Teleport any creatures leashed by the player in a 15-block range
|
//Teleport any creatures leashed by the player in a 15-block range
|
||||||
teleportLeashedCreatures(player, origin, target);
|
teleportLeashedCreatures(player, origin, target);
|
||||||
}
|
}
|
||||||
TeleportHelper.teleportAndAddPassenger(entity, passenger, exitRotation);
|
teleportAndAddPassenger(entity, passenger, exitRotation, newVelocity);
|
||||||
}, passenger instanceof Player ? Stargate.getGateConfig().waitForPlayerAfterTeleportDelay() : 0);
|
}, passenger instanceof Player ? Stargate.getGateConfig().waitForPlayerAfterTeleportDelay() : 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user