Skip to content

Instantly share code, notes, and snippets.

@riking
Created August 12, 2013 06:13
Show Gist options
  • Save riking/6208586 to your computer and use it in GitHub Desktop.
Save riking/6208586 to your computer and use it in GitHub Desktop.
package test;
import java.util.Map;
import org.bukkit.ChatColor;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.inventory.InventoryCreativeEvent;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.EnchantmentStorageMeta;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.plugin.java.JavaPlugin;
import com.google.common.collect.ImmutableSet;
public class NEIEnchantmentBlocker extends JavaPlugin implements Listener {
@Override
public void onEnable() {
getServer().getPluginManager().registerEvents(this, this);
}
@EventHandler
public void onCreative(InventoryCreativeEvent event) {
ItemStack item = event.getCursor();
ItemMeta meta = item.getItemMeta();
boolean message = false;
for (Map.Entry<Enchantment, Integer> entry : ImmutableSet.copyOf(meta.getEnchants().entrySet())) {
if (entry.getValue().intValue() > 5) {
message = true;
meta.removeEnchant(entry.getKey());
}
}
if (meta instanceof EnchantmentStorageMeta) {
EnchantmentStorageMeta meta2 = (EnchantmentStorageMeta) meta;
for (Map.Entry<Enchantment, Integer> entry : ImmutableSet.copyOf(meta2.getStoredEnchants().entrySet())) {
if (entry.getValue().intValue() > 5) {
message = true;
meta2.removeStoredEnchant(entry.getKey());
}
}
}
if (message && (event.getWhoClicked() instanceof Player)) {
((Player) event.getWhoClicked()).sendMessage(ChatColor.RED + "You may not use over-enchanted items on this server!");
}
item.setItemMeta(meta);
event.setCursor(item);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment