If you cannot purchase the resource please send me a message.
The source is available for $25.
The source is available for $25.

PerfectGenerators

Features
- Create your own unique generators
- Create an item to drop for each generator
- Create commands to be executed for each generator
- Highly configurable
- Generators with tier, 1, 2, and 3
- Upgrade generators from a lower tier
- Storage system
- Protection from pistons & tnt!
- Events for developers
- Smooth and satisfying animation when constructing
Built-in supports:
These are not enabled by default. Enabled in config.yml
- ASkyblock
- SuperiorSkyblock
- FabledSkyblock
- FactionsUUID
- WorldGuard
- Vault
- Particles
- Holograms
- Works with SuperMobCoins
Permissions
- generator.help - /generator
- generator.list - /generator list
- generator.give - /generator give
- generator.reload - /generator reload
- generator.modify - Destroy generators which you do not own
Media (quick video)
Events
Java:
[/SIZE]
@Getter
private Generator generator;
@Getter
@Setter
private ItemStack generatorItemDrop;
@Getter
@Setter
private List<String> commands;
private boolean isCancelled;
/**
* Called when a generator drops an item
* @param generator is the generator which drops the item
* @param generatorItemDrop is the item the generator drops
* @param commands is the commands executed when a generator drops an item
*/
public GeneratorItemDropEvent(Generator generator, ItemStack generatorItemDrop, List<String> commands) {
this.generator = generator;
this.generatorItemDrop = generatorItemDrop;
this.commands = commands;
}
[SIZE=4]
Java:
@Getter
private Player player;
@Getter
private Location blockClickedLocation;
@Getter
private String generatorType;
private boolean isCancelled;
/**[/SIZE]
[SIZE=4]* Called when a player places a generator[/SIZE]
[SIZE=4]* @param player is the player who is about to place the generator[/SIZE]
[SIZE=4]* @param blockClickedLocation is the location where the player clicked[/SIZE]
[SIZE=4]* @param generatorType is the generator type[/SIZE]
[SIZE=4]*/
public GeneratorPlaceEvent(Player player, Location blockClickedLocation, String generatorType) {
this.player = player;
this.blockClickedLocation = blockClickedLocation;
this.generatorType = generatorType;
}
Java:
@Getter
private Player player;
@Getter
private Location genLocation;
@Getter
private String generatorType;
/**
* Called when a player destroys a generator
* @param player is the player who is destroying the generator
* @param genLocation is the location of the generator
* @param generatorType is the generator type
*/
public GeneratorDestroyEvent(Player player, Location genLocation, String generatorType) {
this.player = player;
this.genLocation = genLocation;
this.generatorType = generatorType;
}
Any bugs or questions? Send me a message, and I will answer as soon as possible.