Skip to content

Commit 5bfba5b

Browse files
committed
events update
1 parent e27a57c commit 5bfba5b

File tree

4 files changed

+107
-115
lines changed

4 files changed

+107
-115
lines changed

src/main/java/io/github/thatsmusic99/headsplus/HeadsPlus.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ public void onEnable() {
109109

110110
// Handles recipes
111111
if (!getConfiguration().getPerks().disable_crafting) {
112-
getServer().getPluginManager().registerEvents(new RecipePerms(), this);
112+
new RecipePerms();
113113
}
114114
// If sellable heads are enabled and yet there isn't Vault
115115
if (!(econ()) && (getConfiguration().getPerks().sell_heads)) {
@@ -307,10 +307,10 @@ private void registerEvents() {
307307
new HPPlayerDeathEvent();
308308
new HPMaskEvents();
309309
new HPPlayerJoinEvent();
310-
getServer().getPluginManager().registerEvents(new HPBlockPlaceEvent(), this);
311-
getServer().getPluginManager().registerEvents(new PlayerPickBlockEvent(), this);
312-
getServer().getPluginManager().registerEvents(new LeaderboardEvents(), this);
313-
getServer().getPluginManager().registerEvents(new OldPlayerDeathEvent(), this);
310+
new HPBlockPlaceEvent();
311+
new PlayerPickBlockEvent();
312+
new LeaderboardEvents();
313+
new HPPlayerMessageDeathEvent();
314314
getServer().getPluginManager().registerEvents(new SoundEvent(), this);
315315
}
316316

src/main/java/io/github/thatsmusic99/headsplus/listeners/HPBlockPlaceEvent.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,10 @@ public HPBlockPlaceEvent() {
1818

1919
public void onEvent(BlockPlaceEvent e) {
2020
HeadsPlus hp = HeadsPlus.getInstance();
21-
if (hp.isStoppingPlaceableHeads()) {
22-
if (hp.getNMS().isSkull(e.getItemInHand())) {
23-
if (!e.getPlayer().hasPermission("headsplus.bypass.preventplacement")) {
24-
if (NBTManager.isSellable(e.getItemInHand())) {
21+
if (addData("stopping-heads", hp.isStoppingPlaceableHeads())) {
22+
if (addData("is-a-skull", hp.getNMS().isSkull(e.getItemInHand()))) {
23+
if (!addData("can-bypass", e.getPlayer().hasPermission("headsplus.bypass.preventplacement"))) {
24+
if (addData("is-sellable", NBTManager.isSellable(e.getItemInHand()))) {
2525
e.setCancelled(true);
2626
hp.getMessagesConfig().sendMessage("event.block-place-denied", e.getPlayer());
2727
}

src/main/java/io/github/thatsmusic99/headsplus/listeners/LeaderboardEvents.java

Lines changed: 80 additions & 83 deletions
Original file line numberDiff line numberDiff line change
@@ -6,119 +6,116 @@
66
import io.github.thatsmusic99.headsplus.api.events.HeadCraftEvent;
77
import io.github.thatsmusic99.headsplus.api.events.PlayerHeadDropEvent;
88
import io.github.thatsmusic99.headsplus.api.events.SellHeadEvent;
9-
import io.github.thatsmusic99.headsplus.commands.maincommand.DebugPrint;
109
import io.github.thatsmusic99.headsplus.util.DataManager;
11-
import org.bukkit.event.EventHandler;
10+
import io.github.thatsmusic99.headsplus.util.events.HeadsPlusEventExecutor;
11+
import io.github.thatsmusic99.headsplus.util.events.HeadsPlusListener;
12+
import org.bukkit.Bukkit;
13+
import org.bukkit.entity.Player;
14+
import org.bukkit.event.EventPriority;
1215
import org.bukkit.event.Listener;
1316
import org.bukkit.scheduler.BukkitRunnable;
1417

1518
public class LeaderboardEvents implements Listener {
1619

17-
private final HeadsPlus hp = HeadsPlus.getInstance();
18-
19-
@EventHandler
20-
public void onHeadDrop(EntityHeadDropEvent e) {
21-
try {
22-
if (!e.isCancelled()) {
23-
if (e.getPlayer() != null) {
24-
if (hp.isUsingLeaderboards()) {
25-
if (hp.getConfiguration().getPerks().smite_on_head) {
26-
for (int i = 0; i < 5; ++i) {
27-
e.getLocation().getWorld().strikeLightning(e.getPlayer().getLocation());
20+
public LeaderboardEvents() {
21+
super();
22+
HeadsPlus hp = HeadsPlus.getInstance();
23+
Bukkit.getPluginManager().registerEvent(EntityHeadDropEvent.class, new HeadsPlusListener<EntityHeadDropEvent>() {
24+
@Override
25+
public void onEvent(EntityHeadDropEvent event) {
26+
if (!event.isCancelled()) {
27+
if (event.getPlayer() != null) {
28+
Player player = event.getPlayer();
29+
if (hp.isUsingLeaderboards()) {
30+
if (hp.getConfiguration().getPerks().smite_on_head) {
31+
for (int i = 0; i < 5; ++i) {
32+
event.getLocation().getWorld().strikeLightning(player.getLocation());
33+
}
2834
}
35+
HPPlayer.getHPPlayer(player).addXp(hp.getConfiguration().getMechanics().getInt("xp.head-drops") * event.getAmount());
36+
new BukkitRunnable() {
37+
@Override
38+
public void run() {
39+
DataManager.addToTotal(player, event.getEntityType().name(), "headspluslb", event.getAmount());
40+
}
41+
}.runTaskAsynchronously(hp);
42+
2943
}
30-
HPPlayer.getHPPlayer(e.getPlayer()).addXp(hp.getConfiguration().getMechanics().getInt("xp.head-drops") * e.getAmount());
31-
new BukkitRunnable() {
32-
@Override
33-
public void run() {
34-
DataManager.addToTotal(e.getPlayer(), e.getEntityType().name(), "headspluslb", e.getAmount());
44+
}
45+
}
46+
}
47+
}, EventPriority.MONITOR, new HeadsPlusEventExecutor(EntityHeadDropEvent.class, "EntityHeadDropEvent"), hp);
48+
49+
Bukkit.getPluginManager().registerEvent(PlayerHeadDropEvent.class, new HeadsPlusListener<PlayerHeadDropEvent>() {
50+
@Override
51+
public void onEvent(PlayerHeadDropEvent event) {
52+
if (!event.isCancelled()) {
53+
if (event.getPlayer() != null) {
54+
Player player = event.getPlayer();
55+
if (hp.isUsingLeaderboards()) {
56+
if (hp.getConfiguration().getPerks().smite_on_head) {
57+
for (int i = 0; i < 5; ++i) {
58+
event.getLocation().getWorld().strikeLightning(player.getLocation());
59+
}
3560
}
36-
}.runTaskAsynchronously(hp);
61+
HPPlayer.getHPPlayer(player).addXp(hp.getConfiguration().getMechanics().getInt("xp.head-drops") * event.getAmount());
62+
new BukkitRunnable() {
63+
@Override
64+
public void run() {
65+
DataManager.addToTotal(player, "player", "headspluslb", event.getAmount());
66+
}
67+
}.runTaskAsynchronously(hp);
3768

69+
}
3870
}
3971
}
4072
}
41-
} catch (Exception ex) {
42-
DebugPrint.createReport(ex, "Event (LeaderboardEvents)", false, null);
43-
}
73+
}, EventPriority.MONITOR, new HeadsPlusEventExecutor(PlayerHeadDropEvent.class, "PlayerHeadDropEvent"), hp);
4474

45-
}
46-
47-
@EventHandler
48-
public void onPHeadDrop(PlayerHeadDropEvent e) {
49-
try {
50-
if (!e.isCancelled()) {
51-
if (e.getPlayer() != null) {
75+
Bukkit.getPluginManager().registerEvent(SellHeadEvent.class, new HeadsPlusListener<SellHeadEvent>() {
76+
@Override
77+
public void onEvent(SellHeadEvent event) {
78+
if (!event.isCancelled()) {
5279
if (hp.isUsingLeaderboards()) {
53-
if (hp.getConfiguration().getPerks().smite_on_head) {
54-
for (int i = 0; i < 5; ++i) {
55-
e.getLocation().getWorld().strikeLightning(e.getPlayer().getLocation());
56-
}
80+
for (int is : event.getEntityAmounts().values()) {
81+
HPPlayer.getHPPlayer(event.getPlayer()).addXp(hp.getConfiguration().getMechanics().getInt("xp.selling") * is);
5782
}
58-
HPPlayer.getHPPlayer(e.getPlayer()).addXp(hp.getConfiguration().getMechanics().getInt("xp.head-drops") * e.getAmount());
59-
new BukkitRunnable() {
60-
@Override
61-
public void run() {
62-
DataManager.addToTotal(e.getPlayer(), "player", "headspluslb", e.getAmount());
83+
for (String s : event.getEntityAmounts().keySet()) {
84+
for (int i : event.getEntityAmounts().values()) {
85+
if (event.getEntityAmounts().get(s) == i) {
86+
new BukkitRunnable() {
87+
@Override
88+
public void run() {
89+
DataManager.addToTotal(event.getPlayer(), s, "headsplussh", i);
90+
}
91+
}.runTaskAsynchronously(hp);
92+
}
6393
}
64-
}.runTaskAsynchronously(hp);
65-
94+
}
6695
}
6796
}
6897
}
69-
} catch (Exception ex) {
70-
DebugPrint.createReport(ex, "Event (LeaderboardEvents)", false, null);
71-
}
98+
}, EventPriority.MONITOR, new HeadsPlusEventExecutor(SellHeadEvent.class, "SellHeadEvent"), hp);
7299

73-
}
74-
75-
@EventHandler
76-
public void onHeadSold(SellHeadEvent e) {
77-
try {
78-
if (!e.isCancelled()) {
79-
if (hp.isUsingLeaderboards()) {
80-
for (int is : e.getEntityAmounts().values()) {
81-
HPPlayer.getHPPlayer(e.getPlayer()).addXp(hp.getConfiguration().getMechanics().getInt("xp.selling") * is);
82-
}
83-
for (String s : e.getEntityAmounts().keySet()) {
84-
for (int i : e.getEntityAmounts().values()) {
85-
if (e.getEntityAmounts().get(s) == i) {
100+
Bukkit.getPluginManager().registerEvent(HeadCraftEvent.class, new HeadsPlusListener<HeadCraftEvent>() {
101+
@Override
102+
public void onEvent(HeadCraftEvent event) {
103+
if (!event.isCancelled()) {
104+
if (hp.isUsingLeaderboards()) {
105+
if (event.getEntityType() != null) {
106+
if (!(event.getEntityType().equalsIgnoreCase("invalid") || event.getEntityType().isEmpty())) {
86107
new BukkitRunnable() {
87108
@Override
88109
public void run() {
89-
DataManager.addToTotal(e.getPlayer(), s, "headsplussh", i);
110+
HPPlayer.getHPPlayer(event.getPlayer()).addXp(hp.getConfiguration().getMechanics().getInt("xp.crafting") * event.getHeadsCrafted());
111+
DataManager.addToTotal(event.getPlayer(), event.getEntityType(), "headspluscraft", event.getHeadsCrafted());
90112
}
91113
}.runTaskAsynchronously(hp);
92114
}
93115
}
94116
}
95117
}
96118
}
97-
} catch (Exception ex) {
98-
DebugPrint.createReport(ex, "Event (LeaderboardEvents)", false, null);
99-
}
100-
}
101-
102-
@EventHandler
103-
public void onHeadCraft(HeadCraftEvent e) {
104-
try {
105-
if (!e.isCancelled()) {
106-
if (hp.isUsingLeaderboards()) {
107-
if (e.getEntityType() != null) {
108-
if (!(e.getEntityType().equalsIgnoreCase("invalid") || e.getEntityType().isEmpty())) {
109-
new BukkitRunnable() {
110-
@Override
111-
public void run() {
112-
HPPlayer.getHPPlayer(e.getPlayer()).addXp(hp.getConfiguration().getMechanics().getInt("xp.crafting") * e.getHeadsCrafted());
113-
DataManager.addToTotal(e.getPlayer(), e.getEntityType(), "headspluscraft", e.getHeadsCrafted());
114-
}
115-
}.runTaskAsynchronously(hp);
116-
}
117-
}
118-
}
119-
}
120-
} catch (Exception ex) {
121-
DebugPrint.createReport(ex, "Event (LeaderboardEvents)", false, null);
122-
}
119+
}, EventPriority.MONITOR, new HeadsPlusEventExecutor(HeadCraftEvent.class, "HeadCraftEvent"), hp);
123120
}
124121
}

src/main/java/io/github/thatsmusic99/headsplus/listeners/PlayerPickBlockEvent.java

Lines changed: 18 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,28 @@ public PlayerPickBlockEvent() {
3131
super();
3232
Bukkit.getPluginManager().registerEvent(InventoryCreativeEvent.class, this, EventPriority.NORMAL,
3333
new HeadsPlusEventExecutor(InventoryCreativeEvent.class, "InventoryCreativeEvent"), HeadsPlus.getInstance());
34+
35+
Bukkit.getPluginManager().registerEvent(InventoryOpenEvent.class, new HeadsPlusListener<InventoryOpenEvent>() {
36+
@Override
37+
public void onEvent(InventoryOpenEvent event) {
38+
if (event.getInventory().getType() == InventoryType.CREATIVE) {
39+
openInventories.add(event.getPlayer().getUniqueId());
40+
}
41+
}
42+
}, EventPriority.MONITOR, new HeadsPlusEventExecutor(InventoryOpenEvent.class, "InventoryOpenEvent (ICE)"), HeadsPlus.getInstance());
43+
44+
Bukkit.getPluginManager().registerEvent(InventoryCloseEvent.class, new HeadsPlusListener<InventoryCloseEvent>() {
45+
@Override
46+
public void onEvent(InventoryCloseEvent event) {
47+
openInventories.remove(event.getPlayer().getUniqueId());
48+
}
49+
}, EventPriority.MONITOR, new HeadsPlusEventExecutor(InventoryCloseEvent.class, "InventoryCloseEvent (ICE)"), HeadsPlus.getInstance());
3450
}
51+
3552
public void onEvent(InventoryCreativeEvent event) {
3653
if (event.getAction() == InventoryAction.PLACE_ALL // this is weird, but ok
3754
&& !openInventories.contains(event.getWhoClicked().getUniqueId())
38-
&& isSkull(event.getCursor().getType())) {
55+
&& event.getCursor().getItemMeta() instanceof SkullMeta) {
3956
// Block pick event is basically the same event as picking a block from inventory
4057
// check to see if they are looking at a skull block
4158
Block b = event.getWhoClicked().getTargetBlock(null, 6);
@@ -66,26 +83,4 @@ && isSkull(event.getCursor().getType())) {
6683
}
6784
}
6885
}
69-
70-
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
71-
public void onInventoryOpenEvent(InventoryOpenEvent event) {
72-
if (event.getInventory().getType() == InventoryType.CREATIVE) {
73-
openInventories.add(event.getPlayer().getUniqueId());
74-
}
75-
}
76-
77-
@EventHandler(priority = EventPriority.MONITOR)
78-
public void onInventoryCloseEvent(InventoryCloseEvent event) {
79-
openInventories.remove(event.getPlayer().getUniqueId());
80-
}
81-
82-
/**
83-
* Somewhat cross-version compatible skull check
84-
*
85-
* @param m material to check
86-
* @return
87-
*/
88-
boolean isSkull(Material m) {
89-
return m.name().equals("PLAYER_HEAD") || (m.name().contains("SKULL") && !m.name().contains("_SKULL"));
90-
}
9186
}

0 commit comments

Comments
 (0)