mirror of
https://github.com/AppleDash/SaneEconomy.git
synced 2024-11-29 21:43:28 +01:00
Improve command handling and exception structure.
This commit is contained in:
parent
85eff7a354
commit
f940d301b7
@ -1,6 +1,8 @@
|
|||||||
package org.appledash.saneeconomy.command;
|
package org.appledash.saneeconomy.command;
|
||||||
|
|
||||||
import org.appledash.saneeconomy.command.exception.*;
|
import org.appledash.saneeconomy.command.exception.CommandException;
|
||||||
|
import org.appledash.saneeconomy.command.exception.type.NoPermissionException;
|
||||||
|
import org.appledash.saneeconomy.command.exception.type.usage.UsageException;
|
||||||
import org.appledash.saneeconomy.utils.MessageUtils;
|
import org.appledash.saneeconomy.utils.MessageUtils;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandExecutor;
|
import org.bukkit.command.CommandExecutor;
|
||||||
@ -19,11 +21,14 @@ public abstract class SaneEconomyCommand implements CommandExecutor {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return onCommand(sender, args);
|
return onCommand(sender, args);
|
||||||
} catch (TooFewArgumentsException | NeedPlayerException | InvalidUsageException e) {
|
} catch (UsageException e) {
|
||||||
|
/* Invalid usage in some way, print out exactly what went wrong along with the proper usage. */
|
||||||
MessageUtils.sendMessage(sender, e.getMessage());
|
MessageUtils.sendMessage(sender, e.getMessage());
|
||||||
|
|
||||||
for (String s : getUsage()) {
|
for (String s : getUsage()) {
|
||||||
MessageUtils.sendMessage(sender, String.format("Usage: %s", s.replace("<command>", label)));
|
MessageUtils.sendMessage(sender, String.format("Usage: %s", s.replace("<command>", label)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
} catch (CommandException e) {
|
} catch (CommandException e) {
|
||||||
MessageUtils.sendMessage(sender, e.getMessage());
|
MessageUtils.sendMessage(sender, e.getMessage());
|
||||||
@ -31,7 +36,18 @@ public abstract class SaneEconomyCommand implements CommandExecutor {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the permission node required to use the command.
|
||||||
|
* @return Permission node.
|
||||||
|
*/
|
||||||
public abstract String getPermission();
|
public abstract String getPermission();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the command's usage.
|
||||||
|
* When this is printed, '<command>' will be replaced with the command name.
|
||||||
|
* @return Command usage examples
|
||||||
|
*/
|
||||||
public abstract String[] getUsage();
|
public abstract String[] getUsage();
|
||||||
public abstract boolean onCommand(CommandSender sender, String[] args) throws CommandException;
|
|
||||||
|
protected abstract boolean onCommand(CommandSender sender, String[] args) throws CommandException;
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,6 @@
|
|||||||
package org.appledash.saneeconomy.command.exception;
|
package org.appledash.saneeconomy.command.exception.type;
|
||||||
|
|
||||||
|
import org.appledash.saneeconomy.command.exception.CommandException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by AppleDash on 6/13/2016.
|
* Created by AppleDash on 6/13/2016.
|
@ -1,10 +1,10 @@
|
|||||||
package org.appledash.saneeconomy.command.exception;
|
package org.appledash.saneeconomy.command.exception.type.usage;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by AppleDash on 6/13/2016.
|
* Created by AppleDash on 6/13/2016.
|
||||||
* Blackjack is still best pony.
|
* Blackjack is still best pony.
|
||||||
*/
|
*/
|
||||||
public class InvalidUsageException extends CommandException {
|
public class InvalidUsageException extends UsageException {
|
||||||
@Override
|
@Override
|
||||||
public String getMessage() {
|
public String getMessage() {
|
||||||
return "Invalid syntax for that command!";
|
return "Invalid syntax for that command!";
|
@ -1,10 +1,10 @@
|
|||||||
package org.appledash.saneeconomy.command.exception;
|
package org.appledash.saneeconomy.command.exception.type.usage;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by AppleDash on 6/13/2016.
|
* Created by AppleDash on 6/13/2016.
|
||||||
* Blackjack is still best pony.
|
* Blackjack is still best pony.
|
||||||
*/
|
*/
|
||||||
public class NeedPlayerException extends CommandException {
|
public class NeedPlayerException extends UsageException {
|
||||||
@Override
|
@Override
|
||||||
public String getMessage() {
|
public String getMessage() {
|
||||||
return "That command requires a player argument when not run by a player.";
|
return "That command requires a player argument when not run by a player.";
|
@ -1,10 +1,10 @@
|
|||||||
package org.appledash.saneeconomy.command.exception;
|
package org.appledash.saneeconomy.command.exception.type.usage;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by AppleDash on 6/13/2016.
|
* Created by AppleDash on 6/13/2016.
|
||||||
* Blackjack is still best pony.
|
* Blackjack is still best pony.
|
||||||
*/
|
*/
|
||||||
public class TooFewArgumentsException extends CommandException {
|
public class TooFewArgumentsException extends UsageException {
|
||||||
@Override
|
@Override
|
||||||
public String getMessage() {
|
public String getMessage() {
|
||||||
return "Wrong number of arguments for that command!";
|
return "Wrong number of arguments for that command!";
|
@ -0,0 +1,10 @@
|
|||||||
|
package org.appledash.saneeconomy.command.exception.type.usage;
|
||||||
|
|
||||||
|
import org.appledash.saneeconomy.command.exception.CommandException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by AppleDash on 6/14/2016.
|
||||||
|
* Blackjack is still best pony.
|
||||||
|
*/
|
||||||
|
public class UsageException extends CommandException {
|
||||||
|
}
|
@ -3,7 +3,7 @@ package org.appledash.saneeconomy.command.type;
|
|||||||
import org.appledash.saneeconomy.SaneEconomy;
|
import org.appledash.saneeconomy.SaneEconomy;
|
||||||
import org.appledash.saneeconomy.command.SaneEconomyCommand;
|
import org.appledash.saneeconomy.command.SaneEconomyCommand;
|
||||||
import org.appledash.saneeconomy.command.exception.CommandException;
|
import org.appledash.saneeconomy.command.exception.CommandException;
|
||||||
import org.appledash.saneeconomy.command.exception.NeedPlayerException;
|
import org.appledash.saneeconomy.command.exception.type.usage.NeedPlayerException;
|
||||||
import org.appledash.saneeconomy.utils.MessageUtils;
|
import org.appledash.saneeconomy.utils.MessageUtils;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
|
@ -3,9 +3,9 @@ package org.appledash.saneeconomy.command.type;
|
|||||||
import org.appledash.saneeconomy.SaneEconomy;
|
import org.appledash.saneeconomy.SaneEconomy;
|
||||||
import org.appledash.saneeconomy.command.SaneEconomyCommand;
|
import org.appledash.saneeconomy.command.SaneEconomyCommand;
|
||||||
import org.appledash.saneeconomy.command.exception.CommandException;
|
import org.appledash.saneeconomy.command.exception.CommandException;
|
||||||
import org.appledash.saneeconomy.command.exception.InvalidUsageException;
|
import org.appledash.saneeconomy.command.exception.type.usage.InvalidUsageException;
|
||||||
import org.appledash.saneeconomy.command.exception.NeedPlayerException;
|
import org.appledash.saneeconomy.command.exception.type.usage.NeedPlayerException;
|
||||||
import org.appledash.saneeconomy.command.exception.TooFewArgumentsException;
|
import org.appledash.saneeconomy.command.exception.type.usage.TooFewArgumentsException;
|
||||||
import org.appledash.saneeconomy.economy.EconomyManager;
|
import org.appledash.saneeconomy.economy.EconomyManager;
|
||||||
import org.appledash.saneeconomy.utils.MessageUtils;
|
import org.appledash.saneeconomy.utils.MessageUtils;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
|
Loading…
Reference in New Issue
Block a user