use of com.elmakers.mine.bukkit.magic.Mage in project MagicPlugin by elBukkit.
the class InventoryController method onInventoryOpen.
@EventHandler
public void onInventoryOpen(InventoryOpenEvent event) {
Player player = (Player) event.getPlayer();
Mage mage = controller.getRegisteredMage(player);
if (mage == null)
return;
mage.setOpenCooldown(openCooldown);
Wand wand = mage.getActiveWand();
GUIAction gui = mage.getActiveGUI();
if (wand != null && gui == null) {
// Anyway, check for opening another inventory and close the wand.
if (event.getView().getType() != InventoryType.CRAFTING) {
if (wand.getMode() == WandMode.INVENTORY || !wand.isInventoryOpen()) {
wand.deactivate();
}
}
}
}
use of com.elmakers.mine.bukkit.magic.Mage in project MagicPlugin by elBukkit.
the class PlayerController method onPlayerAnimate.
@EventHandler(ignoreCancelled = true)
public void onPlayerAnimate(PlayerAnimationEvent event) {
Player player = event.getPlayer();
if (event.getAnimationType() != PlayerAnimationType.ARM_SWING) {
return;
}
Mage mage = controller.getMage(player);
Wand wand = mage.checkWand();
if (wand == null)
return;
Messages messages = controller.getMessages();
if (!controller.hasWandPermission(player)) {
return;
}
// Check for region or wand-specific permissions
if (!controller.hasWandPermission(player, wand)) {
wand.deactivate();
mage.sendMessage(messages.get("wand.no_permission").replace("$wand", wand.getName()));
return;
}
if (!mage.checkLastClick(clickCooldown)) {
return;
}
if (wand.isUpgrade())
return;
wand.playEffects("swing");
wand.performAction(wand.getLeftClickAction());
}
use of com.elmakers.mine.bukkit.magic.Mage in project MagicPlugin by elBukkit.
the class PlayerController method onPlayerInteractAtEntity.
@EventHandler
public void onPlayerInteractAtEntity(PlayerInteractAtEntityEvent event) {
Entity entity = event.getRightClicked();
EntityData mob = controller.getMobByName(entity.getCustomName());
if (mob == null)
return;
String interactSpell = mob.getInteractSpell();
if (interactSpell == null || interactSpell.isEmpty())
return;
Player player = event.getPlayer();
Mage mage = controller.getMage(player);
event.setCancelled(true);
ConfigurationSection config = new MemoryConfiguration();
config.set("entity", entity.getUniqueId().toString());
controller.cast(mage, interactSpell, config, player, player);
}
use of com.elmakers.mine.bukkit.magic.Mage in project MagicPlugin by elBukkit.
the class PlayerController method handlePlayerQuitEvent.
protected void handlePlayerQuitEvent(PlayerEvent event) {
Player player = event.getPlayer();
Mage mage = controller.getRegisteredMage(player);
if (mage != null) {
mage.onPlayerQuit(event);
controller.playerQuit(mage);
}
}
use of com.elmakers.mine.bukkit.magic.Mage in project MagicPlugin by elBukkit.
the class PlayerController method onPlayerPickupItem.
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onPlayerPickupItem(PlayerPickupItemEvent event) {
Player player = event.getPlayer();
Mage mage = controller.getMage(player);
// If a wand's inventory is active, add the item there
if (mage.hasStoredInventory()) {
event.setCancelled(true);
if (mage.addToStoredInventory(event.getItem().getItemStack())) {
event.getItem().remove();
}
}
}
Aggregations