use of com.elmakers.mine.bukkit.api.magic.Mage in project MagicPlugin by elBukkit.
the class WandCommandExecutor method onWandEnchant.
public boolean onWandEnchant(CommandSender sender, Player player, String levelString) {
Wand wand = checkWand(sender, player);
if (wand == null) {
return false;
}
Mage mage = controller.getMage(player);
int xpLevels = 0;
boolean useXp = levelString.equalsIgnoreCase("xp");
if (useXp) {
xpLevels = mage.getLevel();
} else {
try {
xpLevels = Integer.parseInt(levelString);
} catch (Exception ex) {
sender.sendMessage("Invalid parameter: " + levelString);
}
}
int levels = wand.enchant(xpLevels);
if (levels > 0 && useXp) {
mage.setLevel(Math.max(0, mage.getLevel() - levels));
}
wand.saveState();
if (sender != player) {
if (levels > 0) {
sender.sendMessage(api.getMessages().getParameterized("wand.player_upgraded", "$name", player.getName()));
} else {
sender.sendMessage(api.getMessages().getParameterized("wand.player_not_upgraded", "$name", player.getName()));
}
}
return true;
}
use of com.elmakers.mine.bukkit.api.magic.Mage in project MagicPlugin by elBukkit.
the class WandCommandExecutor method onWandCombine.
public boolean onWandCombine(CommandSender sender, Player player, String[] parameters) {
if (parameters.length < 1) {
sender.sendMessage("Use: /wand combine <wandname>");
return false;
}
Wand wand = checkWand(sender, player);
if (wand == null) {
return true;
}
Mage mage = controller.getMage(player);
String wandName = parameters[0];
Wand newWand = api.createWand(wandName);
if (newWand == null) {
sender.sendMessage(api.getMessages().getParameterized("wand.unknown_template", "$name", wandName));
return false;
}
wand.deactivate();
boolean result = wand.add(newWand);
mage.checkWand();
if (sender != player) {
if (result) {
sender.sendMessage(api.getMessages().getParameterized("wand.player_upgraded", "$name", player.getName()));
} else {
sender.sendMessage(api.getMessages().getParameterized("wand.player_not_upgraded", "$name", player.getName()));
}
}
return true;
}
use of com.elmakers.mine.bukkit.api.magic.Mage in project MagicPlugin by elBukkit.
the class WandCommandExecutor method onWandOrganize.
public boolean onWandOrganize(CommandSender sender, Player player) {
// Allow reorganizing modifiable wands
Wand wand = checkWand(sender, player, true);
if (wand == null) {
return true;
}
Mage mage = controller.getMage(player);
wand.organizeInventory(mage);
wand.saveState();
mage.sendMessage(api.getMessages().get("wand.reorganized").replace("$wand", wand.getName()));
if (sender != player) {
sender.sendMessage(api.getMessages().getParameterized("wand.player_reorganized", "$name", player.getName()).replace("$wand", wand.getName()));
}
return true;
}
use of com.elmakers.mine.bukkit.api.magic.Mage in project MagicPlugin by elBukkit.
the class WandCommandExecutor method onWandAlphabetize.
public boolean onWandAlphabetize(CommandSender sender, Player player) {
Wand wand = checkWand(sender, player, true);
if (wand == null) {
return true;
}
Mage mage = controller.getMage(player);
wand.alphabetizeInventory();
wand.saveState();
mage.sendMessage(api.getMessages().get("wand.alphabetized").replace("$wand", wand.getName()));
if (sender != player) {
sender.sendMessage(api.getMessages().getParameterized("wand.player_alphabetized", "$name", player.getName()).replace("$wand", wand.getName()));
}
return true;
}
use of com.elmakers.mine.bukkit.api.magic.Mage in project MagicPlugin by elBukkit.
the class WandCommandExecutor method checkWand.
@Nullable
protected Wand checkWand(CommandSender sender, Player player, boolean skipModifiable, boolean skipBound, boolean quiet) {
Mage mage = controller.getMage(player);
Wand wand = mage.getActiveWand();
boolean bypassLocked = (sender instanceof Player) && api.hasPermission(sender, "Magic.wand.override_locked");
if (wand == null) {
ItemStack item = player.getInventory().getItemInMainHand();
if (api.isUpgrade(item)) {
wand = api.getWand(item);
} else if (bypassLocked && api.isWand(item)) {
wand = api.getWand(item);
}
}
if (wand == null) {
if (!quiet)
mage.sendMessage(api.getMessages().get("wand.no_wand"));
if (sender != player) {
sender.sendMessage(api.getMessages().getParameterized("wand.player_no_wand", "$name", player.getName()));
}
return null;
}
if (!skipModifiable && wand.isLocked() && !bypassLocked) {
if (!quiet)
mage.sendMessage(api.getMessages().get("wand.unmodifiable"));
if (sender != player) {
sender.sendMessage(api.getMessages().getParameterized("wand.player_unmodifiable", "$name", player.getName()));
}
return null;
}
if (!skipBound && !wand.canUse(mage.getPlayer())) {
if (!quiet)
mage.sendMessage(api.getMessages().get("wand.bound_to_other"));
if (sender != player) {
sender.sendMessage(api.getMessages().getParameterized("wand.player_unmodifiable", "$name", player.getName()));
}
return null;
}
return wand;
}
Aggregations