package nl.sugcube.crystalquest.command;
import nl.sugcube.crystalquest.Broadcast;
import nl.sugcube.crystalquest.CrystalQuest;
import nl.sugcube.crystalquest.game.Arena;
import org.bukkit.Location;
import org.bukkit.block.Sign;
import org.bukkit.command.CommandSender;
/**
* @author SugarCaney
*/
public class CommandSetName extends CrystalQuestCommand {
public CommandSetName() {
super("setname", "commands.setname-usage", 2);
addPermissions(
"crystalquest.admin"
);
addAutoCompleteMeta(0, AutoCompleteArgument.ARENA);
}
@Override
protected void executeImpl(CrystalQuest plugin, CommandSender sender, String... arguments) {
try {
Arena arena;
try {
arena = plugin.am.getArena(Integer.parseInt(arguments[0]) - 1);
}
catch (Exception e) {
arena = plugin.am.getArena(arguments[0]);
}
String oldname = arena.getName();
boolean bool = arena.setName(arguments[1]);
if (bool) {
for (Location loc : plugin.signHandler.getSigns()) {
Sign s = (Sign)loc.getBlock().getState();
if (s.getLine(1).equalsIgnoreCase(oldname)) {
s.setLine(1, arena.getName());
s.update(true);
}
}
sender.sendMessage(Broadcast.TAG + Broadcast.get("commands.setname-succeed")
.replace("%arena%", Integer.toString(arena.getId() + 1))
.replace("%name%", arena.getName()));
}
else {
sender.sendMessage(Broadcast.get("commands.wrong-name"));
}
}
catch (Exception e) {
sender.sendMessage(Broadcast.get("commands.setname-failed"));
}
}
@Override
protected boolean assertSender(CommandSender sender) {
return true;
}
}