mirror of
https://github.com/taoneill/war.git
synced 2025-02-15 10:51:20 +01:00
Changed command handling so that we print the command usage string ourselves. Cleaned up plugin.yml so usage help doesn't look awful. Brought back 'bad' messages formatted in red which where torn out by Tim. Added warning when console tries to use player-only command. Now matching the start of the name of a warzone instead of the exact name, because that's how it worked and how it should continue to work.
This commit is contained in:
parent
8891b97a9d
commit
05b827d265
@ -505,27 +505,36 @@ public class War extends JavaPlugin {
|
|||||||
return this.warzones;
|
return this.warzones;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void msg(Player player, String str) {
|
public void msg(CommandSender sender, String str) {
|
||||||
String out = ChatColor.GRAY + "War> " + ChatColor.WHITE + this.colorTeams(str, ChatColor.WHITE) + " ";
|
if(sender instanceof Player) {
|
||||||
ChatFixUtil.sendMessage(player, out);
|
String out = ChatColor.GRAY + "War> " + ChatColor.WHITE + this.colorKnownTokens(str, ChatColor.WHITE) + " ";
|
||||||
|
ChatFixUtil.sendMessage(sender, out);
|
||||||
|
} else {
|
||||||
|
sender.sendMessage("War> " + str);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void badMsg(Player player, String str) {
|
public void badMsg(CommandSender sender, String str) {
|
||||||
String out = ChatColor.GRAY + "War> " + ChatColor.RED + this.colorTeams(str, ChatColor.RED) + " ";
|
if(sender instanceof Player) {
|
||||||
ChatFixUtil.sendMessage(player, out);
|
String out = ChatColor.GRAY + "War> " + ChatColor.RED + this.colorKnownTokens(str, ChatColor.RED) + " ";
|
||||||
|
ChatFixUtil.sendMessage(sender, out);
|
||||||
|
} else {
|
||||||
|
sender.sendMessage("War> " + str);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Colors the teams in messages
|
* Colors the teams and examples in messages
|
||||||
*
|
*
|
||||||
* @param String str message-string
|
* @param String str message-string
|
||||||
* @param String msgColor current message-color
|
* @param String msgColor current message-color
|
||||||
* @return String Message with colored teams
|
* @return String Message with colored teams
|
||||||
*/
|
*/
|
||||||
private String colorTeams(String str, ChatColor msgColor) {
|
private String colorKnownTokens(String str, ChatColor msgColor) {
|
||||||
for (TeamKind kind : TeamKinds.getTeamkinds()) {
|
for (TeamKind kind : TeamKinds.getTeamkinds()) {
|
||||||
str = str.replaceAll(" " + kind.getDefaultName(), " " + kind.getColor() + kind.getDefaultName() + msgColor);
|
str = str.replaceAll(" " + kind.getDefaultName(), " " + kind.getColor() + kind.getDefaultName() + msgColor);
|
||||||
}
|
}
|
||||||
|
str = str.replaceAll("Ex -", ChatColor.GRAY + "Ex -");
|
||||||
return str;
|
return str;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
package bukkit.tommytony.war;
|
package bukkit.tommytony.war;
|
||||||
|
|
||||||
|
import java.util.logging.Level;
|
||||||
|
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
|
|
||||||
@ -32,12 +34,14 @@ public class WarCommandHandler {
|
|||||||
arguments[i - 1] = args[i];
|
arguments[i - 1] = args[i];
|
||||||
}
|
}
|
||||||
if (arguments.length == 1 && (arguments[0].equals("help") || arguments[0].equals("h"))) {
|
if (arguments.length == 1 && (arguments[0].equals("help") || arguments[0].equals("h"))) {
|
||||||
// show help
|
// show /war help
|
||||||
return false;
|
War.war.badMsg(sender, cmd.getUsage());
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
} else if (command.equals("war") || command.equals("War")) {
|
} else if (command.equals("war") || command.equals("War")) {
|
||||||
// show help
|
// show /war help
|
||||||
return false;
|
War.war.msg(sender, cmd.getUsage());
|
||||||
|
return true;
|
||||||
} else {
|
} else {
|
||||||
arguments = args;
|
arguments = args;
|
||||||
}
|
}
|
||||||
@ -88,19 +92,24 @@ public class WarCommandHandler {
|
|||||||
commandObj = new SetWarConfigCommand(this, sender, arguments);
|
commandObj = new SetWarConfigCommand(this, sender, arguments);
|
||||||
} else if (command.equals("zonemaker") || command.equals("zm")) {
|
} else if (command.equals("zonemaker") || command.equals("zm")) {
|
||||||
commandObj = new ZoneMakerCommand(this, sender, arguments);
|
commandObj = new ZoneMakerCommand(this, sender, arguments);
|
||||||
} else {
|
}
|
||||||
// we are not responsible for this command
|
// we are not responsible for any other command
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
catch (NoZoneMakerException e) {
|
catch (NotZoneMakerException e) {
|
||||||
sender.sendMessage("You can't do this if you are not a warzone maker.");
|
War.war.badMsg(sender, "You can't do this if you are not a warzone maker.");
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
catch (Exception e) {
|
catch (Exception e) {
|
||||||
return true;
|
War.war.log("An error occured while handling command " + cmd.getName() + ". Exception:" + e.getClass().toString() + " " + e.getMessage(), Level.WARNING);
|
||||||
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
||||||
return commandObj.handle();
|
if(commandObj != null) {
|
||||||
|
boolean handled = commandObj.handle();
|
||||||
|
if(!handled) {
|
||||||
|
War.war.badMsg(sender, cmd.getUsage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,23 +1,38 @@
|
|||||||
package bukkit.tommytony.war.command;
|
package bukkit.tommytony.war.command;
|
||||||
|
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.command.ConsoleCommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
import bukkit.tommytony.war.War;
|
||||||
import bukkit.tommytony.war.WarCommandHandler;
|
import bukkit.tommytony.war.WarCommandHandler;
|
||||||
|
|
||||||
public abstract class AbstractWarCommand {
|
public abstract class AbstractWarCommand {
|
||||||
|
|
||||||
protected CommandSender sender;
|
private CommandSender sender;
|
||||||
protected String[] args;
|
protected String[] args;
|
||||||
protected WarCommandHandler handler;
|
protected WarCommandHandler handler;
|
||||||
public AbstractWarCommand(WarCommandHandler handler, CommandSender sender, String[] args) {
|
public AbstractWarCommand(WarCommandHandler handler, CommandSender sender, String[] args) {
|
||||||
this.handler = handler;
|
this.handler = handler;
|
||||||
this.sender = sender;
|
this.setSender(sender);
|
||||||
this.args = args;
|
this.args = args;
|
||||||
}
|
}
|
||||||
|
|
||||||
abstract public boolean handle();
|
abstract public boolean handle();
|
||||||
|
|
||||||
public void msg(String message) {
|
public void msg(String message) {
|
||||||
this.sender.sendMessage(message);
|
War.war.msg(getSender(), message);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void badMsg(String message) {
|
||||||
|
War.war.badMsg(getSender(), message);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSender(CommandSender sender) {
|
||||||
|
this.sender = sender;
|
||||||
|
}
|
||||||
|
|
||||||
|
public CommandSender getSender() {
|
||||||
|
return sender;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,21 +4,20 @@ import org.bukkit.command.CommandSender;
|
|||||||
import org.bukkit.command.ConsoleCommandSender;
|
import org.bukkit.command.ConsoleCommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
import bukkit.tommytony.war.NoZoneMakerException;
|
|
||||||
import bukkit.tommytony.war.War;
|
import bukkit.tommytony.war.War;
|
||||||
import bukkit.tommytony.war.WarCommandHandler;
|
import bukkit.tommytony.war.WarCommandHandler;
|
||||||
|
|
||||||
public abstract class AbstractZoneMakerCommand extends AbstractWarCommand {
|
public abstract class AbstractZoneMakerCommand extends AbstractWarCommand {
|
||||||
|
|
||||||
public AbstractZoneMakerCommand(WarCommandHandler handler, CommandSender sender, String[] args) throws NoZoneMakerException {
|
public AbstractZoneMakerCommand(WarCommandHandler handler, CommandSender sender, String[] args) throws NotZoneMakerException {
|
||||||
super(handler, sender, args);
|
super(handler, sender, args);
|
||||||
if (sender instanceof Player) {
|
if (sender instanceof Player) {
|
||||||
if (!War.war.isZoneMaker((Player) sender)) {
|
if (!War.war.isZoneMaker((Player) sender)) {
|
||||||
throw new NoZoneMakerException();
|
throw new NotZoneMakerException();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (!(sender instanceof ConsoleCommandSender)) {
|
else if (!(sender instanceof ConsoleCommandSender)) {
|
||||||
throw new NoZoneMakerException();
|
throw new NotZoneMakerException();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -8,11 +8,10 @@ import com.tommytony.war.Warzone;
|
|||||||
import com.tommytony.war.ZoneLobby;
|
import com.tommytony.war.ZoneLobby;
|
||||||
import com.tommytony.war.mappers.WarzoneMapper;
|
import com.tommytony.war.mappers.WarzoneMapper;
|
||||||
|
|
||||||
import bukkit.tommytony.war.NoZoneMakerException;
|
|
||||||
import bukkit.tommytony.war.WarCommandHandler;
|
import bukkit.tommytony.war.WarCommandHandler;
|
||||||
|
|
||||||
public class DeleteMonumentCommand extends AbstractZoneMakerCommand {
|
public class DeleteMonumentCommand extends AbstractZoneMakerCommand {
|
||||||
public DeleteMonumentCommand(WarCommandHandler handler, CommandSender sender, String[] args) throws NoZoneMakerException {
|
public DeleteMonumentCommand(WarCommandHandler handler, CommandSender sender, String[] args) throws NotZoneMakerException {
|
||||||
super(handler, sender, args);
|
super(handler, sender, args);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -25,12 +24,12 @@ public class DeleteMonumentCommand extends AbstractZoneMakerCommand {
|
|||||||
zone = Warzone.getZoneByName(this.args[0]);
|
zone = Warzone.getZoneByName(this.args[0]);
|
||||||
this.args[0] = this.args[1];
|
this.args[0] = this.args[1];
|
||||||
} else if (this.args.length == 1) {
|
} else if (this.args.length == 1) {
|
||||||
if (!(this.sender instanceof Player)) {
|
if (!(this.getSender() instanceof Player)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
zone = Warzone.getZoneByLocation((Player) this.sender);
|
zone = Warzone.getZoneByLocation((Player) this.getSender());
|
||||||
if (zone == null) {
|
if (zone == null) {
|
||||||
ZoneLobby lobby = ZoneLobby.getLobbyByLocation((Player) this.sender);
|
ZoneLobby lobby = ZoneLobby.getLobbyByLocation((Player) this.getSender());
|
||||||
if (lobby == null) {
|
if (lobby == null) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -40,7 +39,7 @@ public class DeleteMonumentCommand extends AbstractZoneMakerCommand {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (zone == null) {
|
if (zone == null) {
|
||||||
return false;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
Monument monument = zone.getMonument(this.args[0]);
|
Monument monument = zone.getMonument(this.args[0]);
|
||||||
@ -50,7 +49,7 @@ public class DeleteMonumentCommand extends AbstractZoneMakerCommand {
|
|||||||
WarzoneMapper.save(zone, false);
|
WarzoneMapper.save(zone, false);
|
||||||
this.msg("Monument " + monument.getName() + " removed.");
|
this.msg("Monument " + monument.getName() + " removed.");
|
||||||
} else {
|
} else {
|
||||||
this.msg("No such monument.");
|
this.badMsg("No such monument.");
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
@ -9,11 +9,10 @@ import com.tommytony.war.Warzone;
|
|||||||
import com.tommytony.war.ZoneLobby;
|
import com.tommytony.war.ZoneLobby;
|
||||||
import com.tommytony.war.mappers.WarzoneMapper;
|
import com.tommytony.war.mappers.WarzoneMapper;
|
||||||
|
|
||||||
import bukkit.tommytony.war.NoZoneMakerException;
|
|
||||||
import bukkit.tommytony.war.WarCommandHandler;
|
import bukkit.tommytony.war.WarCommandHandler;
|
||||||
|
|
||||||
public class DeleteTeamCommand extends AbstractZoneMakerCommand {
|
public class DeleteTeamCommand extends AbstractZoneMakerCommand {
|
||||||
public DeleteTeamCommand(WarCommandHandler handler, CommandSender sender, String[] args) throws NoZoneMakerException {
|
public DeleteTeamCommand(WarCommandHandler handler, CommandSender sender, String[] args) throws NotZoneMakerException {
|
||||||
super(handler, sender, args);
|
super(handler, sender, args);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -26,12 +25,12 @@ public class DeleteTeamCommand extends AbstractZoneMakerCommand {
|
|||||||
zone = Warzone.getZoneByName(this.args[0]);
|
zone = Warzone.getZoneByName(this.args[0]);
|
||||||
this.args[0] = this.args[1];
|
this.args[0] = this.args[1];
|
||||||
} else if (this.args.length == 1) {
|
} else if (this.args.length == 1) {
|
||||||
if (!(this.sender instanceof Player)) {
|
if (!(this.getSender() instanceof Player)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
zone = Warzone.getZoneByLocation((Player) this.sender);
|
zone = Warzone.getZoneByLocation((Player) this.getSender());
|
||||||
if (zone == null) {
|
if (zone == null) {
|
||||||
ZoneLobby lobby = ZoneLobby.getLobbyByLocation((Player) this.sender);
|
ZoneLobby lobby = ZoneLobby.getLobbyByLocation((Player) this.getSender());
|
||||||
if (lobby == null) {
|
if (lobby == null) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -57,7 +56,7 @@ public class DeleteTeamCommand extends AbstractZoneMakerCommand {
|
|||||||
WarzoneMapper.save(zone, false);
|
WarzoneMapper.save(zone, false);
|
||||||
this.msg("Team " + team.getName() + " removed.");
|
this.msg("Team " + team.getName() + " removed.");
|
||||||
} else {
|
} else {
|
||||||
this.msg("No such team.");
|
this.badMsg("No such team.");
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
@ -8,12 +8,11 @@ import com.tommytony.war.WarHub;
|
|||||||
import com.tommytony.war.mappers.VolumeMapper;
|
import com.tommytony.war.mappers.VolumeMapper;
|
||||||
import com.tommytony.war.mappers.WarMapper;
|
import com.tommytony.war.mappers.WarMapper;
|
||||||
|
|
||||||
import bukkit.tommytony.war.NoZoneMakerException;
|
|
||||||
import bukkit.tommytony.war.War;
|
import bukkit.tommytony.war.War;
|
||||||
import bukkit.tommytony.war.WarCommandHandler;
|
import bukkit.tommytony.war.WarCommandHandler;
|
||||||
|
|
||||||
public class DeleteWarhubCommand extends AbstractZoneMakerCommand {
|
public class DeleteWarhubCommand extends AbstractZoneMakerCommand {
|
||||||
public DeleteWarhubCommand(WarCommandHandler handler, CommandSender sender, String[] args) throws NoZoneMakerException {
|
public DeleteWarhubCommand(WarCommandHandler handler, CommandSender sender, String[] args) throws NotZoneMakerException {
|
||||||
super(handler, sender, args);
|
super(handler, sender, args);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -36,7 +35,7 @@ public class DeleteWarhubCommand extends AbstractZoneMakerCommand {
|
|||||||
|
|
||||||
this.msg("War hub removed.");
|
this.msg("War hub removed.");
|
||||||
} else {
|
} else {
|
||||||
this.msg("No War hub to delete.");
|
this.badMsg("No War hub to delete.");
|
||||||
}
|
}
|
||||||
WarMapper.save();
|
WarMapper.save();
|
||||||
|
|
||||||
|
@ -10,12 +10,11 @@ import com.tommytony.war.ZoneLobby;
|
|||||||
import com.tommytony.war.mappers.WarMapper;
|
import com.tommytony.war.mappers.WarMapper;
|
||||||
import com.tommytony.war.mappers.WarzoneMapper;
|
import com.tommytony.war.mappers.WarzoneMapper;
|
||||||
|
|
||||||
import bukkit.tommytony.war.NoZoneMakerException;
|
|
||||||
import bukkit.tommytony.war.War;
|
import bukkit.tommytony.war.War;
|
||||||
import bukkit.tommytony.war.WarCommandHandler;
|
import bukkit.tommytony.war.WarCommandHandler;
|
||||||
|
|
||||||
public class DeleteZoneCommand extends AbstractZoneMakerCommand {
|
public class DeleteZoneCommand extends AbstractZoneMakerCommand {
|
||||||
public DeleteZoneCommand(WarCommandHandler handler, CommandSender sender, String[] args) throws NoZoneMakerException {
|
public DeleteZoneCommand(WarCommandHandler handler, CommandSender sender, String[] args) throws NotZoneMakerException {
|
||||||
super(handler, sender, args);
|
super(handler, sender, args);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -26,12 +25,12 @@ public class DeleteZoneCommand extends AbstractZoneMakerCommand {
|
|||||||
if (this.args.length == 1) {
|
if (this.args.length == 1) {
|
||||||
zone = Warzone.getZoneByName(this.args[0]);
|
zone = Warzone.getZoneByName(this.args[0]);
|
||||||
} else if (this.args.length == 0) {
|
} else if (this.args.length == 0) {
|
||||||
if (!(this.sender instanceof Player)) {
|
if (!(this.getSender() instanceof Player)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
zone = Warzone.getZoneByLocation((Player) this.sender);
|
zone = Warzone.getZoneByLocation((Player) this.getSender());
|
||||||
if (zone == null) {
|
if (zone == null) {
|
||||||
ZoneLobby lobby = ZoneLobby.getLobbyByLocation((Player) this.sender);
|
ZoneLobby lobby = ZoneLobby.getLobbyByLocation((Player) this.getSender());
|
||||||
if (lobby == null) {
|
if (lobby == null) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -21,13 +21,14 @@ public class JoinCommand extends AbstractWarCommand {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean handle() {
|
public boolean handle() {
|
||||||
if (!(this.sender instanceof Player)) {
|
if (!(this.getSender() instanceof Player)) {
|
||||||
|
this.badMsg("You can't do this if you are not in-game.");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
Player player = (Player) this.sender;
|
Player player = (Player) this.getSender();
|
||||||
if (!War.war.canPlayWar(player)) {
|
if (!War.war.canPlayWar(player)) {
|
||||||
this.msg("Cannot play war");
|
this.badMsg("Cannot play war. You need the war.player permission.");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -40,12 +41,9 @@ public class JoinCommand extends AbstractWarCommand {
|
|||||||
// move the team-name to first place :)
|
// move the team-name to first place :)
|
||||||
this.args[0] = this.args[1];
|
this.args[0] = this.args[1];
|
||||||
} else if (this.args.length == 1) {
|
} else if (this.args.length == 1) {
|
||||||
if (!(this.sender instanceof Player)) {
|
zone = Warzone.getZoneByLocation((Player) this.getSender());
|
||||||
return false;
|
|
||||||
}
|
|
||||||
zone = Warzone.getZoneByLocation((Player) this.sender);
|
|
||||||
if (zone == null) {
|
if (zone == null) {
|
||||||
ZoneLobby lobby = ZoneLobby.getLobbyByLocation((Player) this.sender);
|
ZoneLobby lobby = ZoneLobby.getLobbyByLocation((Player) this.getSender());
|
||||||
if (lobby == null) {
|
if (lobby == null) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -14,7 +14,8 @@ public class LeaveCommand extends AbstractWarCommand {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean handle() {
|
public boolean handle() {
|
||||||
if (!(this.sender instanceof Player)) {
|
if (!(this.getSender() instanceof Player)) {
|
||||||
|
this.badMsg("You can't do this if you are not in-game.");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -22,7 +23,7 @@ public class LeaveCommand extends AbstractWarCommand {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
Player player = (Player) this.sender;
|
Player player = (Player) this.getSender();
|
||||||
Warzone zone = Warzone.getZoneByPlayerName(player.getName());
|
Warzone zone = Warzone.getZoneByPlayerName(player.getName());
|
||||||
if (zone == null) {
|
if (zone == null) {
|
||||||
return false;
|
return false;
|
||||||
|
@ -2,12 +2,11 @@ package bukkit.tommytony.war.command;
|
|||||||
|
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
|
|
||||||
import bukkit.tommytony.war.NoZoneMakerException;
|
|
||||||
import bukkit.tommytony.war.War;
|
import bukkit.tommytony.war.War;
|
||||||
import bukkit.tommytony.war.WarCommandHandler;
|
import bukkit.tommytony.war.WarCommandHandler;
|
||||||
|
|
||||||
public class LoadWarCommand extends AbstractZoneMakerCommand {
|
public class LoadWarCommand extends AbstractZoneMakerCommand {
|
||||||
public LoadWarCommand(WarCommandHandler handler, CommandSender sender, String[] args) throws NoZoneMakerException {
|
public LoadWarCommand(WarCommandHandler handler, CommandSender sender, String[] args) throws NotZoneMakerException {
|
||||||
super(handler, sender, args);
|
super(handler, sender, args);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -7,11 +7,10 @@ import com.tommytony.war.Team;
|
|||||||
import com.tommytony.war.Warzone;
|
import com.tommytony.war.Warzone;
|
||||||
import com.tommytony.war.ZoneLobby;
|
import com.tommytony.war.ZoneLobby;
|
||||||
|
|
||||||
import bukkit.tommytony.war.NoZoneMakerException;
|
|
||||||
import bukkit.tommytony.war.WarCommandHandler;
|
import bukkit.tommytony.war.WarCommandHandler;
|
||||||
|
|
||||||
public class NextBattleCommand extends AbstractZoneMakerCommand {
|
public class NextBattleCommand extends AbstractZoneMakerCommand {
|
||||||
public NextBattleCommand(WarCommandHandler handler, CommandSender sender, String[] args) throws NoZoneMakerException {
|
public NextBattleCommand(WarCommandHandler handler, CommandSender sender, String[] args) throws NotZoneMakerException {
|
||||||
super(handler, sender, args);
|
super(handler, sender, args);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -21,12 +20,12 @@ public class NextBattleCommand extends AbstractZoneMakerCommand {
|
|||||||
if (this.args.length == 1) {
|
if (this.args.length == 1) {
|
||||||
zone = Warzone.getZoneByName(this.args[0]);
|
zone = Warzone.getZoneByName(this.args[0]);
|
||||||
} else if (this.args.length == 0) {
|
} else if (this.args.length == 0) {
|
||||||
if (!(this.sender instanceof Player)) {
|
if (!(this.getSender() instanceof Player)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
zone = Warzone.getZoneByLocation((Player) this.sender);
|
zone = Warzone.getZoneByLocation((Player) this.getSender());
|
||||||
if (zone == null) {
|
if (zone == null) {
|
||||||
ZoneLobby lobby = ZoneLobby.getLobbyByLocation((Player) this.sender);
|
ZoneLobby lobby = ZoneLobby.getLobbyByLocation((Player) this.getSender());
|
||||||
if (lobby == null) {
|
if (lobby == null) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,10 @@
|
|||||||
|
package bukkit.tommytony.war.command;
|
||||||
|
|
||||||
|
public class NotZoneMakerException extends Exception {
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
private static final long serialVersionUID = -5412011034665080340L;
|
||||||
|
|
||||||
|
}
|
@ -7,12 +7,11 @@ import com.tommytony.war.Team;
|
|||||||
import com.tommytony.war.Warzone;
|
import com.tommytony.war.Warzone;
|
||||||
import com.tommytony.war.ZoneLobby;
|
import com.tommytony.war.ZoneLobby;
|
||||||
|
|
||||||
import bukkit.tommytony.war.NoZoneMakerException;
|
|
||||||
import bukkit.tommytony.war.War;
|
import bukkit.tommytony.war.War;
|
||||||
import bukkit.tommytony.war.WarCommandHandler;
|
import bukkit.tommytony.war.WarCommandHandler;
|
||||||
|
|
||||||
public class ResetZoneCommand extends AbstractZoneMakerCommand {
|
public class ResetZoneCommand extends AbstractZoneMakerCommand {
|
||||||
public ResetZoneCommand(WarCommandHandler handler, CommandSender sender, String[] args) throws NoZoneMakerException {
|
public ResetZoneCommand(WarCommandHandler handler, CommandSender sender, String[] args) throws NotZoneMakerException {
|
||||||
super(handler, sender, args);
|
super(handler, sender, args);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -22,12 +21,12 @@ public class ResetZoneCommand extends AbstractZoneMakerCommand {
|
|||||||
if (this.args.length == 1) {
|
if (this.args.length == 1) {
|
||||||
zone = Warzone.getZoneByName(this.args[0]);
|
zone = Warzone.getZoneByName(this.args[0]);
|
||||||
} else if (this.args.length == 0) {
|
} else if (this.args.length == 0) {
|
||||||
if (!(this.sender instanceof Player)) {
|
if (!(this.getSender() instanceof Player)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
zone = Warzone.getZoneByLocation((Player) this.sender);
|
zone = Warzone.getZoneByLocation((Player) this.getSender());
|
||||||
if (zone == null) {
|
if (zone == null) {
|
||||||
ZoneLobby lobby = ZoneLobby.getLobbyByLocation((Player) this.sender);
|
ZoneLobby lobby = ZoneLobby.getLobbyByLocation((Player) this.getSender());
|
||||||
if (lobby == null) {
|
if (lobby == null) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -7,21 +7,21 @@ import com.tommytony.war.Monument;
|
|||||||
import com.tommytony.war.Warzone;
|
import com.tommytony.war.Warzone;
|
||||||
import com.tommytony.war.mappers.WarzoneMapper;
|
import com.tommytony.war.mappers.WarzoneMapper;
|
||||||
|
|
||||||
import bukkit.tommytony.war.NoZoneMakerException;
|
|
||||||
import bukkit.tommytony.war.WarCommandHandler;
|
import bukkit.tommytony.war.WarCommandHandler;
|
||||||
|
|
||||||
public class SetMonumentCommand extends AbstractZoneMakerCommand {
|
public class SetMonumentCommand extends AbstractZoneMakerCommand {
|
||||||
public SetMonumentCommand(WarCommandHandler handler, CommandSender sender, String[] args) throws NoZoneMakerException {
|
public SetMonumentCommand(WarCommandHandler handler, CommandSender sender, String[] args) throws NotZoneMakerException {
|
||||||
super(handler, sender, args);
|
super(handler, sender, args);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean handle() {
|
public boolean handle() {
|
||||||
if (!(this.sender instanceof Player)) {
|
if (!(this.getSender() instanceof Player)) {
|
||||||
|
this.badMsg("You can't do this if you are not in-game.");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
Player player = (Player) this.sender;
|
Player player = (Player) this.getSender();
|
||||||
|
|
||||||
if (this.args.length != 1) {
|
if (this.args.length != 1) {
|
||||||
return false;
|
return false;
|
||||||
|
@ -9,21 +9,21 @@ import com.tommytony.war.TeamKinds;
|
|||||||
import com.tommytony.war.Warzone;
|
import com.tommytony.war.Warzone;
|
||||||
import com.tommytony.war.mappers.WarzoneMapper;
|
import com.tommytony.war.mappers.WarzoneMapper;
|
||||||
|
|
||||||
import bukkit.tommytony.war.NoZoneMakerException;
|
|
||||||
import bukkit.tommytony.war.WarCommandHandler;
|
import bukkit.tommytony.war.WarCommandHandler;
|
||||||
|
|
||||||
public class SetTeamCommand extends AbstractZoneMakerCommand {
|
public class SetTeamCommand extends AbstractZoneMakerCommand {
|
||||||
public SetTeamCommand(WarCommandHandler handler, CommandSender sender, String[] args) throws NoZoneMakerException {
|
public SetTeamCommand(WarCommandHandler handler, CommandSender sender, String[] args) throws NotZoneMakerException {
|
||||||
super(handler, sender, args);
|
super(handler, sender, args);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean handle() {
|
public boolean handle() {
|
||||||
if (!(this.sender instanceof Player)) {
|
if (!(this.getSender() instanceof Player)) {
|
||||||
|
this.badMsg("You can't do this if you are not in-game.");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
Player player = (Player) this.sender;
|
Player player = (Player) this.getSender();
|
||||||
|
|
||||||
if (this.args.length != 1) {
|
if (this.args.length != 1) {
|
||||||
return false;
|
return false;
|
||||||
@ -47,8 +47,6 @@ public class SetTeamCommand extends AbstractZoneMakerCommand {
|
|||||||
zone.getTeams().add(newTeam);
|
zone.getTeams().add(newTeam);
|
||||||
if (zone.getLobby() != null) {
|
if (zone.getLobby() != null) {
|
||||||
zone.getLobby().getVolume().resetBlocks();
|
zone.getLobby().getVolume().resetBlocks();
|
||||||
// warzone.getVolume().resetWallBlocks(warzone.getLobby().getWall());
|
|
||||||
// warzone.addZoneOutline(warzone.getLobby().getWall());
|
|
||||||
zone.getLobby().initialize();
|
zone.getLobby().initialize();
|
||||||
}
|
}
|
||||||
newTeam.setTeamSpawn(player.getLocation());
|
newTeam.setTeamSpawn(player.getLocation());
|
||||||
|
@ -10,21 +10,21 @@ import com.tommytony.war.TeamKinds;
|
|||||||
import com.tommytony.war.Warzone;
|
import com.tommytony.war.Warzone;
|
||||||
import com.tommytony.war.mappers.WarzoneMapper;
|
import com.tommytony.war.mappers.WarzoneMapper;
|
||||||
|
|
||||||
import bukkit.tommytony.war.NoZoneMakerException;
|
|
||||||
import bukkit.tommytony.war.WarCommandHandler;
|
import bukkit.tommytony.war.WarCommandHandler;
|
||||||
|
|
||||||
public class SetTeamFlagCommand extends AbstractZoneMakerCommand {
|
public class SetTeamFlagCommand extends AbstractZoneMakerCommand {
|
||||||
public SetTeamFlagCommand(WarCommandHandler handler, CommandSender sender, String[] args) throws NoZoneMakerException {
|
public SetTeamFlagCommand(WarCommandHandler handler, CommandSender sender, String[] args) throws NotZoneMakerException {
|
||||||
super(handler, sender, args);
|
super(handler, sender, args);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean handle() {
|
public boolean handle() {
|
||||||
if (!(this.sender instanceof Player)) {
|
if (!(this.getSender() instanceof Player)) {
|
||||||
|
this.badMsg("You can't do this if you are not in-game.");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
Player player = (Player) this.sender;
|
Player player = (Player) this.getSender();
|
||||||
|
|
||||||
if (this.args.length != 1) {
|
if (this.args.length != 1) {
|
||||||
return false;
|
return false;
|
||||||
|
@ -5,13 +5,12 @@ import org.bukkit.entity.Player;
|
|||||||
|
|
||||||
import com.tommytony.war.mappers.WarMapper;
|
import com.tommytony.war.mappers.WarMapper;
|
||||||
|
|
||||||
import bukkit.tommytony.war.NoZoneMakerException;
|
|
||||||
import bukkit.tommytony.war.War;
|
import bukkit.tommytony.war.War;
|
||||||
import bukkit.tommytony.war.WarCommandHandler;
|
import bukkit.tommytony.war.WarCommandHandler;
|
||||||
|
|
||||||
public class SetWarConfigCommand extends AbstractZoneMakerCommand {
|
public class SetWarConfigCommand extends AbstractZoneMakerCommand {
|
||||||
|
|
||||||
public SetWarConfigCommand(WarCommandHandler handler, CommandSender sender, String[] args) throws NoZoneMakerException {
|
public SetWarConfigCommand(WarCommandHandler handler, CommandSender sender, String[] args) throws NotZoneMakerException {
|
||||||
super(handler, sender, args);
|
super(handler, sender, args);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -20,14 +19,13 @@ public class SetWarConfigCommand extends AbstractZoneMakerCommand {
|
|||||||
if (this.args.length == 0) {
|
if (this.args.length == 0) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (!(this.sender instanceof Player))
|
if (!(this.getSender() instanceof Player)) {
|
||||||
{
|
|
||||||
return true;
|
return true;
|
||||||
// TODO: Maybe move rallypoint to warzone setting
|
// TODO: Maybe move rallypoint to warzone setting
|
||||||
// TODO: The rallypoint is the only thing that prevents this from being used from cli
|
// TODO: The rallypoint is the only thing that prevents this from being used from cli
|
||||||
}
|
}
|
||||||
|
|
||||||
if (War.war.updateFromNamedParams((Player) this.sender, this.args)) {
|
if (War.war.updateFromNamedParams((Player) this.getSender(), this.args)) {
|
||||||
WarMapper.save();
|
WarMapper.save();
|
||||||
this.msg("War config saved.");
|
this.msg("War config saved.");
|
||||||
} else {
|
} else {
|
||||||
|
@ -7,25 +7,25 @@ import com.tommytony.war.WarHub;
|
|||||||
import com.tommytony.war.Warzone;
|
import com.tommytony.war.Warzone;
|
||||||
import com.tommytony.war.mappers.WarMapper;
|
import com.tommytony.war.mappers.WarMapper;
|
||||||
|
|
||||||
import bukkit.tommytony.war.NoZoneMakerException;
|
|
||||||
import bukkit.tommytony.war.War;
|
import bukkit.tommytony.war.War;
|
||||||
import bukkit.tommytony.war.WarCommandHandler;
|
import bukkit.tommytony.war.WarCommandHandler;
|
||||||
|
|
||||||
public class SetWarHubCommand extends AbstractZoneMakerCommand {
|
public class SetWarHubCommand extends AbstractZoneMakerCommand {
|
||||||
public SetWarHubCommand(WarCommandHandler handler, CommandSender sender, String[] args) throws NoZoneMakerException {
|
public SetWarHubCommand(WarCommandHandler handler, CommandSender sender, String[] args) throws NotZoneMakerException {
|
||||||
super(handler, sender, args);
|
super(handler, sender, args);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean handle() {
|
public boolean handle() {
|
||||||
if (!(this.sender instanceof Player)) {
|
if (!(this.getSender() instanceof Player)) {
|
||||||
|
this.badMsg("You can't do this if you are not in-game.");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.args.length != 0) {
|
if (this.args.length != 0) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
Player player = (Player) this.sender;
|
Player player = (Player) this.getSender();
|
||||||
|
|
||||||
if (War.war.getWarzones().size() > 0) {
|
if (War.war.getWarzones().size() > 0) {
|
||||||
if (War.war.getWarHub() != null) {
|
if (War.war.getWarHub() != null) {
|
||||||
|
@ -5,23 +5,23 @@ import org.bukkit.entity.Player;
|
|||||||
|
|
||||||
import com.tommytony.war.ZoneSetter;
|
import com.tommytony.war.ZoneSetter;
|
||||||
|
|
||||||
import bukkit.tommytony.war.NoZoneMakerException;
|
|
||||||
import bukkit.tommytony.war.War;
|
import bukkit.tommytony.war.War;
|
||||||
import bukkit.tommytony.war.WarCommandHandler;
|
import bukkit.tommytony.war.WarCommandHandler;
|
||||||
|
|
||||||
public class SetZoneCommand extends AbstractZoneMakerCommand {
|
public class SetZoneCommand extends AbstractZoneMakerCommand {
|
||||||
|
|
||||||
public SetZoneCommand(WarCommandHandler handler, CommandSender sender, String[] args) throws NoZoneMakerException {
|
public SetZoneCommand(WarCommandHandler handler, CommandSender sender, String[] args) throws NotZoneMakerException {
|
||||||
super(handler, sender, args);
|
super(handler, sender, args);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean handle() {
|
public boolean handle() {
|
||||||
if (!(this.sender instanceof Player)) {
|
if (!(this.getSender() instanceof Player)) {
|
||||||
return false;
|
this.badMsg("You can't do this if you are not in-game.");
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
Player player = (Player) this.sender;
|
Player player = (Player) this.getSender();
|
||||||
|
|
||||||
if (this.args.length == 0) {
|
if (this.args.length == 0) {
|
||||||
return false;
|
return false;
|
||||||
|
@ -8,28 +8,28 @@ import com.tommytony.war.Warzone;
|
|||||||
import com.tommytony.war.ZoneLobby;
|
import com.tommytony.war.ZoneLobby;
|
||||||
import com.tommytony.war.mappers.WarzoneMapper;
|
import com.tommytony.war.mappers.WarzoneMapper;
|
||||||
|
|
||||||
import bukkit.tommytony.war.NoZoneMakerException;
|
|
||||||
import bukkit.tommytony.war.War;
|
import bukkit.tommytony.war.War;
|
||||||
import bukkit.tommytony.war.WarCommandHandler;
|
import bukkit.tommytony.war.WarCommandHandler;
|
||||||
|
|
||||||
public class SetZoneLobbyCommand extends AbstractZoneMakerCommand {
|
public class SetZoneLobbyCommand extends AbstractZoneMakerCommand {
|
||||||
|
|
||||||
public SetZoneLobbyCommand(WarCommandHandler handler, CommandSender sender, String[] args) throws NoZoneMakerException {
|
public SetZoneLobbyCommand(WarCommandHandler handler, CommandSender sender, String[] args) throws NotZoneMakerException {
|
||||||
super(handler, sender, args);
|
super(handler, sender, args);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean handle() {
|
public boolean handle() {
|
||||||
if (!(this.sender instanceof Player)) {
|
if (!(this.getSender() instanceof Player)) {
|
||||||
|
this.badMsg("You can't do this if you are not in-game.");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
if (this.args.length != 1) {
|
if (this.args.length != 1) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
Player player = (Player) this.sender;
|
Player player = (Player) this.getSender();
|
||||||
Warzone zone = Warzone.getZoneByLocation((Player) this.sender);
|
Warzone zone = Warzone.getZoneByLocation((Player) this.getSender());
|
||||||
if (zone == null) {
|
if (zone == null) {
|
||||||
ZoneLobby lobby = ZoneLobby.getLobbyByLocation((Player) this.sender);
|
ZoneLobby lobby = ZoneLobby.getLobbyByLocation((Player) this.getSender());
|
||||||
if (lobby == null) {
|
if (lobby == null) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -20,11 +20,12 @@ public class TeamCommand extends AbstractWarCommand {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean handle() {
|
public boolean handle() {
|
||||||
if (!(this.sender instanceof Player)) {
|
if (!(this.getSender() instanceof Player)) {
|
||||||
|
this.badMsg("You can't do this if you are not in-game.");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
Player player = (Player) this.sender;
|
Player player = (Player) this.getSender();
|
||||||
Team playerTeam = Team.getTeamByPlayerName(player.getName());
|
Team playerTeam = Team.getTeamByPlayerName(player.getName());
|
||||||
if (playerTeam == null) {
|
if (playerTeam == null) {
|
||||||
return false;
|
return false;
|
||||||
|
@ -19,12 +19,12 @@ public class TeamsCommand extends AbstractWarCommand {
|
|||||||
if (this.args.length == 1) {
|
if (this.args.length == 1) {
|
||||||
zone = Warzone.getZoneByName(this.args[0]);
|
zone = Warzone.getZoneByName(this.args[0]);
|
||||||
} else if (this.args.length == 0) {
|
} else if (this.args.length == 0) {
|
||||||
if (!(this.sender instanceof Player)) {
|
if (!(this.getSender() instanceof Player)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
zone = Warzone.getZoneByLocation((Player) this.sender);
|
zone = Warzone.getZoneByLocation((Player) this.getSender());
|
||||||
if (zone == null) {
|
if (zone == null) {
|
||||||
ZoneLobby lobby = ZoneLobby.getLobbyByLocation((Player) this.sender);
|
ZoneLobby lobby = ZoneLobby.getLobbyByLocation((Player) this.getSender());
|
||||||
if (lobby == null) {
|
if (lobby == null) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -2,12 +2,11 @@ package bukkit.tommytony.war.command;
|
|||||||
|
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
|
|
||||||
import bukkit.tommytony.war.NoZoneMakerException;
|
|
||||||
import bukkit.tommytony.war.War;
|
import bukkit.tommytony.war.War;
|
||||||
import bukkit.tommytony.war.WarCommandHandler;
|
import bukkit.tommytony.war.WarCommandHandler;
|
||||||
|
|
||||||
public class UnloadWarCommand extends AbstractZoneMakerCommand {
|
public class UnloadWarCommand extends AbstractZoneMakerCommand {
|
||||||
public UnloadWarCommand(WarCommandHandler handler, CommandSender sender, String[] args) throws NoZoneMakerException {
|
public UnloadWarCommand(WarCommandHandler handler, CommandSender sender, String[] args) throws NotZoneMakerException {
|
||||||
super(handler, sender, args);
|
super(handler, sender, args);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -15,17 +15,18 @@ public class WarhubCommand extends AbstractWarCommand {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean handle() {
|
public boolean handle() {
|
||||||
if (!(this.sender instanceof Player)) {
|
if (!(this.getSender() instanceof Player)) {
|
||||||
|
this.badMsg("You can't do this if you are not in-game.");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
if (this.args.length != 0) {
|
if (this.args.length != 0) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
Player player = (Player) this.sender;
|
Player player = (Player) this.getSender();
|
||||||
if (War.war.getWarHub() == null) {
|
if (War.war.getWarHub() == null) {
|
||||||
this.msg("No warhub on this War server. Try /zones and /zone.");
|
this.badMsg("No warhub on this War server. Try /zones and /zone.");
|
||||||
} else if (!War.war.canWarp(player)) {
|
} else if (!War.war.canWarp(player)) {
|
||||||
this.msg("Can't warp to warhub. You need the 'war.warp' permission.");
|
this.badMsg("Can't warp to warhub. You need the 'war.warp' permission.");
|
||||||
} else {
|
} else {
|
||||||
Warzone playerWarzone = Warzone.getZoneByPlayerName(player.getName());
|
Warzone playerWarzone = Warzone.getZoneByPlayerName(player.getName());
|
||||||
if (playerWarzone != null) { // was in zone
|
if (playerWarzone != null) { // was in zone
|
||||||
|
@ -15,20 +15,21 @@ public class WarzoneCommand extends AbstractWarCommand {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean handle() {
|
public boolean handle() {
|
||||||
if (!(this.sender instanceof Player)) {
|
if (!(this.getSender() instanceof Player)) {
|
||||||
|
this.badMsg("You can't do this if you are not in-game.");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.args.length != 1) {
|
if (this.args.length != 1) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
Player player = (Player) this.sender;
|
Player player = (Player) this.getSender();
|
||||||
|
|
||||||
if (!War.war.canWarp(player)) {
|
if (!War.war.canWarp(player)) {
|
||||||
this.msg("Can't warp to zone. You need the 'war.warp' permission.");
|
this.badMsg("Can't warp to zone. You need the 'war.warp' permission.");
|
||||||
} else {
|
} else {
|
||||||
Warzone warzone = Warzone.getZoneByName(this.args[0]);
|
Warzone warzone = Warzone.getZoneByName(this.args[0]);
|
||||||
if (warzone.getTeleport() != null) {
|
if (warzone != null && warzone.getTeleport() != null) {
|
||||||
Warzone playerWarzone = Warzone.getZoneByPlayerName(player.getName());
|
Warzone playerWarzone = Warzone.getZoneByPlayerName(player.getName());
|
||||||
if (playerWarzone != null) {
|
if (playerWarzone != null) {
|
||||||
playerWarzone.handlePlayerLeave(player, warzone.getTeleport(), true);
|
playerWarzone.handlePlayerLeave(player, warzone.getTeleport(), true);
|
||||||
@ -38,7 +39,7 @@ public class WarzoneCommand extends AbstractWarCommand {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.msg("No such warzone.");
|
this.badMsg("No such warzone.");
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -39,7 +39,7 @@ public class WarzonesCommand extends AbstractWarCommand {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
this.msg(warzonesMessage + ((this.sender instanceof Player) ? " Use /zone <zone-name> to teleport to a warzone." : ""));
|
this.msg(warzonesMessage + ((this.getSender() instanceof Player) ? " Use /zone <zone-name> to teleport to a warzone." : ""));
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -5,17 +5,13 @@ import org.bukkit.entity.Player;
|
|||||||
|
|
||||||
import com.tommytony.war.mappers.WarMapper;
|
import com.tommytony.war.mappers.WarMapper;
|
||||||
|
|
||||||
import bukkit.tommytony.war.NoZoneMakerException;
|
|
||||||
import bukkit.tommytony.war.War;
|
import bukkit.tommytony.war.War;
|
||||||
import bukkit.tommytony.war.WarCommandHandler;
|
import bukkit.tommytony.war.WarCommandHandler;
|
||||||
|
|
||||||
public class ZoneMakerCommand extends AbstractWarCommand {
|
public class ZoneMakerCommand extends AbstractWarCommand {
|
||||||
|
|
||||||
public ZoneMakerCommand(WarCommandHandler handler, CommandSender sender, String[] args) throws NoZoneMakerException {
|
public ZoneMakerCommand(WarCommandHandler handler, CommandSender sender, String[] args) throws NotZoneMakerException {
|
||||||
super(handler, sender, args);
|
super(handler, sender, args);
|
||||||
// ffffuuuu java, fffuuu!
|
|
||||||
// Just because you want the invoking of super-constructor as the very first statement
|
|
||||||
// I had to rewrite the complete NoZoneMakerException thingy :(
|
|
||||||
if (sender instanceof Player) {
|
if (sender instanceof Player) {
|
||||||
if (!War.war.isZoneMaker((Player) sender)) {
|
if (!War.war.isZoneMaker((Player) sender)) {
|
||||||
for (String name : War.war.getZoneMakersImpersonatingPlayers()) {
|
for (String name : War.war.getZoneMakersImpersonatingPlayers()) {
|
||||||
@ -23,17 +19,18 @@ public class ZoneMakerCommand extends AbstractWarCommand {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
throw new NoZoneMakerException();
|
throw new NotZoneMakerException();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean handle() {
|
public boolean handle() {
|
||||||
if (!(this.sender instanceof Player)) {
|
if (!(this.getSender() instanceof Player)) {
|
||||||
|
this.badMsg("You can't do this if you are not in-game.");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
Player player = (Player) this.sender;
|
Player player = (Player) this.getSender();
|
||||||
|
|
||||||
if (War.war.isZoneMaker(player)) {
|
if (War.war.isZoneMaker(player)) {
|
||||||
if (this.args.length == 0) {
|
if (this.args.length == 0) {
|
||||||
|
@ -86,7 +86,7 @@ public class Warzone {
|
|||||||
|
|
||||||
public static Warzone getZoneByName(String name) {
|
public static Warzone getZoneByName(String name) {
|
||||||
for (Warzone warzone : War.war.getWarzones()) {
|
for (Warzone warzone : War.war.getWarzones()) {
|
||||||
if (warzone.getName().toLowerCase().equals(name.toLowerCase())) {
|
if (warzone.getName().toLowerCase().startsWith(name.toLowerCase())) {
|
||||||
return warzone;
|
return warzone;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,7 @@ package com.tommytony.war.utils;
|
|||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.command.CommandSender;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The purpose of this tool is twofold: 1: Avoid client crashes due to bad color formating. 2: Make color continue on word wrapping
|
* The purpose of this tool is twofold: 1: Avoid client crashes due to bad color formating. 2: Make color continue on word wrapping
|
||||||
@ -123,7 +123,7 @@ public class ChatFixUtil {
|
|||||||
// ----------------------------------------------//
|
// ----------------------------------------------//
|
||||||
// One player
|
// One player
|
||||||
// ----------------------------------------------//
|
// ----------------------------------------------//
|
||||||
public static void sendMessage(Player player, String message, boolean fix) {
|
public static void sendMessage(CommandSender player, String message, boolean fix) {
|
||||||
if (fix) {
|
if (fix) {
|
||||||
List<String> messages = ChatFixUtil.fix(message);
|
List<String> messages = ChatFixUtil.fix(message);
|
||||||
ChatFixUtil.sendMessage(player, messages, false);
|
ChatFixUtil.sendMessage(player, messages, false);
|
||||||
@ -134,7 +134,7 @@ public class ChatFixUtil {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void sendMessage(Player player, List<String> messages, boolean fix) {
|
public static void sendMessage(CommandSender player, List<String> messages, boolean fix) {
|
||||||
if (fix) {
|
if (fix) {
|
||||||
messages = ChatFixUtil.fix(messages);
|
messages = ChatFixUtil.fix(messages);
|
||||||
}
|
}
|
||||||
@ -143,29 +143,29 @@ public class ChatFixUtil {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void sendMessage(Player player, String message) {
|
public static void sendMessage(CommandSender player, String message) {
|
||||||
ChatFixUtil.sendMessage(player, message, true);
|
ChatFixUtil.sendMessage(player, message, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void sendMessage(Player player, List<String> messages) {
|
public static void sendMessage(CommandSender player, List<String> messages) {
|
||||||
ChatFixUtil.sendMessage(player, messages, true);
|
ChatFixUtil.sendMessage(player, messages, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
// ----------------------------------------------//
|
// ----------------------------------------------//
|
||||||
// Many Players
|
// Many CommandSenders
|
||||||
// ----------------------------------------------//
|
// ----------------------------------------------//
|
||||||
public static void sendMessage(Collection<Player> players, String message, boolean fix) {
|
public static void sendMessage(Collection<CommandSender> players, String message, boolean fix) {
|
||||||
if (fix) {
|
if (fix) {
|
||||||
List<String> messages = ChatFixUtil.fix(message);
|
List<String> messages = ChatFixUtil.fix(message);
|
||||||
ChatFixUtil.sendMessage(players, messages, false);
|
ChatFixUtil.sendMessage(players, messages, false);
|
||||||
} else {
|
} else {
|
||||||
for (Player player : players) {
|
for (CommandSender player : players) {
|
||||||
ChatFixUtil.sendMessage(player, message, false);
|
ChatFixUtil.sendMessage(player, message, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void sendMessage(Collection<Player> players, List<String> messages, boolean fix) {
|
public static void sendMessage(Collection<CommandSender> players, List<String> messages, boolean fix) {
|
||||||
if (fix) {
|
if (fix) {
|
||||||
messages = ChatFixUtil.fix(messages);
|
messages = ChatFixUtil.fix(messages);
|
||||||
}
|
}
|
||||||
@ -175,11 +175,11 @@ public class ChatFixUtil {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void sendMessage(Collection<Player> players, String message) {
|
public static void sendMessage(Collection<CommandSender> players, String message) {
|
||||||
ChatFixUtil.sendMessage(players, message, true);
|
ChatFixUtil.sendMessage(players, message, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void sendMessage(Collection<Player> players, List<String> messages) {
|
public static void sendMessage(Collection<CommandSender> players, List<String> messages) {
|
||||||
ChatFixUtil.sendMessage(players, messages, true);
|
ChatFixUtil.sendMessage(players, messages, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -7,166 +7,188 @@ main: bukkit.tommytony.war.War
|
|||||||
commands:
|
commands:
|
||||||
# Player commands
|
# Player commands
|
||||||
warzones:
|
warzones:
|
||||||
description: (War) Lists the warzones on the server. Each warzone is an independent arena.
|
description: War> Lists the warzones on the server. Each warzone is an independent arena.
|
||||||
usage: /warzones
|
usage: Lists the warzones on the server. Each warzone is an independent arena.
|
||||||
|
Ex - /warzones
|
||||||
zones:
|
zones:
|
||||||
description: (War) Shortcut for /warzones.
|
description: War> Shortcut for /warzones.
|
||||||
usage: /zones
|
usage: Lists the warzones on the server. Each warzone is an independent arena.
|
||||||
|
Ex - /zones
|
||||||
warzone:
|
warzone:
|
||||||
description: (War) Teleports you to the specified warzone's lobby.
|
description: War> Teleports you to the specified warzone's lobby.
|
||||||
usage: /warzone <zone-name>
|
usage: Teleports you to the specified warzone's lobby.
|
||||||
|
Ex - /warzone <zone-name>
|
||||||
zone:
|
zone:
|
||||||
description: (War) Shortcut for /warzone.
|
description: War> Shortcut for /warzone.
|
||||||
usage: /zone <zone-name>
|
usage: Teleports you to the specified warzone's lobby.
|
||||||
|
Ex - /zone <zone-name>
|
||||||
warhub:
|
warhub:
|
||||||
description: (War) Teleports you to the warhub, if it exists. The warhub offers portals to reach each warzone on the server.
|
description: War> Teleports you to the warhub, if it exists. The warhub offers portals to reach each warzone on the server.
|
||||||
usage: /warhub
|
usage: Teleports you to the warhub, if it exists.
|
||||||
|
Ex - /warhub
|
||||||
teams:
|
teams:
|
||||||
description: (War) Lists the teams in the warzone.
|
description: War> Lists the teams in the warzone.
|
||||||
usage:
|
usage: Lists the teams in the warzone. Use zone name when outside warzone.
|
||||||
- /teams [zone-name]
|
Ex - /teams [zone-name]
|
||||||
join:
|
join:
|
||||||
description: (War) Use to change teams. Also used instead of walking in the team gate in the lobby.
|
description: War> Use to change teams. Also used instead of walking in the team gate in the lobby.
|
||||||
usage:
|
usage: Use to change teams. Also used instead of walking in the team gate in the lobby. Must be standing in warzone or lobby.
|
||||||
- Must be standing in warzone or lobby.
|
Ex - /join <team-color>
|
||||||
- /join <team-color>
|
|
||||||
leave:
|
leave:
|
||||||
description: (War) Use to leave a warzone. Teleports you back to the lobby.
|
description: War> Use to leave a warzone. Teleports you back to the lobby.
|
||||||
usage:
|
usage: Use to leave a warzone. Teleports you back to the lobby. Must be in team already.
|
||||||
- Must be in team already.
|
Ex - /leave
|
||||||
- /leave
|
|
||||||
team:
|
team:
|
||||||
description: (War) Team chat.
|
description: War> Team chat.
|
||||||
usage: /team <Message>
|
usage: Team chat.
|
||||||
|
Ex - /team <message>
|
||||||
# Warzone maker commands (must have the 'war.*' permission or be added as a zone-maker in /plugins/War/war.txt
|
# Warzone maker commands (must have the 'war.*' permission or be added as a zone-maker in /plugins/War/war.txt
|
||||||
# 1- Battle-related commands
|
# 1- Battle-related commands
|
||||||
nextbattle:
|
nextbattle:
|
||||||
description: (War) Warzone blocks are restored (from memory). Teams are respawned.
|
description: War> Warzone blocks are restored, teams are respawned but score remains unaffected.
|
||||||
usage:
|
usage: Warzone blocks are restored, teams are respawned but score remains unaffected. Provide a zone name if not standing in warzone or lobby.
|
||||||
- Must be standing in warzone or lobby
|
Ex - /nextbattle [zone-name]
|
||||||
- /nextbattle [zone-name]
|
|
||||||
# 2- Warzone creation commands
|
# 2- Warzone creation commands
|
||||||
setzone:
|
setzone:
|
||||||
description: (War) Use to create a warzone. Lobby is created and blocks are saved when the second corner is set.
|
description: War> Use to create a warzone. Lobby is created and blocks are saved when the second corner is set.
|
||||||
usage:
|
usage: Use to create a warzone. Lobby is created and blocks are saved when the second corner is set. Warzones must be at least 10 blocks wide in all directions.
|
||||||
- =<Classic/Northwest-Southeast mode>=
|
Ex -
|
||||||
- /setzone <zone-name> <northwest/southeast/nw/se>
|
==Wand Cuboid mode==>
|
||||||
- ex: first, /setzone ziggy se, then, /setzone ziggy nw
|
1) /setzone <zone-name> to get wooden sword,
|
||||||
- In classic mode, corner1 defaults to the topmost block (127) in the northwest and corner2 to the bottommost block (0) in the southeast.
|
2) Left-click to select or move corner1,
|
||||||
- =<Wand Cuboid mode>=
|
3) Right-click to select or move corner2.
|
||||||
- 1) /setzone <zone-name> wand
|
Turn off wand by dropping the wooden sword.
|
||||||
- 2) Left-click to select or move corner1
|
==Wandless Cuboid mode==>
|
||||||
- 3) Right-click to select or move corner2
|
/setzone <zone-name> <corner1/corner2/c1/c2/pos1/pos2>
|
||||||
- Turn off wand by dropping the wooden sword.
|
|
||||||
- =<Wandless Cuboid mode>=
|
|
||||||
- /setzone <zone-name> <corner1/corner2/c1/c2/pos1/pos2>
|
|
||||||
- The three modes can be mixed and matched.
|
|
||||||
- Warzones must be at least 10 blocks wide in all directions.
|
|
||||||
savezone:
|
savezone:
|
||||||
description: (War) Persists changes made to the warzone since the last save. Config can be set with named parameters.
|
description: War> Persists changes made to the warzone since the last save. Config can be set with named parameters.
|
||||||
usage:
|
usage: Persists changes made to the warzone since the last save. Config can be set with named parameters. Provide a zone name if not standing in warzone or lobby.
|
||||||
- Must be standing in warzone or lobby
|
Ex -
|
||||||
- /savezone => Basic save
|
/savezone => Basic save,
|
||||||
- /savezone lifepool:8 teamsize:5 maxscore:7 autoassign:on outline:off ff:on blockheads:off spawnstyle:<big/flat/small> unbreakable:on nocreatures:on disabled:on
|
/savezone lifepool:8 teamsize:5 maxscore:7 autoassign:on outline:off ff:on blockheads:off spawnstyle:<big/flat/small> unbreakable:on nocreatures:on disabled:on,
|
||||||
- /savezone loadout:default => sets the respawn inventory to your current items
|
/savezone loadout:default => sets the respawn inventory to your current items,
|
||||||
- /savezone reward:default => sets the winner's reward to your current items
|
/savezone reward:default => sets the winner's reward to your current items.
|
||||||
setzonelobby:
|
setzonelobby:
|
||||||
description: (War) Creates or changes the position of the warzone lobby.
|
description: War> Creates or changes the position of the warzone lobby.
|
||||||
usage:
|
usage: Creates or changes the position of the warzone lobby.
|
||||||
- =<Attached lobby>
|
Ex -
|
||||||
- Must be standing in warzone or lobby.
|
==Attached lobby==>
|
||||||
- /setzonelobby <north/east/south/west/n/e/s/w>
|
Must be standing in warzone or lobby.
|
||||||
- =<External lobby>
|
/setzonelobby <north/east/south/west/n/e/s/w>
|
||||||
- /setzonelobby <zone-name>
|
==Detached lobby==>
|
||||||
|
Must be standing outside warzone or lobby.
|
||||||
|
/setzonelobby <zone-name>
|
||||||
setteam:
|
setteam:
|
||||||
description: (War) Creates or moves a team spawn. The lobby is updated. Teams are diamond, iron or gold etc.
|
description: War> Creates or moves a team spawn. The lobby is updated.
|
||||||
usage:
|
usage: Creates or moves a team spawn. The lobby is updated. Must be standing in warzone.
|
||||||
- Must be standing in warzone.
|
Ex -
|
||||||
- /setteam <diamond/iron/gold/white/orange/magenta/blue/green/pink/gray/purple/navy/brown/darkgreen/red/black>
|
/setteam <diamond/iron/gold/white/orange/magenta/blue/green/pink/gray/purple/navy/brown/darkgreen/red/black>
|
||||||
setmonument:
|
setmonument:
|
||||||
description: (War) Creates or moves a monument.
|
description: War> Creates or moves a monument.
|
||||||
usage:
|
usage: Creates or moves a monument. Must be standing in warzone.
|
||||||
- Must be standing in warzone.
|
Ex -
|
||||||
- /setmonument <monument-name>
|
/setmonument <monument-name>
|
||||||
setteamflag:
|
setteamflag:
|
||||||
description: (War) Creates/moves a team flag post for CTF.
|
description: War> Creates/moves a team flag post for CTF.
|
||||||
usage:
|
usage: Creates/moves a team flag post for CTF. Must be standing in warzone.
|
||||||
- Must be standing in warzone.
|
Ex -
|
||||||
- /setteamflag <team-color>
|
/setteamflag <team-color>
|
||||||
resetzone:
|
resetzone:
|
||||||
description: (War) Reloads zone blocks from disks. Everyone is ported back to the lobby.
|
description: War> Reloads zone blocks from disk. Everyone is teleported back to the lobby.
|
||||||
usage:
|
usage: Reloads zone blocks from disk. Everyone is teleported back to the lobby. Provide a zone name if not standing in warzone or lobby.
|
||||||
- Must be standing in warzone or lobby, or provide name
|
Ex -
|
||||||
- /resetzone [zone-name]
|
/resetzone [zone-name]
|
||||||
deletezone:
|
deletezone:
|
||||||
description: (War) Deletes the zone, resets all blocks.
|
description: War> Deletes the zone, resets all blocks.
|
||||||
usage:
|
usage: Deletes the zone after resetting all blocks. Provide a zone name if not standing in warzone or lobby.
|
||||||
- Must be standing in warzone or lobby, or provide name
|
Ex -
|
||||||
- /deletezone [zone-name]
|
/deletezone [zone-name]
|
||||||
deleteteam:
|
deleteteam:
|
||||||
description: (War) Deletes the team. Team must exist.
|
description: War> Deletes the team. Team must exist.
|
||||||
usage:
|
usage: Deletes the team. Team must exist. Provide a zone name if not standing in warzone or lobby.
|
||||||
- Must be standing in warzone or lobby, or provide warzone-name
|
Ex -
|
||||||
- /deleteteam [zone-name] <team-color>
|
/deleteteam [zone-name] <team-color>
|
||||||
deletemonument:
|
deletemonument:
|
||||||
description: (War) Deletes the monument.
|
description: War> Deletes the monument.
|
||||||
usage:
|
usage: Deletes the monument. Provide a zone name if not standing in warzone or lobby.
|
||||||
- Must be standing in warzone or lobby, or provide warzone-name
|
Ex -
|
||||||
- /deletemonument [zone-name] <monument-name>
|
/deletemonument [zone-name] <monument-name>
|
||||||
setzoneconfig:
|
setzoneconfig:
|
||||||
description: (War) Use named parameters to change the configuration of the warzone. Resets blocks like /nextbattle. Does not save zone blocks like /savezone.
|
description: War> Use named parameters to change the configuration of the warzone. Resets blocks like /nextbattle. Does not save zone blocks like /savezone.
|
||||||
usage:
|
usage: Use named parameters to change the configuration of the warzone. Resets blocks like /nextbattle. Does not save zone blocks like /savezone. Provide a zone name if not standing in warzone or lobby.
|
||||||
- Must be standing in warzone or lobby, or provide warzone-name
|
Ex -
|
||||||
- /setzoneconfig lifepool:8 teamsize:5 maxscore:7 autoassign:on outline:off ff:on blockheads:off spawnstyle:<big/flat/small> unbreakable:on nocreatures:on disabled:on
|
/setzoneconfig lifepool:8 teamsize:5 maxscore:7 autoassign:on outline:off ff:on blockheads:off spawnstyle:<big/flat/small/invisible> unbreakable:on nocreatures:on disabled:on,
|
||||||
- /setzoneconfig loadout:default => sets the respawn inventory to your current items
|
/setzoneconfig loadout:default => sets the respawn inventory to your current items,
|
||||||
- /setzoneconfig reward:default => sets the winner's reward to your current items
|
/setzoneconfig reward:default => sets the winner's reward to your current items
|
||||||
zonecfg:
|
zonecfg:
|
||||||
description: (War) Alias for /setzoneconfig
|
description: War> Alias for /setzoneconfig
|
||||||
usage:
|
usage: Use named parameters to change the configuration of the warzone. Resets blocks like /nextbattle. Does not save zone blocks like /savezone. Provide a zone name if not standing in warzone or lobby.
|
||||||
|
Ex -
|
||||||
|
/setzoneconfig lifepool:8 teamsize:5 maxscore:7 autoassign:on outline:off ff:on blockheads:off spawnstyle:<big/flat/small/invisible> unbreakable:on nocreatures:on disabled:on,
|
||||||
|
/setzoneconfig loadout:default => sets the respawn inventory to your current items,
|
||||||
|
/setzoneconfig reward:default => sets the winner's reward to your current items
|
||||||
zonemaker:
|
zonemaker:
|
||||||
description: (War) Toggles between player mode and zone maker mode. Or gives/removes access to zonemaker commands for another player.
|
description: War> Toggles between player mode and zone maker mode. Or gives/removes access to zonemaker commands for another player.
|
||||||
usage:
|
usage: Toggles between player mode and zone maker mode. Or gives/removes access to zonemaker commands for another player.
|
||||||
- /zonemaker
|
Ex -
|
||||||
- /zonemaker <new-or-kicked-zone-maker-name>
|
/zonemaker
|
||||||
|
/zonemaker <new-or-kicked-zone-maker-name>
|
||||||
zm:
|
zm:
|
||||||
description: (War) Alias for /zonemaker
|
description: War> Alias for /zonemaker
|
||||||
usage:
|
usage: Toggles between player mode and zone maker mode. Or gives/removes access to zonemaker commands for another player.
|
||||||
|
Ex -
|
||||||
|
/zonemaker
|
||||||
|
/zonemaker <new-or-kicked-zone-maker-name>
|
||||||
# 3- War hub
|
# 3- War hub
|
||||||
setwarhub:
|
setwarhub:
|
||||||
description: (War) Create or moves a wall of portals. One portal per warzone. Warzones get a portal back to the warhub.
|
description: War> Create or moves a wall of portals. One portal per warzone. Warzones get a portal back to the warhub.
|
||||||
usage: /setwarhub
|
usage: Create or moves a wall of portals. One portal per warzone. Warzones get a portal back to the warhub.
|
||||||
|
Ex -
|
||||||
|
/setwarhub
|
||||||
deletewarhub:
|
deletewarhub:
|
||||||
description: (War) Deletes the warhub if it exists. Resets all warzone lobbies.
|
description: War> Deletes the warhub if it exists. Resets all warzone lobbies.
|
||||||
usage: /deletewarhub
|
usage: Deletes the warhub if it exists. Resets all warzone lobbies.
|
||||||
|
Ex -
|
||||||
|
/deletewarhub
|
||||||
# 4- Defaults and server configuration
|
# 4- Defaults and server configuration
|
||||||
unloadwar:
|
unloadwar:
|
||||||
description: (War) Disables the War plugin.
|
description: War> Disables the War plugin.
|
||||||
usage: /unloadwar
|
usage: Disables the War plugin.
|
||||||
|
Ex -
|
||||||
|
/unloadwar
|
||||||
loadwar:
|
loadwar:
|
||||||
description: (War) Enables the War plugin.
|
description: War> Enables the War plugin.
|
||||||
usage: /loadwar
|
usage: Enables the War plugin.
|
||||||
|
Ex -
|
||||||
|
/loadwar
|
||||||
setwarconfig:
|
setwarconfig:
|
||||||
description: (War) Change gobal settings and the default warzone configuration values.
|
description: War> Change gobal settings and the default warzone configuration values.
|
||||||
usage:
|
usage: Change gobal settings and the default warzone configuration values.
|
||||||
- /setwarconfig pvpinzonesonly:on buildinzonesonly:on => Global settings
|
Ex -
|
||||||
- /setwarconfig lifepool:8 teamsize:5 maxscore:7 autoassign:on outline:off ff:on blockheads:off spawnstyle:<big/flat/small> unbreakable:on nocreatures:on => Warzone defaults
|
/setwarconfig pvpinzonesonly:on buildinzonesonly:on => Global settings,
|
||||||
- /setwarconfig loadout:default => sets the respawn inventory to your current items
|
/setwarconfig lifepool:8 teamsize:5 maxscore:7 autoassign:on outline:off ff:on blockheads:off spawnstyle:<big/flat/small/invisible> unbreakable:on nocreatures:on => Warzone defaults,
|
||||||
- /setwarconfig reward:default => sets the winner's reward to your current items
|
/setwarconfig loadout:default => sets the respawn inventory to your current items,
|
||||||
- /setwarconfig rallypoint:<warzone-name> => changes when players get teleported at the end of a match for that zone, useful for chaining warzones together in a sequence, or preventing players from rejoining immediately
|
/setwarconfig reward:default => sets the winner's reward to your current items,
|
||||||
|
/setwarconfig rallypoint:<warzone-name> => changes when players get teleported at the end of a match for that zone, useful for chaining warzones together in a sequence, or preventing players from rejoining immediately
|
||||||
warcfg:
|
warcfg:
|
||||||
description: (War) Alias for /setwarconfig
|
description: War> Alias for /setwarconfig
|
||||||
usage:
|
usage: Change gobal settings and the default warzone configuration values.
|
||||||
|
Ex -
|
||||||
|
/setwarconfig pvpinzonesonly:on buildinzonesonly:on => Global settings,
|
||||||
|
/setwarconfig lifepool:8 teamsize:5 maxscore:7 autoassign:on outline:off ff:on blockheads:off spawnstyle:<big/flat/small/invisible> unbreakable:on nocreatures:on => Warzone defaults,
|
||||||
|
/setwarconfig loadout:default => sets the respawn inventory to your current items,
|
||||||
|
/setwarconfig reward:default => sets the winner's reward to your current items,
|
||||||
|
/setwarconfig rallypoint:<warzone-name> => changes when players get teleported at the end of a match for that zone, useful for chaining warzones together in a sequence, or preventing players from rejoining immediately
|
||||||
|
|
||||||
# Fallback
|
# Fallback
|
||||||
war:
|
war:
|
||||||
description: (War) Short War help. Can also be used as a prefix for all War commands as a fallback if they conflict with other plugins.
|
description: War> Short War help. Can also be used as a prefix for all War commands as a fallback if they conflict with other plugins.
|
||||||
usage:
|
usage: War is on. Please pick your battle. Try /warhub, /zones and /zone. Further instructions at war.tommytony.com/instructions.
|
||||||
- /war
|
The /war command can be used as a prefix to all other command as a fallback if they conflict with other plugins. Ex -
|
||||||
- /war setzone ziggy northwest
|
/war,
|
||||||
- /war warhub
|
/war setzone <zone-name>,
|
||||||
- /war zone ziggy
|
/war warhub,
|
||||||
- etc.
|
/war zone <zone-name>
|
||||||
War:
|
War:
|
||||||
description: (War) Same as /war. Used as fallback.
|
description: War> Same as /war. Used as fallback.
|
||||||
usage: See /war.
|
usage: See /war.
|
||||||
#Note: When you /disable War with Essentials, or at shutdown, all warzone blocks will be reset and artifacts will disappear.
|
|
||||||
# When you /enable War, all blocks will be loaded from disk and the War-related artifacts will reappear.
|
|
@ -7,164 +7,188 @@ main: bukkit.tommytony.war.War
|
|||||||
commands:
|
commands:
|
||||||
# Player commands
|
# Player commands
|
||||||
warzones:
|
warzones:
|
||||||
description: (War) Lists the warzones on the server. Each warzone is an independent arena.
|
description: War> Lists the warzones on the server. Each warzone is an independent arena.
|
||||||
usage: /warzones
|
usage: Lists the warzones on the server. Each warzone is an independent arena.
|
||||||
|
Ex - /warzones
|
||||||
zones:
|
zones:
|
||||||
description: (War) Shortcut for /warzones.
|
description: War> Shortcut for /warzones.
|
||||||
usage: /zones
|
usage: Lists the warzones on the server. Each warzone is an independent arena.
|
||||||
|
Ex - /zones
|
||||||
warzone:
|
warzone:
|
||||||
description: (War) Teleports you to the specified warzone's lobby.
|
description: War> Teleports you to the specified warzone's lobby.
|
||||||
usage: /warzone ziggy
|
usage: Teleports you to the specified warzone's lobby.
|
||||||
|
Ex - /warzone <zone-name>
|
||||||
zone:
|
zone:
|
||||||
description: (War) Shortcut for /warzone.
|
description: War> Shortcut for /warzone.
|
||||||
usage: /zone ziggy
|
usage: Teleports you to the specified warzone's lobby.
|
||||||
|
Ex - /zone <zone-name>
|
||||||
warhub:
|
warhub:
|
||||||
description: (War) Teleports you to the warhub, if it exists. The warhub offers portals to reach each warzone on the server.
|
description: War> Teleports you to the warhub, if it exists. The warhub offers portals to reach each warzone on the server.
|
||||||
usage: /warhub
|
usage: Teleports you to the warhub, if it exists.
|
||||||
|
Ex - /warhub
|
||||||
teams:
|
teams:
|
||||||
description: (War) Lists the teams in the warzone.
|
description: War> Lists the teams in the warzone.
|
||||||
usage:
|
usage: Lists the teams in the warzone. Use zone name when outside warzone.
|
||||||
- Must be standing in warzone or lobby.
|
Ex - /teams [zone-name]
|
||||||
- /teams
|
|
||||||
join:
|
join:
|
||||||
description: (War) Use to change teams. Also used instead of walking in the team gate in the lobby.
|
description: War> Use to change teams. Also used instead of walking in the team gate in the lobby.
|
||||||
usage:
|
usage: Use to change teams. Also used instead of walking in the team gate in the lobby. Must be standing in warzone or lobby.
|
||||||
- Must be standing in warzone or lobby.
|
Ex - /join <team-color>
|
||||||
- /join <team color>
|
|
||||||
leave:
|
leave:
|
||||||
description: (War) Use to leave a warzone. Teleports you back to the lobby.
|
description: War> Use to leave a warzone. Teleports you back to the lobby.
|
||||||
usage:
|
usage: Use to leave a warzone. Teleports you back to the lobby. Must be in team already.
|
||||||
- Must be in team already.
|
Ex - /leave
|
||||||
- /leave
|
|
||||||
team:
|
team:
|
||||||
description: (War) Team chat.
|
description: War> Team chat.
|
||||||
usage: /team Leeeroooy!!!
|
usage: Team chat.
|
||||||
|
Ex - /team <message>
|
||||||
# Warzone maker commands (must have the 'war.*' permission or be added as a zone-maker in /plugins/War/war.txt
|
# Warzone maker commands (must have the 'war.*' permission or be added as a zone-maker in /plugins/War/war.txt
|
||||||
# 1- Battle-related commands
|
# 1- Battle-related commands
|
||||||
nextbattle:
|
nextbattle:
|
||||||
description: (War) Warzone blocks are restored (from memory). Teams are respawned.
|
description: War> Warzone blocks are restored, teams are respawned but score remains unaffected.
|
||||||
usage:
|
usage: Warzone blocks are restored, teams are respawned but score remains unaffected. Provide a zone name if not standing in warzone or lobby.
|
||||||
- Must be standing in warzone or lobby
|
Ex - /nextbattle [zone-name]
|
||||||
- /nextbattle
|
|
||||||
# 2- Warzone creation commands
|
# 2- Warzone creation commands
|
||||||
setzone:
|
setzone:
|
||||||
description: (War) Use to create a warzone. Lobby is created and blocks are saved when the second corner is set.
|
description: War> Use to create a warzone. Lobby is created and blocks are saved when the second corner is set.
|
||||||
usage:
|
usage: Use to create a warzone. Lobby is created and blocks are saved when the second corner is set. Warzones must be at least 10 blocks wide in all directions.
|
||||||
- =<Classic/Northwest-Southeast mode>=
|
Ex -
|
||||||
- /setzone <zonename> <northwest/southeast/nw/se>
|
==Wand Cuboid mode==>
|
||||||
- ex: first, /setzone ziggy se, then, /setzone ziggy nw
|
1) /setzone <zone-name> to get wooden sword,
|
||||||
- In classic mode, corner1 defaults to the topmost block (127) in the northwest and corner2 to the bottommost block (0) in the southeast.
|
2) Left-click to select or move corner1,
|
||||||
- =<Wand Cuboid mode>=
|
3) Right-click to select or move corner2.
|
||||||
- 1) /setzone <name> wand
|
Turn off wand by dropping the wooden sword.
|
||||||
- 2) Left-click to select or move corner1
|
==Wandless Cuboid mode==>
|
||||||
- 3) Right-click to select or move corner2
|
/setzone <zone-name> <corner1/corner2/c1/c2/pos1/pos2>
|
||||||
- Turn off wand by dropping the wooden sword.
|
|
||||||
- =<Wandless Cuboid mode>=
|
|
||||||
- /setzone <name> <corner1/corner2/c1/c2/pos1/pos2>
|
|
||||||
- The three modes can be mixed and matched.
|
|
||||||
- Warzones must be at least 10 blocks wide in all directions.
|
|
||||||
savezone:
|
savezone:
|
||||||
description: (War) Persists changes made to the warzone since the last save. Config can be set with named parameters.
|
description: War> Persists changes made to the warzone since the last save. Config can be set with named parameters.
|
||||||
usage:
|
usage: Persists changes made to the warzone since the last save. Config can be set with named parameters. Provide a zone name if not standing in warzone or lobby.
|
||||||
- Must be standing in warzone or lobby
|
Ex -
|
||||||
- /savezone => Basic save
|
/savezone => Basic save,
|
||||||
- /savezone lifepool:8 teamsize:5 maxscore:7 autoassign:on outline:off ff:on blockheads:off spawnstyle:<big/flat/small> unbreakable:on nocreatures:on disabled:on
|
/savezone lifepool:8 teamsize:5 maxscore:7 autoassign:on outline:off ff:on blockheads:off spawnstyle:<big/flat/small> unbreakable:on nocreatures:on disabled:on,
|
||||||
- /savezone loadout:default => sets the respawn inventory to your current items
|
/savezone loadout:default => sets the respawn inventory to your current items,
|
||||||
- /savezone reward:default => sets the winner's reward to your current items
|
/savezone reward:default => sets the winner's reward to your current items.
|
||||||
setzonelobby:
|
setzonelobby:
|
||||||
description: (War) Creates or changes the position of the warzone lobby.
|
description: War> Creates or changes the position of the warzone lobby.
|
||||||
usage:
|
usage: Creates or changes the position of the warzone lobby.
|
||||||
- Must be standing in warzone or lobby.
|
Ex -
|
||||||
- /setzonelobby <north/east/south/west/n/e/s/w>
|
==Attached lobby==>
|
||||||
|
Must be standing in warzone or lobby.
|
||||||
|
/setzonelobby <north/east/south/west/n/e/s/w>
|
||||||
|
==Detached lobby==>
|
||||||
|
Must be standing outside warzone or lobby.
|
||||||
|
/setzonelobby <zone-name>
|
||||||
setteam:
|
setteam:
|
||||||
description: (War) Creates or moves a team spawn. The lobby is updated. Teams are diamond, iron or gold etc.
|
description: War> Creates or moves a team spawn. The lobby is updated.
|
||||||
usage:
|
usage: Creates or moves a team spawn. The lobby is updated. Must be standing in warzone.
|
||||||
- Must be standing in warzone.
|
Ex -
|
||||||
- /setteam <diamond/iron/gold/white/orange/magenta/blue/green/pink/gray/purple/navy/brown/darkgreen/red/black>
|
/setteam <diamond/iron/gold/white/orange/magenta/blue/green/pink/gray/purple/navy/brown/darkgreen/red/black>
|
||||||
setmonument:
|
setmonument:
|
||||||
description: (War) Creates or moves a monument.
|
description: War> Creates or moves a monument.
|
||||||
usage:
|
usage: Creates or moves a monument. Must be standing in warzone.
|
||||||
- Must be standing in warzone.
|
Ex -
|
||||||
- /setmonument <monument-name>
|
/setmonument <monument-name>
|
||||||
setteamflag:
|
setteamflag:
|
||||||
description: (War) Creates/moves a team flag post for CTF.
|
description: War> Creates/moves a team flag post for CTF.
|
||||||
usage:
|
usage: Creates/moves a team flag post for CTF. Must be standing in warzone.
|
||||||
- Must be standing in warzone.
|
Ex -
|
||||||
- /setteamflag <team-color>
|
/setteamflag <team-color>
|
||||||
resetzone:
|
resetzone:
|
||||||
description: (War) Reloads zone blocks from disks. Everyone is ported back to the lobby.
|
description: War> Reloads zone blocks from disk. Everyone is teleported back to the lobby.
|
||||||
usage:
|
usage: Reloads zone blocks from disk. Everyone is teleported back to the lobby. Provide a zone name if not standing in warzone or lobby.
|
||||||
- Must be standing in warzone or lobby.
|
Ex -
|
||||||
- /resetzone
|
/resetzone [zone-name]
|
||||||
deletezone:
|
deletezone:
|
||||||
description: (War) Deletes the zone, resets all blocks.
|
description: War> Deletes the zone, resets all blocks.
|
||||||
usage:
|
usage: Deletes the zone after resetting all blocks. Provide a zone name if not standing in warzone or lobby.
|
||||||
- Must be standing in warzone or lobby, or provide name
|
Ex -
|
||||||
- /deletezone, /deletezone <zone-name>
|
/deletezone [zone-name]
|
||||||
deleteteam:
|
deleteteam:
|
||||||
description: (War) Deletes the team. Team must exist.
|
description: War> Deletes the team. Team must exist.
|
||||||
usage:
|
usage: Deletes the team. Team must exist. Provide a zone name if not standing in warzone or lobby.
|
||||||
- Must be standing in warzone or lobby, or provide warzone-name
|
Ex -
|
||||||
- /deleteteam <team-color>
|
/deleteteam [zone-name] <team-color>
|
||||||
deletemonument:
|
deletemonument:
|
||||||
description: (War) Deletes the monument.
|
description: War> Deletes the monument.
|
||||||
usage:
|
usage: Deletes the monument. Provide a zone name if not standing in warzone or lobby.
|
||||||
- Must be standing in warzone or lobby, or provide warzone-name
|
Ex -
|
||||||
- /deletemonument <monument-name>
|
/deletemonument [zone-name] <monument-name>
|
||||||
setzoneconfig:
|
setzoneconfig:
|
||||||
description: (War) Use named parameters to change the configuration of the warzone. Resets blocks like /nextbattle. Does not save zone blocks like /savezone.
|
description: War> Use named parameters to change the configuration of the warzone. Resets blocks like /nextbattle. Does not save zone blocks like /savezone.
|
||||||
usage:
|
usage: Use named parameters to change the configuration of the warzone. Resets blocks like /nextbattle. Does not save zone blocks like /savezone. Provide a zone name if not standing in warzone or lobby.
|
||||||
- Must be standing in warzone or lobby, or provide warzone-name
|
Ex -
|
||||||
- /setzoneconfig lifepool:8 teamsize:5 maxscore:7 autoassign:on outline:off ff:on blockheads:off spawnstyle:<big/flat/small> unbreakable:on nocreatures:on disabled:on
|
/setzoneconfig lifepool:8 teamsize:5 maxscore:7 autoassign:on outline:off ff:on blockheads:off spawnstyle:<big/flat/small/invisible> unbreakable:on nocreatures:on disabled:on,
|
||||||
- /setzoneconfig loadout:default => sets the respawn inventory to your current items
|
/setzoneconfig loadout:default => sets the respawn inventory to your current items,
|
||||||
- /setzoneconfig reward:default => sets the winner's reward to your current items
|
/setzoneconfig reward:default => sets the winner's reward to your current items
|
||||||
zonecfg:
|
zonecfg:
|
||||||
description: (War) Alias for /setzoneconfig
|
description: War> Alias for /setzoneconfig
|
||||||
usage:
|
usage: Use named parameters to change the configuration of the warzone. Resets blocks like /nextbattle. Does not save zone blocks like /savezone. Provide a zone name if not standing in warzone or lobby.
|
||||||
|
Ex -
|
||||||
|
/setzoneconfig lifepool:8 teamsize:5 maxscore:7 autoassign:on outline:off ff:on blockheads:off spawnstyle:<big/flat/small/invisible> unbreakable:on nocreatures:on disabled:on,
|
||||||
|
/setzoneconfig loadout:default => sets the respawn inventory to your current items,
|
||||||
|
/setzoneconfig reward:default => sets the winner's reward to your current items
|
||||||
zonemaker:
|
zonemaker:
|
||||||
description: (War) Toggles between player mode and zone maker mode. Or gives/removes access to zonemaker commands for another player.
|
description: War> Toggles between player mode and zone maker mode. Or gives/removes access to zonemaker commands for another player.
|
||||||
usage:
|
usage: Toggles between player mode and zone maker mode. Or gives/removes access to zonemaker commands for another player.
|
||||||
- /zonemaker
|
Ex -
|
||||||
- /zonemaker <new-or-kicked-zone-maker-name>
|
/zonemaker
|
||||||
|
/zonemaker <new-or-kicked-zone-maker-name>
|
||||||
zm:
|
zm:
|
||||||
description: (War) Alias for /zonemaker
|
description: War> Alias for /zonemaker
|
||||||
usage:
|
usage: Toggles between player mode and zone maker mode. Or gives/removes access to zonemaker commands for another player.
|
||||||
|
Ex -
|
||||||
|
/zonemaker
|
||||||
|
/zonemaker <new-or-kicked-zone-maker-name>
|
||||||
# 3- War hub
|
# 3- War hub
|
||||||
setwarhub:
|
setwarhub:
|
||||||
description: (War) Create or moves a wall of portals. One portal per warzone. Warzones get a portal back to the warhub.
|
description: War> Create or moves a wall of portals. One portal per warzone. Warzones get a portal back to the warhub.
|
||||||
usage: /setwarhub
|
usage: Create or moves a wall of portals. One portal per warzone. Warzones get a portal back to the warhub.
|
||||||
|
Ex -
|
||||||
|
/setwarhub
|
||||||
deletewarhub:
|
deletewarhub:
|
||||||
description: (War) Deletes the warhub if it exists. Resets all warzone lobbies.
|
description: War> Deletes the warhub if it exists. Resets all warzone lobbies.
|
||||||
usage: /deletewarhub
|
usage: Deletes the warhub if it exists. Resets all warzone lobbies.
|
||||||
|
Ex -
|
||||||
|
/deletewarhub
|
||||||
# 4- Defaults and server configuration
|
# 4- Defaults and server configuration
|
||||||
unloadwar:
|
unloadwar:
|
||||||
description: (War) Disables the War plugin.
|
description: War> Disables the War plugin.
|
||||||
usage: /unloadwar
|
usage: Disables the War plugin.
|
||||||
|
Ex -
|
||||||
|
/unloadwar
|
||||||
loadwar:
|
loadwar:
|
||||||
description: (War) Enables the War plugin.
|
description: War> Enables the War plugin.
|
||||||
usage: /loadwar
|
usage: Enables the War plugin.
|
||||||
|
Ex -
|
||||||
|
/loadwar
|
||||||
setwarconfig:
|
setwarconfig:
|
||||||
description: (War) Change gobal settings and the default warzone configuration values.
|
description: War> Change gobal settings and the default warzone configuration values.
|
||||||
usage:
|
usage: Change gobal settings and the default warzone configuration values.
|
||||||
- /setwarconfig pvpinzonesonly:on buildinzonesonly:on => Global settings
|
Ex -
|
||||||
- /setwarconfig lifepool:8 teamsize:5 maxscore:7 autoassign:on outline:off ff:on blockheads:off spawnstyle:<big/flat/small> unbreakable:on nocreatures:on => Warzone defaults
|
/setwarconfig pvpinzonesonly:on buildinzonesonly:on => Global settings,
|
||||||
- /setwarconfig loadout:default => sets the respawn inventory to your current items
|
/setwarconfig lifepool:8 teamsize:5 maxscore:7 autoassign:on outline:off ff:on blockheads:off spawnstyle:<big/flat/small/invisible> unbreakable:on nocreatures:on => Warzone defaults,
|
||||||
- /setwarconfig reward:default => sets the winner's reward to your current items
|
/setwarconfig loadout:default => sets the respawn inventory to your current items,
|
||||||
- /setwarconfig rallypoint:<warzone-name> => changes when players get teleported at the end of a match for that zone, useful for chaining warzones together in a sequence, or preventing players from rejoining immediately
|
/setwarconfig reward:default => sets the winner's reward to your current items,
|
||||||
|
/setwarconfig rallypoint:<warzone-name> => changes when players get teleported at the end of a match for that zone, useful for chaining warzones together in a sequence, or preventing players from rejoining immediately
|
||||||
warcfg:
|
warcfg:
|
||||||
description: (War) Alias for /setwarconfig
|
description: War> Alias for /setwarconfig
|
||||||
usage:
|
usage: Change gobal settings and the default warzone configuration values.
|
||||||
|
Ex -
|
||||||
|
/setwarconfig pvpinzonesonly:on buildinzonesonly:on => Global settings,
|
||||||
|
/setwarconfig lifepool:8 teamsize:5 maxscore:7 autoassign:on outline:off ff:on blockheads:off spawnstyle:<big/flat/small/invisible> unbreakable:on nocreatures:on => Warzone defaults,
|
||||||
|
/setwarconfig loadout:default => sets the respawn inventory to your current items,
|
||||||
|
/setwarconfig reward:default => sets the winner's reward to your current items,
|
||||||
|
/setwarconfig rallypoint:<warzone-name> => changes when players get teleported at the end of a match for that zone, useful for chaining warzones together in a sequence, or preventing players from rejoining immediately
|
||||||
|
|
||||||
# Fallback
|
# Fallback
|
||||||
war:
|
war:
|
||||||
description: (War) Short War help. Can also be used as a prefix for all War commands as a fallback if they conflict with other plugins.
|
description: War> Short War help. Can also be used as a prefix for all War commands as a fallback if they conflict with other plugins.
|
||||||
usage:
|
usage: War is on. Please pick your battle. Try /warhub, /zones and /zone. Further instructions at war.tommytony.com/instructions.
|
||||||
- /war
|
The /war command can be used as a prefix to all other command as a fallback if they conflict with other plugins. Ex -
|
||||||
- /war setzone ziggy northwest
|
/war,
|
||||||
- /war warhub
|
/war setzone <zone-name>,
|
||||||
- /war zone ziggy
|
/war warhub,
|
||||||
- etc.
|
/war zone <zone-name>
|
||||||
War:
|
War:
|
||||||
description: (War) Same as /war. Used as fallback.
|
description: War> Same as /war. Used as fallback.
|
||||||
usage: See /war.
|
usage: See /war.
|
||||||
#Note: When you /disable War with Essentials, or at shutdown, all warzone blocks will be reset and artifacts will disappear.
|
|
||||||
# When you /enable War, all blocks will be loaded from disk and the War-related artifacts will reappear.
|
|
Loading…
Reference in New Issue
Block a user