Last active
December 21, 2015 16:19
-
-
Save heinrichquirit/6332874 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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