@Override public boolean onCommand( final CommandSender sender, final Command cmd, final String label, final String args[]) { if (cmd.getName().equalsIgnoreCase("punish")) { if (args.length < 2) { sender.sendMessage(ChatColor.RED + "Not enough parameters!"); sender.sendMessage(ChatColor.RED + "Usage: /punish [@]<player> <reason>"); } else { Boolean pOffline = false; String ofpl = ""; if (args[0].startsWith("@")) { pOffline = true; StringBuilder sb = new StringBuilder(); sb.append(args[0]); sb.deleteCharAt(0); ofpl = sb.toString(); ofpl = StringEscapeUtils.escapeSql(ofpl); } else if (plugin.getServer().getPlayer(args[0]) == null) { sender.sendMessage( args[0] + " is not online! Use /p @<player> to punish offline players!"); return true; } ArrayList<String> arguments = new ArrayList<String>(); for (String s : args) { if (s != args[0]) arguments.add(s); } if (pOffline && sender instanceof Player) { Player player = (Player) sender; punishOffline( sender.getName(), StringEscapeUtils.escapeSql(player.getDisplayName()), ofpl, arguments); } else if (pOffline && sender instanceof ConsoleCommandSender) { punishOffline("(console)", ChatColor.GOLD + "(console)", ofpl, arguments); } else if (!pOffline && sender instanceof Player) { Player player = (Player) sender; punish( sender.getName(), StringEscapeUtils.escapeSql(player.getDisplayName()), plugin.getServer().getPlayer(args[0]).getName(), plugin.getServer().getPlayer(args[0]).getDisplayName(), arguments); } else if (!pOffline && sender instanceof ConsoleCommandSender) { punish( "(console)", ChatColor.GOLD + "(console)", plugin.getServer().getPlayer(args[0]).getName(), plugin.getServer().getPlayer(args[0]).getDisplayName(), arguments); } } return true; } return false; }
public void permaBanOffline( String punisher, String punisherDisplay, String punished, ArrayList<String> arguments) { try { String reason = ""; for (String s : arguments) { reason += s + " "; } long time = System.currentTimeMillis() / 1000L; UUID UUID = plugin.getServer().getOfflinePlayer(punished).getUniqueId(); plugin.sqlite.insert( "INSERT INTO punishments (punisher, punished, reason, type, time, expiry, active, server, UUID) VALUES ('" + punisher + "','" + punished + "','" + StringEscapeUtils.escapeSql(reason) + "','ban','" + time + "','0','1','" + Bans.server + "','" + UUID + "');"); for (Player plr : plugin.getServer().getOnlinePlayers()) { plr.sendMessage( ChatColor.DARK_AQUA + punisherDisplay + ChatColor.YELLOW + " -> " + ChatColor.GOLD + "Permanent ban" + ChatColor.YELLOW + " -> " + ChatColor.DARK_AQUA + punished + ChatColor.YELLOW + " -> " + ChatColor.GOLD + reason); } plugin.addBan(UUID, reason, time, 0); } catch (SQLException e) { plugin.getLogger().severe(e.getMessage()); } }
public void punishOffline( String punisher, String punisherDisplay, String punished, ArrayList<String> arguments) { String reason = ""; for (String s : arguments) { reason += s + " "; } try { ResultSet result = plugin.sqlite.query( ("SELECT * FROM punishments WHERE punished='" + punished + "' AND active=1;")); Boolean kicked = false; Boolean banned = false; while (result.next()) { String type = result.getString("type"); if (type.equals("ban") || type.equals("tempban")) { banned = true; } else if (type.equals("kick")) { kicked = true; } } long time = System.currentTimeMillis() / 1000L; long expiry = time + (86400 * 7); UUID UUID = plugin.getServer().getOfflinePlayer(punished).getUniqueId(); if (banned) { plugin.sqlite.insert( "INSERT INTO punishments (punisher, punished, reason, type, time, expiry, active, server, UUID) VALUES ('" + punisher + "','" + punished + "','" + StringEscapeUtils.escapeSql(reason) + "','ban','" + time + "','0','1','" + Bans.server + "','" + UUID + "');"); for (Player plr : plugin.getServer().getOnlinePlayers()) { plr.sendMessage( ChatColor.DARK_AQUA + punisherDisplay + ChatColor.YELLOW + " -> " + ChatColor.GOLD + "Permanent ban" + ChatColor.YELLOW + " -> " + ChatColor.DARK_AQUA + punished + ChatColor.YELLOW + " -> " + ChatColor.GOLD + reason); } plugin.addBan(UUID, reason, time, 0); } else if (kicked) { plugin.sqlite.insert( "INSERT INTO punishments (punisher, punished, reason, type, time, expiry, active, server, UUID) VALUES ('" + punisher + "','" + punished + "','" + StringEscapeUtils.escapeSql(reason) + "','tempban','" + time + "','" + expiry + "','1','" + Bans.server + "','" + UUID + "');"); for (Player plr : plugin.getServer().getOnlinePlayers()) { plr.sendMessage( ChatColor.DARK_AQUA + punisherDisplay + ChatColor.YELLOW + " -> " + ChatColor.GOLD + "7 day ban" + ChatColor.YELLOW + " -> " + ChatColor.DARK_AQUA + punished + ChatColor.YELLOW + " -> " + ChatColor.GOLD + reason); } plugin.addBan(UUID, reason, time, expiry); } else { plugin.sqlite.insert( "INSERT INTO punishments (punisher, punished, reason, type, time, active, server, UUID) VALUES ('" + punisher + "','" + punished + "','" + StringEscapeUtils.escapeSql(reason) + "','kick','" + time + "','1','" + Bans.server + "','" + UUID + "');"); for (Player plr : plugin.getServer().getOnlinePlayers()) { plr.sendMessage( punisherDisplay + ChatColor.YELLOW + " -> " + ChatColor.GOLD + "Kick" + ChatColor.YELLOW + " -> " + ChatColor.DARK_AQUA + punished + ChatColor.YELLOW + " -> " + ChatColor.GOLD + reason); } } } catch (SQLException e) { plugin.getLogger().severe(e.getMessage()); } }