forked from JustEli/Coins
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CoinsAPI.java
72 lines (53 loc) · 2.53 KB
/
CoinsAPI.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
// ------------------------------- //
// Small and simple API for Coins. //
// ------------------------------- //
// Coins has three parts in the plugin usable for outside developers.
// The classes: Coins, Coin, CoinDropEvent
// You can drop coins in a radius around someone.
import me.justeli.coins.main.Coins;
Coins.particles (Location location, int radius, int amount);
// So you could, for example, do a coin rain on advancement get:
import org.bukkit.event.EventHandler;
import org.bukkit.event.player.PlayerAdvancementDoneEvent;
@EventHandler
public void advancementRain (PlayerAchievementAwardedEvent e)
{
Coins.particles (e.getPlayer().getLocation(), 3, 20);
}
// You can create a coin.
import me.justeli.coins.item.Coin;
ItemStack coin = new Coin().item(); // gets the ItemStack of one coin
ItemStack coin = new Coin().stack(false).item(); // creates coin, but not stackable
ItemStack coin = new Coin().withdraw(100).item(); // makes it a withdrawnable coin
// When 'spawnerDrop' is set to false (default), you can check if a mob is spawned by a spawner.
// Since every mob from a spawner has a hashmap (if 'spawnerDrop' is set to false).
import me.justeli.coins.main.Coins;
boolean mobFromSpawner = Coins.mobFromSpawner (Entity entity);
// Returns true if the Entity is from a spawner, false if not.
// The plugin has its own event, too!
import me.justeli.coins.events.CoinDropEvent;
@EventHandler
public void onCoinDrop (CoinDropEvent e)
{
if (e.getKiller().hasPermission("no.coins.from.skeletons") && e.getEntityType().equals(EntityType.SKELETON))
{
e.setCancelled( true );
// When the player has the permission 'no.coins.from.skeletons',
// and the entity killed is a skeleton, it won't drop a coin.
}
// The following enables coin drops for mobs from spawners when 'spawnerDrop' is set to false in config.
// But you can do more advanced stuff, since the plugin can only detect mobs from a spawner if 'spawnerDrop' is set to false.
// If the entity killed is from a spawner.
if (e.entityFromSpawner())
{
// Add 50% chance of dropping a coin when mob is from a spawner.
if (Math.random() <= 0.5)
{
ItemStack coin = new Coin().stack(true).item();
// If you set 'stackCoins' to false in config.yml,
// only coins dropped by mobs from spawners will stack.
e.getEntity().getLocation().getWorld().dropItem(e.getEntity().getLocation(), coin);
// And don't forget to drop the coin.
}
}
}