clean up enchantments 2
This commit is contained in:
parent
38d29ba9c8
commit
9930d1bb6d
14 changed files with 218 additions and 250 deletions
|
@ -15,7 +15,7 @@ public class CommandMagic extends Command {
|
|||
public CommandMagic() {
|
||||
super("magic");
|
||||
|
||||
this.addEnum("enchantment", Enchantment.class, Enchantment.ENCHANTMENTS);
|
||||
this.addEnum("enchantment", Enchantment.class, Enchantment.values());
|
||||
this.setParamsOptional();
|
||||
this.addInt("level", 1, 32767);
|
||||
this.addFlag("remove", 'r');
|
||||
|
@ -26,7 +26,7 @@ public class CommandMagic extends Command {
|
|||
|
||||
public void exec(CommandEnvironment env, Executor exec, Enchantment ench, Integer level, boolean remove, boolean force, ItemStack stack) {
|
||||
if(remove) {
|
||||
int current = EnchantmentHelper.getEnchantmentLevel(ench.id, stack);
|
||||
int current = EnchantmentHelper.getEnchantmentLevel(ench, stack);
|
||||
if(current == 0)
|
||||
throw new RunException("%s hat die Verzauberung %s nicht", stack.getDisplayName(), ench.getDisplay());
|
||||
stack.removeEnchantment(ench);
|
||||
|
@ -39,10 +39,9 @@ public class CommandMagic extends Command {
|
|||
throw new RunException("Level %d ist zu hoch für %s, maximal %d erlaubt", level, ench.getDisplay(), ench.getMaxLevel());
|
||||
if(!ench.canApply(stack))
|
||||
throw new RunException("Verzauberung %s kann nicht auf %s verwendet werden", ench.getDisplay(), stack.getDisplayName());
|
||||
for(Entry<Integer, Integer> id : EnchantmentHelper.getEnchantments(stack).entrySet()) {
|
||||
Enchantment enc = Enchantment.getEnchantmentById(id.getKey());
|
||||
if(enc != ench && !ench.canApplyTogether(enc))
|
||||
throw new RunException("Verzauberung %s kann nicht zusammen mit %s verwendet werden", ench.getDisplay(), enc.getFormattedName(id.getValue()));
|
||||
for(Entry<Enchantment, Integer> id : EnchantmentHelper.getEnchantments(stack).entrySet()) {
|
||||
if(id.getKey() != ench && !ench.canApplyTogether(id.getKey()))
|
||||
throw new RunException("Verzauberung %s kann nicht zusammen mit %s verwendet werden", ench.getDisplay(), id.getKey().getFormattedName(id.getValue()));
|
||||
}
|
||||
}
|
||||
stack.removeEnchantment(ench);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue