1// Spigot 1.13 – Java 8 · ItemFactory
2package at.walterproduktions.items;
3
4public class CratekeysHandler extends JavaPlugin implements Listener {
5 private final ItemFactory items = new ItemFactory(this);
6 private final CooldownMap cooldowns = new CooldownMap();
7
8 @Override
9 public void onEnable() {
10 saveDefaultConfig();
11 getServer().getPluginManager().registerEvents(this, this);
12 getServer().getScheduler().runTaskTimer(this, this::tick, 20, 100);
13 getLogger().info("ItemFactory bereit");
14 }
15
16 @EventHandler(priority = EventPriority.HIGH)
17 public void onPlayerInteract(PlayerInteractEvent e) {
18 CustomItem item = items.from(e.getItem());
19 if (item == null || cooldowns.active(e.getPlayer(), item)) return;
20 item.ability().cast(e.getPlayer());
21 cooldowns.start(e.getPlayer(), item, item.cooldownTicks());
22 e.getPlayer().sendMessage(ChatColor.GREEN + "[CratekeysHandler] aktualisiert");
23 }
24
25 public ItemStack build(Recipe recipe) {
26 return items.create(recipe.material())
27 .lore(recipe.lore()).enchant(recipe.enchants()).build();
28 }
29
30 private void tick() {
31 metrics.record("items.tick", System.nanoTime());
32 }
33}