mirror of
https://github.com/EssentialsX/Essentials.git
synced 2024-12-26 02:58:03 +01:00
Turn Target into a real class.
This commit is contained in:
parent
7276bcccab
commit
ac6b74887f
10
Essentials/src/com/earth2me/essentials/ITarget.java
Normal file
10
Essentials/src/com/earth2me/essentials/ITarget.java
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
package com.earth2me.essentials;
|
||||||
|
|
||||||
|
import org.bukkit.Location;
|
||||||
|
import org.bukkit.Server;
|
||||||
|
|
||||||
|
|
||||||
|
public interface ITarget
|
||||||
|
{
|
||||||
|
public Location getLocation();
|
||||||
|
}
|
28
Essentials/src/com/earth2me/essentials/LocationTarget.java
Normal file
28
Essentials/src/com/earth2me/essentials/LocationTarget.java
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
package com.earth2me.essentials;
|
||||||
|
|
||||||
|
import org.bukkit.Location;
|
||||||
|
import org.bukkit.Server;
|
||||||
|
|
||||||
|
|
||||||
|
public class LocationTarget implements ITarget
|
||||||
|
{
|
||||||
|
private final Location location;
|
||||||
|
private final String name;
|
||||||
|
|
||||||
|
LocationTarget(Location location)
|
||||||
|
{
|
||||||
|
this.location = location;
|
||||||
|
this.name = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Location getLocation(Server server)
|
||||||
|
{
|
||||||
|
if (this.name != null)
|
||||||
|
{
|
||||||
|
|
||||||
|
return server.getPlayerExact(name).getLocation();
|
||||||
|
}
|
||||||
|
return location;
|
||||||
|
}
|
||||||
|
}
|
28
Essentials/src/com/earth2me/essentials/PlayerTarget.java
Normal file
28
Essentials/src/com/earth2me/essentials/PlayerTarget.java
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
package com.earth2me.essentials;
|
||||||
|
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.Location;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
|
||||||
|
public class PlayerTarget implements ITarget
|
||||||
|
{
|
||||||
|
private final Location location;
|
||||||
|
private final String name;
|
||||||
|
|
||||||
|
PlayerTarget(Player entity)
|
||||||
|
{
|
||||||
|
this.name = entity.getName();
|
||||||
|
this.location = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Location getLocation()
|
||||||
|
{
|
||||||
|
if (this.name != null)
|
||||||
|
{
|
||||||
|
return Bukkit.getServer().getPlayerExact(name).getLocation();
|
||||||
|
}
|
||||||
|
return location;
|
||||||
|
}
|
||||||
|
}
|
@ -12,33 +12,6 @@ import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
|
|||||||
|
|
||||||
public class Teleport implements ITeleport
|
public class Teleport implements ITeleport
|
||||||
{
|
{
|
||||||
public class Target
|
|
||||||
{
|
|
||||||
private final Location location;
|
|
||||||
private final String name;
|
|
||||||
|
|
||||||
Target(Location location)
|
|
||||||
{
|
|
||||||
this.location = location;
|
|
||||||
this.name = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
Target(Player entity)
|
|
||||||
{
|
|
||||||
this.name = entity.getName();
|
|
||||||
this.location = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Location getLocation()
|
|
||||||
{
|
|
||||||
if (this.name != null)
|
|
||||||
{
|
|
||||||
|
|
||||||
return ess.getServer().getPlayerExact(name).getLocation();
|
|
||||||
}
|
|
||||||
return location;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
private final IUser teleportOwner;
|
private final IUser teleportOwner;
|
||||||
private final IEssentials ess;
|
private final IEssentials ess;
|
||||||
private TimedTeleport timedTeleport;
|
private TimedTeleport timedTeleport;
|
||||||
@ -103,7 +76,7 @@ public class Teleport implements ITeleport
|
|||||||
{
|
{
|
||||||
cooldown(false);
|
cooldown(false);
|
||||||
}
|
}
|
||||||
now(teleportOwner, new Target(loc), cause);
|
now(teleportOwner, new LocationTarget(loc), cause);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -113,10 +86,10 @@ public class Teleport implements ITeleport
|
|||||||
{
|
{
|
||||||
cooldown(false);
|
cooldown(false);
|
||||||
}
|
}
|
||||||
now(teleportOwner, new Target(entity), cause);
|
now(teleportOwner, new PlayerTarget(entity), cause);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void now(IUser teleportee, Target target, TeleportCause cause) throws Exception
|
protected void now(IUser teleportee, ITarget target, TeleportCause cause) throws Exception
|
||||||
{
|
{
|
||||||
cancel(false);
|
cancel(false);
|
||||||
teleportee.setLastLocation();
|
teleportee.setLastLocation();
|
||||||
@ -134,28 +107,28 @@ public class Teleport implements ITeleport
|
|||||||
@Override
|
@Override
|
||||||
public void teleport(Location loc, Trade chargeFor, TeleportCause cause) throws Exception
|
public void teleport(Location loc, Trade chargeFor, TeleportCause cause) throws Exception
|
||||||
{
|
{
|
||||||
teleport(teleportOwner, new Target(loc), chargeFor, cause);
|
teleport(teleportOwner, new LocationTarget(loc), chargeFor, cause);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void teleport(Player entity, Trade chargeFor, TeleportCause cause) throws Exception
|
public void teleport(Player entity, Trade chargeFor, TeleportCause cause) throws Exception
|
||||||
{
|
{
|
||||||
teleport(teleportOwner, new Target(entity), chargeFor, cause);
|
teleport(teleportOwner, new PlayerTarget(entity), chargeFor, cause);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void teleportPlayer(IUser teleportee, Location loc, Trade chargeFor, TeleportCause cause) throws Exception
|
public void teleportPlayer(IUser teleportee, Location loc, Trade chargeFor, TeleportCause cause) throws Exception
|
||||||
{
|
{
|
||||||
teleport(teleportee, new Target(loc), chargeFor, cause);
|
teleport(teleportee, new LocationTarget(loc), chargeFor, cause);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void teleportPlayer(IUser teleportee, Player entity, Trade chargeFor, TeleportCause cause) throws Exception
|
public void teleportPlayer(IUser teleportee, Player entity, Trade chargeFor, TeleportCause cause) throws Exception
|
||||||
{
|
{
|
||||||
teleport(teleportee, new Target(entity), chargeFor, cause);
|
teleport(teleportee, new PlayerTarget(entity), chargeFor, cause);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void teleport(IUser teleportee, Target target, Trade chargeFor, TeleportCause cause) throws Exception
|
private void teleport(IUser teleportee, ITarget target, Trade chargeFor, TeleportCause cause) throws Exception
|
||||||
{
|
{
|
||||||
double delay = ess.getSettings().getTeleportDelay();
|
double delay = ess.getSettings().getTeleportDelay();
|
||||||
|
|
||||||
@ -185,7 +158,7 @@ public class Teleport implements ITeleport
|
|||||||
@Override
|
@Override
|
||||||
public void teleportToMe(IUser otherUser, Trade chargeFor, TeleportCause cause) throws Exception
|
public void teleportToMe(IUser otherUser, Trade chargeFor, TeleportCause cause) throws Exception
|
||||||
{
|
{
|
||||||
Target target = new Target(teleportOwner);
|
ITarget target = new PlayerTarget(teleportOwner);
|
||||||
teleport(otherUser, target, chargeFor, cause);
|
teleport(otherUser, target, chargeFor, cause);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -221,7 +194,7 @@ public class Teleport implements ITeleport
|
|||||||
Location bed = player.getBedSpawnLocation();
|
Location bed = player.getBedSpawnLocation();
|
||||||
if (bed != null)
|
if (bed != null)
|
||||||
{
|
{
|
||||||
now(teleportee, new Target(bed), cause);
|
now(teleportee, new LocationTarget(bed), cause);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -231,7 +204,7 @@ public class Teleport implements ITeleport
|
|||||||
}
|
}
|
||||||
final PlayerRespawnEvent pre = new PlayerRespawnEvent(player, player.getWorld().getSpawnLocation(), false);
|
final PlayerRespawnEvent pre = new PlayerRespawnEvent(player, player.getWorld().getSpawnLocation(), false);
|
||||||
ess.getServer().getPluginManager().callEvent(pre);
|
ess.getServer().getPluginManager().callEvent(pre);
|
||||||
now(teleportee, new Target(pre.getRespawnLocation()), cause);
|
now(teleportee, new LocationTarget(pre.getRespawnLocation()), cause);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -241,28 +214,28 @@ public class Teleport implements ITeleport
|
|||||||
{
|
{
|
||||||
Location loc = ess.getWarps().getWarp(warp);
|
Location loc = ess.getWarps().getWarp(warp);
|
||||||
teleportee.sendMessage(_("warpingTo", warp));
|
teleportee.sendMessage(_("warpingTo", warp));
|
||||||
teleport(teleportee, new Target(loc), chargeFor, cause);
|
teleport(teleportee, new LocationTarget(loc), chargeFor, cause);
|
||||||
}
|
}
|
||||||
|
|
||||||
//The back function is a wrapper used to teleportPlayer a player /back to their previous location.
|
//The back function is a wrapper used to teleportPlayer a player /back to their previous location.
|
||||||
@Override
|
@Override
|
||||||
public void back(Trade chargeFor) throws Exception
|
public void back(Trade chargeFor) throws Exception
|
||||||
{
|
{
|
||||||
teleport(teleportOwner, new Target(teleportOwner.getLastLocation()), chargeFor, TeleportCause.COMMAND);
|
teleport(teleportOwner, new LocationTarget(teleportOwner.getLastLocation()), chargeFor, TeleportCause.COMMAND);
|
||||||
}
|
}
|
||||||
|
|
||||||
//This function is used to throw a user back after a jail sentence
|
//This function is used to throw a user back after a jail sentence
|
||||||
@Override
|
@Override
|
||||||
public void back() throws Exception
|
public void back() throws Exception
|
||||||
{
|
{
|
||||||
now(teleportOwner, new Target(teleportOwner.getLastLocation()), TeleportCause.COMMAND);
|
now(teleportOwner, new LocationTarget(teleportOwner.getLastLocation()), TeleportCause.COMMAND);
|
||||||
}
|
}
|
||||||
|
|
||||||
//This function handles teleporting to /home
|
//This function handles teleporting to /home
|
||||||
@Override
|
@Override
|
||||||
public void home(Location loc, Trade chargeFor) throws Exception
|
public void home(Location loc, Trade chargeFor) throws Exception
|
||||||
{
|
{
|
||||||
teleport(teleportOwner, new Target(loc), chargeFor, TeleportCause.COMMAND);
|
teleport(teleportOwner, new LocationTarget(loc), chargeFor, TeleportCause.COMMAND);
|
||||||
}
|
}
|
||||||
|
|
||||||
//If we need to cancelTimer a pending teleportPlayer call this method
|
//If we need to cancelTimer a pending teleportPlayer call this method
|
||||||
@ -275,7 +248,7 @@ public class Teleport implements ITeleport
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initTimer(long delay, IUser teleportUser, Target target, Trade chargeFor, TeleportCause cause, boolean respawn)
|
private void initTimer(long delay, IUser teleportUser, ITarget target, Trade chargeFor, TeleportCause cause, boolean respawn)
|
||||||
{
|
{
|
||||||
timedTeleport = new TimedTeleport(teleportOwner, ess, this, delay, teleportUser, target, chargeFor, cause, respawn);
|
timedTeleport = new TimedTeleport(teleportOwner, ess, this, delay, teleportUser, target, chargeFor, cause, respawn);
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
package com.earth2me.essentials;
|
package com.earth2me.essentials;
|
||||||
|
|
||||||
import static com.earth2me.essentials.I18n._;
|
import static com.earth2me.essentials.I18n._;
|
||||||
import com.earth2me.essentials.Teleport.Target;
|
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
|
import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
|
||||||
|
|
||||||
@ -23,14 +22,13 @@ public class TimedTeleport implements Runnable
|
|||||||
private long timer_initX;
|
private long timer_initX;
|
||||||
private long timer_initY;
|
private long timer_initY;
|
||||||
private long timer_initZ;
|
private long timer_initZ;
|
||||||
private Target timer_teleportTarget;
|
private ITarget timer_teleportTarget;
|
||||||
private boolean timer_respawn;
|
private boolean timer_respawn;
|
||||||
private boolean timer_canMove;
|
private boolean timer_canMove;
|
||||||
private Trade timer_chargeFor;
|
private Trade timer_chargeFor;
|
||||||
|
|
||||||
private TeleportCause timer_cause;
|
private TeleportCause timer_cause;
|
||||||
|
|
||||||
public TimedTeleport(IUser user, IEssentials ess, Teleport teleport, long delay, IUser teleportUser, Target target, Trade chargeFor, TeleportCause cause, boolean respawn)
|
public TimedTeleport(IUser user, IEssentials ess, Teleport teleport, long delay, IUser teleportUser, ITarget target, Trade chargeFor, TeleportCause cause, boolean respawn)
|
||||||
{
|
{
|
||||||
|
|
||||||
this.teleportOwner = user;
|
this.teleportOwner = user;
|
||||||
|
@ -234,48 +234,48 @@ public class Util
|
|||||||
return c.getTimeInMillis();
|
return c.getTimeInMillis();
|
||||||
}
|
}
|
||||||
// The player can stand inside these materials
|
// The player can stand inside these materials
|
||||||
private static final Set<Integer> UNSAFE_MATERIALS = new HashSet<Integer>();
|
private static final Set<Integer> HOLLOW_MATERIALS = new HashSet<Integer>();
|
||||||
private static final HashSet<Byte> TRANSPARENT_MATERIALS = new HashSet<Byte>();
|
private static final HashSet<Byte> TRANSPARENT_MATERIALS = new HashSet<Byte>();
|
||||||
|
|
||||||
static
|
static
|
||||||
{
|
{
|
||||||
UNSAFE_MATERIALS.add(Material.AIR.getId());
|
HOLLOW_MATERIALS.add(Material.AIR.getId());
|
||||||
UNSAFE_MATERIALS.add(Material.SAPLING.getId());
|
HOLLOW_MATERIALS.add(Material.SAPLING.getId());
|
||||||
UNSAFE_MATERIALS.add(Material.POWERED_RAIL.getId());
|
HOLLOW_MATERIALS.add(Material.POWERED_RAIL.getId());
|
||||||
UNSAFE_MATERIALS.add(Material.DETECTOR_RAIL.getId());
|
HOLLOW_MATERIALS.add(Material.DETECTOR_RAIL.getId());
|
||||||
UNSAFE_MATERIALS.add(Material.LONG_GRASS.getId());
|
HOLLOW_MATERIALS.add(Material.LONG_GRASS.getId());
|
||||||
UNSAFE_MATERIALS.add(Material.DEAD_BUSH.getId());
|
HOLLOW_MATERIALS.add(Material.DEAD_BUSH.getId());
|
||||||
UNSAFE_MATERIALS.add(Material.YELLOW_FLOWER.getId());
|
HOLLOW_MATERIALS.add(Material.YELLOW_FLOWER.getId());
|
||||||
UNSAFE_MATERIALS.add(Material.RED_ROSE.getId());
|
HOLLOW_MATERIALS.add(Material.RED_ROSE.getId());
|
||||||
UNSAFE_MATERIALS.add(Material.BROWN_MUSHROOM.getId());
|
HOLLOW_MATERIALS.add(Material.BROWN_MUSHROOM.getId());
|
||||||
UNSAFE_MATERIALS.add(Material.RED_MUSHROOM.getId());
|
HOLLOW_MATERIALS.add(Material.RED_MUSHROOM.getId());
|
||||||
UNSAFE_MATERIALS.add(Material.TORCH.getId());
|
HOLLOW_MATERIALS.add(Material.TORCH.getId());
|
||||||
UNSAFE_MATERIALS.add(Material.REDSTONE_WIRE.getId());
|
HOLLOW_MATERIALS.add(Material.REDSTONE_WIRE.getId());
|
||||||
UNSAFE_MATERIALS.add(Material.SEEDS.getId());
|
HOLLOW_MATERIALS.add(Material.SEEDS.getId());
|
||||||
UNSAFE_MATERIALS.add(Material.SIGN_POST.getId());
|
HOLLOW_MATERIALS.add(Material.SIGN_POST.getId());
|
||||||
UNSAFE_MATERIALS.add(Material.WOODEN_DOOR.getId());
|
HOLLOW_MATERIALS.add(Material.WOODEN_DOOR.getId());
|
||||||
UNSAFE_MATERIALS.add(Material.LADDER.getId());
|
HOLLOW_MATERIALS.add(Material.LADDER.getId());
|
||||||
UNSAFE_MATERIALS.add(Material.RAILS.getId());
|
HOLLOW_MATERIALS.add(Material.RAILS.getId());
|
||||||
UNSAFE_MATERIALS.add(Material.WALL_SIGN.getId());
|
HOLLOW_MATERIALS.add(Material.WALL_SIGN.getId());
|
||||||
UNSAFE_MATERIALS.add(Material.LEVER.getId());
|
HOLLOW_MATERIALS.add(Material.LEVER.getId());
|
||||||
UNSAFE_MATERIALS.add(Material.STONE_PLATE.getId());
|
HOLLOW_MATERIALS.add(Material.STONE_PLATE.getId());
|
||||||
UNSAFE_MATERIALS.add(Material.IRON_DOOR_BLOCK.getId());
|
HOLLOW_MATERIALS.add(Material.IRON_DOOR_BLOCK.getId());
|
||||||
UNSAFE_MATERIALS.add(Material.WOOD_PLATE.getId());
|
HOLLOW_MATERIALS.add(Material.WOOD_PLATE.getId());
|
||||||
UNSAFE_MATERIALS.add(Material.REDSTONE_TORCH_OFF.getId());
|
HOLLOW_MATERIALS.add(Material.REDSTONE_TORCH_OFF.getId());
|
||||||
UNSAFE_MATERIALS.add(Material.REDSTONE_TORCH_ON.getId());
|
HOLLOW_MATERIALS.add(Material.REDSTONE_TORCH_ON.getId());
|
||||||
UNSAFE_MATERIALS.add(Material.STONE_BUTTON.getId());
|
HOLLOW_MATERIALS.add(Material.STONE_BUTTON.getId());
|
||||||
UNSAFE_MATERIALS.add(Material.SNOW.getId());
|
HOLLOW_MATERIALS.add(Material.SNOW.getId());
|
||||||
UNSAFE_MATERIALS.add(Material.SUGAR_CANE_BLOCK.getId());
|
HOLLOW_MATERIALS.add(Material.SUGAR_CANE_BLOCK.getId());
|
||||||
UNSAFE_MATERIALS.add(Material.DIODE_BLOCK_OFF.getId());
|
HOLLOW_MATERIALS.add(Material.DIODE_BLOCK_OFF.getId());
|
||||||
UNSAFE_MATERIALS.add(Material.DIODE_BLOCK_ON.getId());
|
HOLLOW_MATERIALS.add(Material.DIODE_BLOCK_ON.getId());
|
||||||
UNSAFE_MATERIALS.add(Material.PUMPKIN_STEM.getId());
|
HOLLOW_MATERIALS.add(Material.PUMPKIN_STEM.getId());
|
||||||
UNSAFE_MATERIALS.add(Material.MELON_STEM.getId());
|
HOLLOW_MATERIALS.add(Material.MELON_STEM.getId());
|
||||||
UNSAFE_MATERIALS.add(Material.VINE.getId());
|
HOLLOW_MATERIALS.add(Material.VINE.getId());
|
||||||
UNSAFE_MATERIALS.add(Material.FENCE_GATE.getId());
|
HOLLOW_MATERIALS.add(Material.FENCE_GATE.getId());
|
||||||
UNSAFE_MATERIALS.add(Material.WATER_LILY.getId());
|
HOLLOW_MATERIALS.add(Material.WATER_LILY.getId());
|
||||||
UNSAFE_MATERIALS.add(Material.NETHER_WARTS.getId());
|
HOLLOW_MATERIALS.add(Material.NETHER_WARTS.getId());
|
||||||
|
|
||||||
for (Integer integer : UNSAFE_MATERIALS)
|
for (Integer integer : HOLLOW_MATERIALS)
|
||||||
{
|
{
|
||||||
TRANSPARENT_MATERIALS.add(integer.byteValue());
|
TRANSPARENT_MATERIALS.add(integer.byteValue());
|
||||||
}
|
}
|
||||||
@ -407,7 +407,7 @@ public class Util
|
|||||||
|
|
||||||
private static boolean isBlockAboveAir(final World world, final int x, final int y, final int z)
|
private static boolean isBlockAboveAir(final World world, final int x, final int y, final int z)
|
||||||
{
|
{
|
||||||
return UNSAFE_MATERIALS.contains(world.getBlockAt(x, y - 1, z).getType().getId());
|
return HOLLOW_MATERIALS.contains(world.getBlockAt(x, y - 1, z).getType().getId());
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean isBlockUnsafe(final World world, final int x, final int y, final int z)
|
public static boolean isBlockUnsafe(final World world, final int x, final int y, final int z)
|
||||||
@ -437,8 +437,8 @@ public class Util
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((!UNSAFE_MATERIALS.contains(world.getBlockAt(x, y, z).getType().getId()))
|
if ((!HOLLOW_MATERIALS.contains(world.getBlockAt(x, y, z).getType().getId()))
|
||||||
|| (!UNSAFE_MATERIALS.contains(world.getBlockAt(x, y + 1, z).getType().getId())))
|
|| (!HOLLOW_MATERIALS.contains(world.getBlockAt(x, y + 1, z).getType().getId())))
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
package com.earth2me.essentials.api;
|
package com.earth2me.essentials.api;
|
||||||
|
|
||||||
import com.earth2me.essentials.IUser;
|
import com.earth2me.essentials.IUser;
|
||||||
import com.earth2me.essentials.Teleport.Target;
|
|
||||||
import com.earth2me.essentials.Trade;
|
import com.earth2me.essentials.Trade;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
Loading…
Reference in New Issue
Block a user