Search in sources :

Example 26 with Mage

use of com.elmakers.mine.bukkit.magic.Mage in project MagicPlugin by elBukkit.

the class PlayerController method onPlayerGameModeChange.

@EventHandler
public void onPlayerGameModeChange(PlayerGameModeChangeEvent event) {
    if (event.getNewGameMode() == GameMode.CREATIVE) {
        Player player = event.getPlayer();
        Mage mage = controller.getMage(player);
        com.elmakers.mine.bukkit.api.wand.Wand activeWand = mage.getActiveWand();
        if (activeWand != null) {
            activeWand.closeInventory();
        }
        if (enableCreativeModeEjecting) {
            boolean ejected = false;
            if (activeWand != null) {
                activeWand.deactivate();
            }
            Inventory inventory = player.getInventory();
            ItemStack[] contents = inventory.getContents();
            for (int i = 0; i < contents.length; i++) {
                ItemStack item = contents[i];
                if (Wand.isWand(item)) {
                    ejected = true;
                    inventory.setItem(i, null);
                    player.getWorld().dropItemNaturally(player.getLocation(), item);
                }
            }
            if (ejected) {
                mage.sendMessage("Ejecting wands, creative mode will destroy them!");
            }
        }
    }
}
Also used : Player(org.bukkit.entity.Player) Mage(com.elmakers.mine.bukkit.magic.Mage) ItemStack(org.bukkit.inventory.ItemStack) Inventory(org.bukkit.inventory.Inventory) PlayerInventory(org.bukkit.inventory.PlayerInventory) EventHandler(org.bukkit.event.EventHandler)

Example 27 with Mage

use of com.elmakers.mine.bukkit.magic.Mage in project MagicPlugin by elBukkit.

the class PlayerController method onConsume.

@EventHandler(ignoreCancelled = true)
public void onConsume(PlayerItemConsumeEvent event) {
    ItemStack item = event.getItem();
    if (!item.hasItemMeta())
        return;
    // The item we get passed in this event is a shallow bukkit copy.
    item = CompatibilityUtils.makeReal(item);
    String consumeSpell = controller.getWandProperty(item, "consume_spell", "");
    if (!consumeSpell.isEmpty()) {
        Mage mage = controller.getMage(event.getPlayer());
        Spell spell = mage.getSpell(consumeSpell);
        if (spell != null) {
            spell.cast();
        }
    }
}
Also used : Mage(com.elmakers.mine.bukkit.magic.Mage) ItemStack(org.bukkit.inventory.ItemStack) Spell(com.elmakers.mine.bukkit.api.spell.Spell) EventHandler(org.bukkit.event.EventHandler)

Aggregations

Mage (com.elmakers.mine.bukkit.magic.Mage)27 EventHandler (org.bukkit.event.EventHandler)22 Player (org.bukkit.entity.Player)20 Wand (com.elmakers.mine.bukkit.wand.Wand)11 ItemStack (org.bukkit.inventory.ItemStack)11 Spell (com.elmakers.mine.bukkit.api.spell.Spell)5 GUIAction (com.elmakers.mine.bukkit.api.action.GUIAction)4 Messages (com.elmakers.mine.bukkit.api.magic.Messages)3 Entity (org.bukkit.entity.Entity)3 Inventory (org.bukkit.inventory.Inventory)3 PlayerInventory (org.bukkit.inventory.PlayerInventory)3 SpellTemplate (com.elmakers.mine.bukkit.api.spell.SpellTemplate)2 Item (org.bukkit.entity.Item)2 CraftingInventory (org.bukkit.inventory.CraftingInventory)2 UndoList (com.elmakers.mine.bukkit.api.block.UndoList)1 EntityData (com.elmakers.mine.bukkit.api.entity.EntityData)1 WandAction (com.elmakers.mine.bukkit.api.wand.WandAction)1 DropActionTask (com.elmakers.mine.bukkit.magic.DropActionTask)1 CompleteDragTask (com.elmakers.mine.bukkit.utility.CompleteDragTask)1 WandMode (com.elmakers.mine.bukkit.wand.WandMode)1