13
0
geforkt von Mirrors/Paper

[Bleeding] Added EnchantmentTable API.

By: Mike Primm <mike@primmhome.com>
Dieser Commit ist enthalten in:
Bukkit/Spigot 2012-01-21 01:26:45 -06:00
Ursprung b3642a04e1
Commit 58d9efad7c
2 geänderte Dateien mit 196 neuen und 0 gelöschten Zeilen

Datei anzeigen

@ -0,0 +1,105 @@
package org.bukkit.event.enchantment;
import java.util.HashMap;
import java.util.Map;
import org.bukkit.block.Block;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.entity.Player;
import org.bukkit.event.Cancellable;
import org.bukkit.event.Event;
import org.bukkit.event.HandlerList;
import org.bukkit.inventory.ItemStack;
/**
* Called when an ItemStack is successfully enchanted (currently at enchantment table)
*/
@SuppressWarnings("serial")
public class EnchantItemEvent extends Event implements Cancellable {
private static final HandlerList handlers = new HandlerList();
private Block table;
private ItemStack item;
private int level;
private boolean cancelled;
private Map<Enchantment,Integer> enchants;
private Player enchanter;
public EnchantItemEvent(Player enchanter, Block table, ItemStack item, int level, Map<Enchantment, Integer> enchants) {
this.enchanter = enchanter;
this.table = table;
this.item = item;
this.level = level;
this.enchants = new HashMap<Enchantment, Integer>(enchants);
this.cancelled = false;
}
/**
* Gets the player enchanting the item
*
* @returns enchanting player
*/
public Player getEnchanter() {
return enchanter;
}
/**
* Gets the block being used to enchant the item
*
* @return the block used for enchanting
*/
public Block getEnchantBlock() {
return table;
}
/**
* Gets the item to be enchanted (can be modified)
*
* @return ItemStack of item
*/
public ItemStack getItem() {
return item;
}
/**
* Get cost in exp levels of the enchantment
* @return experience level cost
*/
public int getExpLevelCost() {
return level;
}
/**
* Set cost in exp levels of the enchantment
* @param level - cost in levels
*/
public void setExpLevelCost(int level) {
this.level = level;
}
/**
* Get map of enchantment (levels, keyed by type) to be added to item (modify map returned to change values)
* Note: Any enchantments not allowed for the item will be ignored
*
* @return map of enchantment levels, keyed by enchantment
*/
public Map<Enchantment, Integer> getEnchantsToAdd() {
return enchants;
}
public boolean isCancelled() {
return cancelled;
}
public void setCancelled(boolean cancel) {
this.cancelled = cancel;
}
@Override
public HandlerList getHandlers() {
return handlers;
}
public static HandlerList getHandlerList() {
return handlers;
}
}

Datei anzeigen

@ -0,0 +1,91 @@
package org.bukkit.event.enchantment;
import org.bukkit.block.Block;
import org.bukkit.entity.Player;
import org.bukkit.event.Cancellable;
import org.bukkit.event.Event;
import org.bukkit.event.HandlerList;
import org.bukkit.inventory.ItemStack;
/**
* Called when an ItemStack is inserted in an enchantment table - can be called multiple times
*/
@SuppressWarnings("serial")
public class PrepareItemEnchantEvent extends Event implements Cancellable {
private static final HandlerList handlers = new HandlerList();
private Block table;
private ItemStack item;
private int[] levels_offered;
private int bonus;
private boolean cancelled;
private Player enchanter;
public PrepareItemEnchantEvent(Player enchanter, Block table, ItemStack item, int[] levels_offered, int bonus) {
this.enchanter = enchanter;
this.table = table;
this.item = item;
this.levels_offered = levels_offered;
this.bonus = bonus;
this.cancelled = false;
}
/**
* Gets the player enchanting the item
*
* @returns enchanting player
*/
public Player getEnchanter() {
return enchanter;
}
/**
* Gets the block being used to enchant the item
*
* @return the block used for enchanting
*/
public Block getEnchantBlock() {
return table;
}
/**
* Gets the item to be enchanted (can be modified)
*
* @return ItemStack of item
*/
public ItemStack getItem() {
return item;
}
/**
* Get list of offered exp level costs of the enchantment (modify values to change offer)
* @return experience level costs offered
*/
public int[] getExpLevelCostsOffered() {
return levels_offered;
}
/**
* Get enchantment bonus in effect - corresponds to number of bookshelves
* @return enchantment bonus
*/
public int getEnchantmentBonus() {
return bonus;
}
public boolean isCancelled() {
return cancelled;
}
public void setCancelled(boolean cancel) {
this.cancelled = cancel;
}
@Override
public HandlerList getHandlers() {
return handlers;
}
public static HandlerList getHandlerList() {
return handlers;
}
}