Skip to content

Instantly share code, notes, and snippets.

@heinrichquirit
Last active December 21, 2015 16:19
Show Gist options
  • Save heinrichquirit/6332874 to your computer and use it in GitHub Desktop.
Save heinrichquirit/6332874 to your computer and use it in GitHub Desktop.
package net.dkcraft.Punishment.commands;
import java.text.SimpleDateFormat;
import net.dkcraft.Punishment.Main;
import net.dkcraft.Punishment.util.ListStore;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
public class Freeze implements CommandExecutor {
private Main plugin;
public ListStore punishmentLog;
public Freeze(Main plugin) {
this.plugin = plugin;
}
public boolean onCommand(CommandSender cs, Command cmd, String label, String[] args) {
if (args.length == 0) {
cs.sendMessage("§cIncorrect syntax. Use: /freeze <player> [reason]");
return true;
}
Player freeze = plugin.getServer().getPlayer(args[0]);
if (freeze == null) {
cs.sendMessage("§cYou cannot freeze an offline player.");
return true;
}
if (freeze == cs) {
cs.sendMessage("§cYou cannot freeze yourself.");
return true;
}
if (Main.frozenPlayers.containsKey(freeze.getName())) {
cs.sendMessage("§cThis player is already frozen.");
return true;
}
if (!(cs instanceof Player)) {
if (freeze.hasPermission("punishment.freeze.immune") || !freeze.hasPermission("punishment.freeze.immune")) {
freezePlayer(freeze, cs, message);
}
}
String message = "";
if (args.length > 1) {
for (int i = 1; i < args.length; ++i) {
message += args[i] + " ";
}
} else {
freezePlayer(freeze, cs, message);
return true;
}
freezePlayer(freeze, cs, message);
return true;
}
private static void freezePlayer(Player freeze, CommandSender cs, String message) {
// check if freeze doesnt have the immune permission
Main.frozenPlayers.put(freeze.getName(), null);
freeze.sendMessage("§cYou have been frozen by a staff member. Reason: " + "§e" + message);
plugin.log.info(freeze.getName() + " was frozen by " + cs.getName() + " for reason: " + message);
cs.sendMessage("§a" + freeze.getName() + " §ehas been frozen.");
SimpleDateFormat format = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
Main.punishmentLog.add("[" + format.format(System.currentTimeMillis()) + "] " + freeze.getName() + " was frozen by " + cs.getName() + " for reason: " + message);
Main.punishmentLog.save();
// else player is immune
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment