Search in sources :

Example 1 with OfflinePlayer

use of com.earth2me.essentials.OfflinePlayer in project Essentials by drtshock.

the class Commandban method run.

@Override
public void run(final Server server, final CommandSource sender, final String commandLabel, final String[] args) throws Exception {
    boolean nomatch = false;
    if (args.length < 1) {
        throw new NotEnoughArgumentsException();
    }
    User user;
    try {
        user = getPlayer(server, args, 0, true, true);
    } catch (PlayerNotFoundException e) {
        nomatch = true;
        user = ess.getUser(new OfflinePlayer(args[0], ess.getServer()));
    }
    if (!user.getBase().isOnline()) {
        if (sender.isPlayer() && !ess.getUser(sender.getPlayer()).isAuthorized("essentials.ban.offline")) {
            throw new Exception(tl("banExemptOffline"));
        }
    } else {
        if (user.isAuthorized("essentials.ban.exempt") && sender.isPlayer()) {
            throw new Exception(tl("banExempt"));
        }
    }
    final String senderName = sender.isPlayer() ? sender.getPlayer().getDisplayName() : Console.NAME;
    String banReason;
    if (args.length > 1) {
        banReason = FormatUtil.replaceFormat(getFinalArg(args, 1).replace("\\n", "\n").replace("|", "\n"));
    } else {
        banReason = tl("defaultBanReason");
    }
    ess.getServer().getBanList(BanList.Type.NAME).addBan(user.getName(), banReason, null, senderName);
    String banDisplay = tl("banFormat", banReason, senderName);
    user.getBase().kickPlayer(banDisplay);
    server.getLogger().log(Level.INFO, tl("playerBanned", senderName, user.getName(), banDisplay));
    if (nomatch) {
        sender.sendMessage(tl("userUnknown", user.getName()));
    }
    ess.broadcastMessage("essentials.ban.notify", tl("playerBanned", senderName, user.getName(), banReason));
}
Also used : User(com.earth2me.essentials.User) OfflinePlayer(com.earth2me.essentials.OfflinePlayer)

Example 2 with OfflinePlayer

use of com.earth2me.essentials.OfflinePlayer in project Essentials by drtshock.

the class Commandmute method run.

@Override
public void run(final Server server, final CommandSource sender, final String commandLabel, final String[] args) throws Exception {
    boolean nomatch = false;
    if (args.length < 1) {
        throw new NotEnoughArgumentsException();
    }
    User user;
    try {
        user = getPlayer(server, args, 0, true, true);
    } catch (PlayerNotFoundException e) {
        nomatch = true;
        user = ess.getUser(new OfflinePlayer(args[0], ess.getServer()));
    }
    if (!user.getBase().isOnline()) {
        if (sender.isPlayer() && !ess.getUser(sender.getPlayer()).isAuthorized("essentials.mute.offline")) {
            throw new Exception(tl("muteExemptOffline"));
        }
    } else {
        if (user.isAuthorized("essentials.mute.exempt") && sender.isPlayer()) {
            throw new Exception(tl("muteExempt"));
        }
    }
    final boolean willMute = (args.length > 1) ? true : !user.getMuted();
    final User controller = sender.isPlayer() ? ess.getUser(sender.getPlayer()) : null;
    final MuteStatusChangeEvent event = new MuteStatusChangeEvent(user, controller, willMute);
    ess.getServer().getPluginManager().callEvent(event);
    if (!event.isCancelled()) {
        long muteTimestamp = 0;
        if (args.length > 1) {
            final String time = getFinalArg(args, 1);
            muteTimestamp = DateUtil.parseDateDiff(time, true);
            user.setMuted(true);
        } else {
            user.setMuted(!user.getMuted());
        }
        user.setMuteTimeout(muteTimestamp);
        final boolean muted = user.getMuted();
        String muteTime = DateUtil.formatDateDiff(muteTimestamp);
        if (nomatch) {
            sender.sendMessage(tl("userUnknown", user.getName()));
        }
        if (muted) {
            if (muteTimestamp > 0) {
                sender.sendMessage(tl("mutedPlayerFor", user.getDisplayName(), muteTime));
                user.sendMessage(tl("playerMutedFor", muteTime));
            } else {
                sender.sendMessage(tl("mutedPlayer", user.getDisplayName()));
                user.sendMessage(tl("playerMuted"));
            }
            final String message;
            if (muteTimestamp > 0) {
                message = tl("muteNotifyFor", sender.getSender().getName(), user.getName(), muteTime);
            } else {
                message = tl("muteNotify", sender.getSender().getName(), user.getName());
            }
            server.getLogger().log(Level.INFO, message);
            ess.broadcastMessage("essentials.mute.notify", message);
        } else {
            sender.sendMessage(tl("unmutedPlayer", user.getDisplayName()));
            user.sendMessage(tl("playerUnmuted"));
        }
    }
}
Also used : User(com.earth2me.essentials.User) MuteStatusChangeEvent(net.ess3.api.events.MuteStatusChangeEvent) OfflinePlayer(com.earth2me.essentials.OfflinePlayer)

Aggregations

OfflinePlayer (com.earth2me.essentials.OfflinePlayer)2 User (com.earth2me.essentials.User)2 MuteStatusChangeEvent (net.ess3.api.events.MuteStatusChangeEvent)1