@Override
public void run(final IUser user, final String commandLabel, final String[] args) throws Exception
{
final IUser player = ess.getUserMap().matchUserExcludingHidden(args[0], user.getPlayer());
if (!player.getData().isTeleportEnabled())
{
throw new Exception(_("§c{0} §4has teleportation disabled.", player.getPlayer().getDisplayName()));
}
ISettings settings = ess.getSettings();
if (settings.getData().getGeneral().isPerGroupTeleport() && !Permissions.PERGROUPTELEPORT.isAuthorized(
user, ess.getRanks().getMainGroup(player)))
{
throw new Exception(_("§4You do not have the §c{0}§4 permission.", "essentials.teleport.groups." + ess.getRanks().getMainGroup(player)));
}
user.getTeleport().teleportToMe(player, new Trade(commandName, ess), TeleportCause.COMMAND);
user.sendMessage(_("§6Teleporting..."));
player.sendMessage(_("§6Teleporting..."));
throw new NoChargeException();
}
java类org.bukkit.event.player.PlayerTeleportEvent.TeleportCause的实例源码
Commandtphere.java 文件源码
项目:Essentials
阅读 15
收藏 0
点赞 0
评论 0
Teleport.java 文件源码
项目:Essentials
阅读 24
收藏 0
点赞 0
评论 0
private void teleport(Target target, Trade chargeFor, TeleportCause cause) throws Exception
{
final double delay = ess.getRanks().getTeleportDelay(user);
if (chargeFor != null)
{
chargeFor.isAffordableFor(user);
}
cooldown(true);
if (delay <= 0 || Permissions.TELEPORT_TIMER_BYPASS.isAuthorized(user))
{
cooldown(false);
now(target, cause);
if (chargeFor != null)
{
chargeFor.charge(user);
}
return;
}
cancel();
warnUser(user, delay);
initTimer((long)(delay * 1000.0), target, chargeFor, cause);
teleTimer = ess.getPlugin().scheduleSyncRepeatingTask(this, 10, 10);
}
Teleport.java 文件源码
项目:Essentials
阅读 25
收藏 0
点赞 0
评论 0
@Override
public void now(final Target target, final TeleportCause cause) throws Exception
{
cancel();
user.setLastLocation();
final Location loc = LocationUtil.getSafeDestination(target.getLocation());
ess.getPlugin().scheduleSyncDelayedTask(
new Runnable()
{
@Override
public void run()
{
user.getPlayer().teleport(loc, cause);
}
});
}
SignWarp.java 文件源码
项目:Essentials
阅读 14
收藏 0
点赞 0
评论 0
@Override
protected boolean onSignInteract(final ISign sign, final IUser player, final String username, final IEssentials ess) throws SignException, ChargeException
{
final String warpName = sign.getLine(1);
final String group = sign.getLine(2);
if ((!group.isEmpty() && ("§2Everyone".equals(group) || ess.getRanks().inGroup(player, group))) || (group.isEmpty() && Permissions.WARPS.isAuthorized(player, warpName)))
{
final Trade charge = getTrade(sign, 3, ess);
try
{
player.getTeleport().warp(warpName, charge, TeleportCause.PLUGIN);
}
catch (Exception ex)
{
throw new SignException(ex.getMessage(), ex);
}
return true;
}
return false;
}
CraftPlayer.java 文件源码
项目:Uranium
阅读 20
收藏 0
点赞 0
评论 0
@Override
public void respawn()
{
if ( getHealth() <= 0 && isOnline() )
{
server.getServer().getConfigurationManager().respawnPlayer( getHandle(), 0, TeleportCause.DEATH, null );
}
}
OrebfuscatorPlayerListener.java 文件源码
项目:AntiCheat
阅读 23
收藏 0
点赞 0
评论 0
@EventHandler(priority=EventPriority.MONITOR, ignoreCancelled = true)
public void onPlayerTeleport(PlayerTeleportEvent event) {
if (OrebfuscatorConfig.UseProximityHider) {
if(event.getCause() != TeleportCause.END_PORTAL
&& event.getCause() != TeleportCause.NETHER_PORTAL
)
{
ProximityHider.addPlayerToCheck(event.getPlayer(), null);
}
}
}
StandardGun.java 文件源码
项目:AddGun
阅读 18
收藏 0
点赞 0
评论 0
/**
* Based on shooting the gun, jerks the player's head to the direction of firing
*
* @param entity the entity shooting
* @param direction the direction of shot
*/
public void knockback(LivingEntity entity, Vector direction) {
if (entity instanceof Player) {
Player p = (Player) entity;
Vector begin = p.getEyeLocation().getDirection().clone();
Vector end = begin.clone().getMidpoint(direction).getMidpoint(begin); // 25% of "direction" between start and where fire occurred.
long kickback = Math.max(Math.min(this.cooldown / 3, (long) Animation.FRAME_DELAY * 3l), (long) Animation.FRAME_DELAY * 2l);
long kickdown = Math.max((long) Animation.FRAME_DELAY * 2l, this.cooldown - kickback);
AddGun.getPlugin().getPlayerListener().playAnimation(p, new Animation(p, begin, kickback, direction, kickdown, end));
} else {
entity.teleport(entity.getLocation().setDirection(direction), TeleportCause.PLUGIN);
}
}
PlayerMovementListener.java 文件源码
项目:ProjectAres
阅读 21
收藏 0
点赞 0
评论 0
/**
* Fire a CoarsePlayerMoveEvent that wraps the given event, only if it crosses
* a block boundary, or the PoseFlags change.
* @param event The movement event to potentially wrap
* @return True if the original event was not cancelled, and a coarse event was fired,
* and that coarse event was cancelled. In this case, the wrapped event won't
* actually be cancelled, but callers should treat it like it is.
*/
private boolean callCoarsePlayerMove(final PlayerMoveEvent event) {
// Don't fire coarse events for teleports that are not "in-game"
// e.g. /jumpto command
if(event instanceof PlayerTeleportEvent) {
PlayerTeleportEvent teleportEvent = (PlayerTeleportEvent) event;
if(teleportEvent.getCause() != TeleportCause.ENDER_PEARL &&
teleportEvent.getCause() != TeleportCause.UNKNOWN) {
return false;
}
}
// If the movement does not cross a block boundary, and no PoseFlags changed, we don't care about it
final EntityLocation from = event.getEntityFrom();
final EntityLocation to = event.getEntityTo();
if(from.position().coarseEquals(to.position()) && from.poseFlags().equals(to.poseFlags())) {
return false;
}
// Remember whether the original event was already cancelled
boolean wasCancelled = event.isCancelled();
CoarsePlayerMoveEvent generalEvent = new CoarsePlayerMoveEvent(event, event.getPlayer(), from, to);
this.eventBus.callEvent(generalEvent);
if(!wasCancelled && generalEvent.isCancelled()) {
// When a coarse event is cancelled, we have our own logic for resetting the
// player's position, so we un-cancel the event and instead modify its
// to location to put the player where we want them.
resetPosition(event);
return true;
} else {
return false;
}
}
Game.java 文件源码
项目:SkyWarsReloaded
阅读 31
收藏 0
点赞 0
评论 0
public void endGame() {
gameState = GameState.ENDING;
if (SkyWarsReloaded.getCfg().bungeeEnabled()&& !shutdown) {
BungeeUtil.sendSignUpdateRequest(this);
}
if (SkyWarsReloaded.getCfg().signJoinMode() && !shutdown) {
SkyWarsReloaded.getGC().updateSign(gameNumber);
}
for (GamePlayer gplayer: getPlayers()) {
deletePlayer(gplayer, false, false);
}
if (SkyWarsReloaded.getCfg().spectatingEnabled()) {
for (GamePlayer gPlayer: getSpectators()) {
removeSpectator(gPlayer);
}
}
for (Player player: mapWorld.getPlayers()) {
if (player != null) {
player.teleport(SkyWarsReloaded.getCfg().getSpawn(), TeleportCause.PLUGIN);
}
}
for (Entity entity: mapWorld.getEntities()) {
if (entity != null) {
entity.remove();
}
}
if (!SkyWarsReloaded.getCfg().spectatingEnabled() && !shutdown) {
SkyWarsReloaded.get().getServer().getScheduler().scheduleSyncDelayedTask(SkyWarsReloaded.get(), new Runnable() {
@Override
public void run() {
deleteGame();
}
}, 20 * SkyWarsReloaded.getCfg().getTimeAfterGame());
} else {
deleteGame();
}
}
SaveMapCmd.java 文件源码
项目:SkyWarsReloaded
阅读 14
收藏 0
点赞 0
评论 0
@Override
public boolean run() {
Location spawn = SkyWarsReloaded.getCfg().getSpawn();
if (spawn == null) {
sender.sendMessage(ChatColor.RED + "YOU MUST SET SPAWN BEFORE YOU CAN SAVE A MAP");
return true;
}
String worldName = args[1].toLowerCase();
for (World world: SkyWarsReloaded.get().getServer().getWorlds()) {
if (world.getName().equalsIgnoreCase(worldName)) {
World editWorld = SkyWarsReloaded.get().getServer().getWorld(worldName);
for (Player player: editWorld.getPlayers()) {
player.teleport(spawn, TeleportCause.PLUGIN);
}
editWorld.save();
SkyWarsReloaded.getWC().unloadWorld(worldName);
File dataDirectory = new File (SkyWarsReloaded.get().getDataFolder(), "maps");
File target = new File (dataDirectory, worldName);
SkyWarsReloaded.getWC().deleteWorld(target);
File source = new File (SkyWarsReloaded.get().getServer().getWorldContainer().getAbsolutePath(), worldName);
SkyWarsReloaded.getWC().copyWorld(source, target);
SkyWarsReloaded.getWC().deleteWorld(source);
sender.sendMessage(new Messaging.MessageFormatter().setVariable("mapname", worldName).format("maps.saved"));
if (SkyWarsReloaded.getMC().mapRegistered(worldName)) {
sender.sendMessage(new Messaging.MessageFormatter().format("maps.register-reminder"));
}
return true;
}
}
sender.sendMessage(new Messaging.MessageFormatter().setVariable("mapname", worldName).format("error.map-not-in-edit"));
return true;
}