mirror of
https://github.com/TotalFreedomMC/TF-WorldGuardExtraFlagsPlugin.git
synced 2024-06-03 10:21:19 +00:00
7d12cdb0e1
This fixes the error given when using unsupported version of WG and gives message saying that you are using unsupported version of WG instead
65 lines
1.9 KiB
Java
65 lines
1.9 KiB
Java
package net.goldtreeservers.worldguardextraflags.wg.handlers;
|
|
|
|
import java.util.Set;
|
|
|
|
import org.bukkit.Location;
|
|
import org.bukkit.entity.Player;
|
|
import org.bukkit.metadata.FixedMetadataValue;
|
|
import org.bukkit.plugin.Plugin;
|
|
|
|
import com.sk89q.worldguard.protection.ApplicableRegionSet;
|
|
import com.sk89q.worldguard.protection.regions.ProtectedRegion;
|
|
import com.sk89q.worldguard.session.MoveType;
|
|
import com.sk89q.worldguard.session.Session;
|
|
|
|
import net.goldtreeservers.worldguardextraflags.flags.Flags;
|
|
import net.goldtreeservers.worldguardextraflags.we.WorldEditUtils;
|
|
import net.goldtreeservers.worldguardextraflags.wg.WorldGuardUtils;
|
|
import net.goldtreeservers.worldguardextraflags.wg.wrappers.HandlerWrapper;
|
|
|
|
public class TeleportOnExitFlagHandler extends HandlerWrapper
|
|
{
|
|
public static final Factory FACTORY(Plugin plugin)
|
|
{
|
|
return new Factory(plugin);
|
|
}
|
|
|
|
public static class Factory extends HandlerWrapper.Factory<TeleportOnExitFlagHandler>
|
|
{
|
|
public Factory(Plugin plugin)
|
|
{
|
|
super(plugin);
|
|
}
|
|
|
|
@Override
|
|
public TeleportOnExitFlagHandler create(Session session)
|
|
{
|
|
return new TeleportOnExitFlagHandler(this.getPlugin(), session);
|
|
}
|
|
}
|
|
|
|
protected TeleportOnExitFlagHandler(Plugin plugin, Session session)
|
|
{
|
|
super(plugin, session);
|
|
}
|
|
|
|
@Override
|
|
public boolean onCrossBoundary(Player player, Location from, Location to, ApplicableRegionSet toSet, Set<ProtectedRegion> entered, Set<ProtectedRegion> exited, MoveType moveType)
|
|
{
|
|
if (!player.hasMetadata(WorldGuardUtils.PREVENT_TELEPORT_LOOP_META))
|
|
{
|
|
Object location = WorldGuardUtils.queryValueUnchecked(player, to.getWorld(), exited, Flags.TELEPORT_ON_EXIT);
|
|
if (location != null)
|
|
{
|
|
player.setMetadata(WorldGuardUtils.PREVENT_TELEPORT_LOOP_META, new FixedMetadataValue(this.getPlugin(), true));
|
|
|
|
player.teleport(WorldEditUtils.toLocation(location));
|
|
|
|
return false;
|
|
}
|
|
}
|
|
|
|
return true;
|
|
}
|
|
}
|