I need a plugin that makes a dispenser infinite so i can put fireworks in them for new years. Can someone do this?
It said on the page that the 1.3.x version was compatible with 1.4.x. It should work with any item, why don't you try it out?
i just try'd it out and it wasn't working, and the strange part is that it was not working at all, Also not with normal stuff, maybe if i update my craftbukkit(Currently i have 1.4.6-Dev) Soo. yeah, hope it fix Ps. Sorry for my bad english, i am dutch ;p
Oh, it may not work with the new dev version as a lot of things were changed. You might try contacting him to update it
http://dev.bukkit.org/server-mods/dispenserrefill/files/4-dispenser-refill-1-1-0-snapshot-alpha-1/ Also I just whipeed up a quick plugin that fills the dispenser if you left click it whilst holding fireworks, you might find it useful Sneak + left click + easyfill.unlimited permission = infinite stack Link: http://ballzofsteel.com/EasyFill.jar Permission: easyfill.fill Source: Code: package com.ballzofsteel.EasyFill; import org.bukkit.GameMode; import org.bukkit.Material; import org.bukkit.block.Dispenser; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.event.block.Action; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; import org.bukkit.plugin.java.JavaPlugin; public class EasyFill extends JavaPlugin implements Listener { public void onEnable() { this.getServer().getPluginManager().registerEvents(this, this); } @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) public void onDispenserClick(PlayerInteractEvent event) { Player player = event.getPlayer(); if (event.getAction().equals(Action.LEFT_CLICK_BLOCK) && event.getClickedBlock().getType().equals(Material.DISPENSER) && event.getItem().getType().equals(Material.FIREWORK) && player.hasPermission("easyfill.fill")) { ItemStack fireworks = event.getItem(); fireworks.setAmount(64); Inventory inventory = ((Dispenser)event.getClickedBlock().getState()).getInventory(); inventory.clear(); for (ItemStack item : inventory) { inventory.addItem(fireworks);; } if (player.getGameMode().equals(GameMode.CREATIVE)) { event.setCancelled(true); } player.sendMessage("§2Filled dispenser with fireworks in hand!"); } } } EDIT by Moderator: merged posts, please use the edit button instead of double posting.
Here ya go Code: 2012-12-22 23:28:45 [SEVERE] Could not pass event PlayerInteractEvent to EasyFill v0.1 org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:427) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:477) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:462) at org.bukkit.craftbukkit.v1_4_6.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:178) at net.minecraft.server.v1_4_6.PlayerInteractManager.dig(PlayerInteractManager.java:114) at net.minecraft.server.v1_4_6.PlayerConnection.a(PlayerConnection.java:564) at net.minecraft.server.v1_4_6.Packet14BlockDig.handle(SourceFile:46) at net.minecraft.server.v1_4_6.NetworkManager.b(NetworkManager.java:290) at net.minecraft.server.v1_4_6.PlayerConnection.d(PlayerConnection.java:112) at net.minecraft.server.v1_4_6.ServerConnection.b(SourceFile:39) at net.minecraft.server.v1_4_6.DedicatedServerConnection.b(SourceFile:30) at net.minecraft.server.v1_4_6.MinecraftServer.r(MinecraftServer.java:598) at net.minecraft.server.v1_4_6.DedicatedServer.r(DedicatedServer.java:224) at net.minecraft.server.v1_4_6.MinecraftServer.q(MinecraftServer.java:494) at net.minecraft.server.v1_4_6.MinecraftServer.run(MinecraftServer.java:427) at net.minecraft.server.v1_4_6.ThreadServerApplication.run(SourceFile:849) Caused by: java.lang.NullPointerException at com.ballzofsteel.EasyFill.EasyFill.onDispenserClick(EasyFill.java:30) at sun.reflect.GeneratedMethodAccessor91.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425) ... 16 more
Redownload: http://ballzofsteel.com/EasyFill.jar Source: Code: package com.ballzofsteel.EasyFill; import org.bukkit.GameMode; import org.bukkit.Material; import org.bukkit.block.Dispenser; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.event.block.Action; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; import org.bukkit.plugin.java.JavaPlugin; public class EasyFill extends JavaPlugin implements Listener { public void onEnable() { this.getServer().getPluginManager().registerEvents(this, this); } @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) public void onDispenserClick(PlayerInteractEvent event) { Player player = event.getPlayer(); if (event.getAction().equals(Action.LEFT_CLICK_BLOCK) && event.getClickedBlock().getType().equals(Material.DISPENSER) && event.getItem().getType().equals(Material.FIREWORK) && player.hasPermission("easyfill.fill")) { ItemStack fireworks = event.getItem(); fireworks.setAmount(64); Inventory inventory; if ((inventory = ((Dispenser)event.getClickedBlock().getState()).getInventory()) != null) { inventory.clear(); for (ItemStack item : inventory) { inventory.addItem(fireworks); } if (player.getGameMode().equals(GameMode.CREATIVE)) { event.setCancelled(true); } player.sendMessage("§2Filled dispenser with fireworks in hand!"); } } } }
Thank you so much! Currently this is the only way of duplicating fireworks that I know of Could you make a more advanced plugin on fireworks, the same way of filling for chests and the same thing for firework stars, that would be awsome!
That's funny, because for me it actually works in gm as well. The dispenser disappears for a split second and then reappears with the usual plugin messsage. In term of features, I forgot to mention my most important thought, you could make dispensers infinite. EDIT by Moderator: merged posts, please use the edit button instead of double posting.
How about: fireworks.setAmount(64); Would that work? IT WORKS FOR ME!!! Infinite: Code: package me.DJsZ.AutoFirework; import org.bukkit.GameMode; import org.bukkit.Material; import org.bukkit.block.Dispenser; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.event.block.Action; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; import org.bukkit.plugin.java.JavaPlugin; public class AutoFirework extends JavaPlugin implements Listener { public void onEnable() { this.getServer().getPluginManager().registerEvents(this, this); } @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) public void onDispenserClick(PlayerInteractEvent event) { Player player = event.getPlayer(); if (event.getAction().equals(Action.LEFT_CLICK_BLOCK) && event.getClickedBlock().getType().equals(Material.DISPENSER) && event.getItem().getType().equals(Material.FIREWORK) && player.hasPermission("easyfill.fill")) { ItemStack fireworks = event.getItem(); fireworks.setAmount(-1); Inventory inventory; if ((inventory = ((Dispenser)event.getClickedBlock().getState()).getInventory()) != null) { inventory.clear(); for (ItemStack item : inventory) { inventory.addItem(fireworks); } if (player.getGameMode().equals(GameMode.CREATIVE)) { event.setCancelled(true); } player.sendMessage("§2Filled dispenser with fireworks in hand!"); } } } } If someone RePost this on a forum, give CREDITS to : @accid EDIT by Moderator: merged posts, please use the edit button instead of double posting.
Nice idea, updated, redownload: http://ballzofsteel.com/EasyFill.jar Sneaking whilst clicking will create infinite stacks if player has easyfill.infinite permission Code: package com.ballzofsteel.EasyFill; import org.bukkit.GameMode; import org.bukkit.Material; import org.bukkit.block.Dispenser; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.event.block.Action; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; import org.bukkit.plugin.java.JavaPlugin; public class EasyFill extends JavaPlugin implements Listener { public void onEnable() { this.getServer().getPluginManager().registerEvents(this, this); } @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = false) public void onDispenserClick(PlayerInteractEvent event) { Player player = event.getPlayer(); if (event.getAction().equals(Action.LEFT_CLICK_BLOCK) && event.getClickedBlock().getType().equals(Material.DISPENSER) && event.getItem().getType().equals(Material.FIREWORK) && player.hasPermission("easyfill.fill")) { ItemStack fireworks = event.getItem(); if (player.isSneaking() && player.hasPermission("easyfill.infinite")) { fireworks.setAmount(-1); } else { fireworks.setAmount(64); } Inventory inventory; if ((inventory = ((Dispenser)event.getClickedBlock().getState()).getInventory()) != null) { inventory.clear(); for (ItemStack item : inventory) { inventory.addItem(fireworks); } if (player.getGameMode().equals(GameMode.CREATIVE)) { event.setCancelled(true); } player.sendMessage("§2Filled dispenser with fireworks in hand!"); } } } }