Search in sources :

Example 1 with IUser

use of net.ess3.api.IUser in project Essentials by drtshock.

the class TimedTeleport method run.

@Override
public void run() {
    if (teleportOwner == null || !teleportOwner.getBase().isOnline() || teleportOwner.getBase().getLocation() == null) {
        cancelTimer(false);
        return;
    }
    final IUser teleportUser = ess.getUser(this.timer_teleportee);
    if (teleportUser == null || !teleportUser.getBase().isOnline()) {
        cancelTimer(false);
        return;
    }
    final Location currLocation = teleportUser.getBase().getLocation();
    if (currLocation == null) {
        cancelTimer(false);
        return;
    }
    if (!timer_canMove && (Math.round(currLocation.getX() * MOVE_CONSTANT) != timer_initX || Math.round(currLocation.getY() * MOVE_CONSTANT) != timer_initY || Math.round(currLocation.getZ() * MOVE_CONSTANT) != timer_initZ || teleportUser.getBase().getHealth() < timer_health)) {
        // user moved, cancelTimer teleportPlayer
        cancelTimer(true);
        return;
    }
    class DelayedTeleportTask implements Runnable {

        @Override
        public void run() {
            // in case user healed, then later gets injured
            timer_health = teleportUser.getBase().getHealth();
            final long now = System.currentTimeMillis();
            if (now > timer_started + timer_delay) {
                try {
                    teleport.cooldown(false);
                } catch (Exception ex) {
                    teleportOwner.sendMessage(tl("cooldownWithMessage", ex.getMessage()));
                    if (teleportOwner != teleportUser) {
                        teleportUser.sendMessage(tl("cooldownWithMessage", ex.getMessage()));
                    }
                }
                try {
                    cancelTimer(false);
                    teleportUser.sendMessage(tl("teleportationCommencing"));
                    try {
                        if (timer_chargeFor != null) {
                            timer_chargeFor.isAffordableFor(teleportOwner);
                        }
                        if (timer_respawn) {
                            teleport.respawnNow(teleportUser, timer_cause);
                        } else {
                            teleport.now(teleportUser, timer_teleportTarget, timer_cause);
                        }
                        if (timer_chargeFor != null) {
                            timer_chargeFor.charge(teleportOwner);
                        }
                    } catch (Exception ex) {
                    }
                } catch (Exception ex) {
                    ess.showError(teleportOwner.getSource(), ex, "\\ teleport");
                }
            }
        }
    }
    ess.scheduleSyncDelayedTask(new DelayedTeleportTask());
}
Also used : IUser(net.ess3.api.IUser) Location(org.bukkit.Location)

Example 2 with IUser

use of net.ess3.api.IUser in project Essentials by drtshock.

the class XMPPManager method processMessage.

@Override
public void processMessage(final Chat chat, final Message msg) {
    // But we would create a loop if the connection to a log-user fails.
    if (msg.getType() != Message.Type.error && msg.getBody().length() > 0) {
        final String message = msg.getBody();
        switch(message.charAt(0)) {
            case '@':
                sendPrivateMessage(chat, message);
                break;
            case '/':
                sendCommand(chat, message);
                break;
            default:
                final IUser sender = parent.getUserByAddress(StringUtils.parseBareAddress(chat.getParticipant()));
                parent.broadcastMessage(sender, "=" + sender.getBase().getDisplayName() + ": " + message, StringUtils.parseBareAddress(chat.getParticipant()));
        }
    }
}
Also used : IUser(net.ess3.api.IUser)

Aggregations

IUser (net.ess3.api.IUser)2 Location (org.bukkit.Location)1