Skip to content

Commit 79999a1

Browse files
committed
Fixed + Updated PlaceholderAPI
1 parent 0d44359 commit 79999a1

9 files changed

Lines changed: 75 additions & 120 deletions

File tree

CombatPlus.iml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
<orderEntry type="library" scope="PROVIDED" name="Maven: com.google.code.gson:gson:2.8.0" level="project" />
2828
<orderEntry type="library" scope="PROVIDED" name="Maven: net.md-5:bungeecord-chat:1.16-R0.3" level="project" />
2929
<orderEntry type="library" scope="PROVIDED" name="Maven: org.yaml:snakeyaml:1.26" level="project" />
30-
<orderEntry type="library" scope="PROVIDED" name="Maven: me.clip:placeholderapi:2.10.8" level="project" />
30+
<orderEntry type="library" scope="PROVIDED" name="Maven: me.clip:placeholderapi:2.10.9" level="project" />
31+
<orderEntry type="library" scope="PROVIDED" name="Maven: org.jetbrains:annotations:19.0.0" level="project" />
3132
</component>
3233
</module>

pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<groupId>me.nik</groupId>
88
<artifactId>CombatPlus</artifactId>
9-
<version>1.5.0</version>
9+
<version>1.5.1</version>
1010
<packaging>jar</packaging>
1111

1212
<name>CombatPlus</name>
@@ -86,7 +86,7 @@
8686
<dependency>
8787
<groupId>me.clip</groupId>
8888
<artifactId>placeholderapi</artifactId>
89-
<version>2.10.8</version>
89+
<version>2.10.9</version>
9090
<scope>provided</scope>
9191
</dependency>
9292

src/main/java/me/nik/combatplus/CombatPlus.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
import me.nik.combatplus.managers.commentedfiles.CommentedFileConfiguration;
2424
import me.nik.combatplus.metrics.MetricsLite;
2525
import me.nik.combatplus.utils.CustomRecipes;
26-
import me.nik.combatplus.utils.MiscUtils;
2726
import me.nik.combatplus.utils.ResetStats;
2827
import me.nik.combatplus.utils.SetAttackSpeed;
2928
import me.nik.combatplus.utils.SetCustomHealth;
@@ -97,7 +96,8 @@ public void onEnable() {
9796
new MetricsLite(this, 6982);
9897

9998
//Hook PlaceholderAPI
100-
if (MiscUtils.isPlaceholderApiEnabled()) {
99+
100+
if (this.getServer().getPluginManager().getPlugin("PlaceholderAPI") != null) {
101101
new PapiHook(this).register();
102102
}
103103
}

src/main/java/me/nik/combatplus/handlers/PapiHook.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,11 +45,11 @@ public String onRequest(OfflinePlayer player, String identifier) {
4545

4646
switch (identifier) {
4747
case "goldenapple":
48-
return GoldenApple.papiCooldown;
48+
return GoldenApple.getCooldown(player.getUniqueId());
4949
case "enchantedgoldenapple":
50-
return EnchantedGoldenApple.papiCooldown;
50+
return EnchantedGoldenApple.getCooldown(player.getUniqueId());
5151
case "enderpearl":
52-
return Enderpearl.papiCooldown;
52+
return Enderpearl.getCooldown(player.getUniqueId());
5353
}
5454
return null;
5555
}

src/main/java/me/nik/combatplus/listeners/EnchantedGoldenApple.java

Lines changed: 22 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
import me.nik.combatplus.files.Config;
55
import me.nik.combatplus.managers.MsgType;
66
import me.nik.combatplus.utils.Messenger;
7-
import me.nik.combatplus.utils.MiscUtils;
87
import me.nik.combatplus.utils.WorldUtils;
98
import net.md_5.bungee.api.ChatMessageType;
109
import net.md_5.bungee.api.chat.TextComponent;
@@ -25,30 +24,28 @@ public class EnchantedGoldenApple implements Listener {
2524
private final CombatPlus plugin;
2625
private final WorldUtils worldUtils = new WorldUtils();
2726

28-
private final HashMap<UUID, Long> cooldown = new HashMap<>();
29-
30-
public static String papiCooldown = "Ready";
27+
private static final HashMap<UUID, Long> cooldown = new HashMap<>();
3128

3229
public EnchantedGoldenApple(CombatPlus plugin) {
3330
this.plugin = plugin;
3431
}
3532

36-
private void taskRun(UUID uuid) {
37-
cooldown.put(uuid, System.currentTimeMillis());
38-
new BukkitRunnable() {
33+
/*
34+
This Listener adds a cooldown between eating Enchanted Golden Apples
35+
*/
3936

40-
@Override
41-
public void run() {
37+
public static String getCooldown(UUID uuid) {
38+
if (cooldown.containsKey(uuid)) {
39+
long secondsleft = ((cooldown.get(uuid) / 1000) + Config.Setting.COOLDOWN_ENCHANTED_APPLE_COOLDOWN.getInt()) - (System.currentTimeMillis() / 1000);
40+
if (secondsleft < 1) {
4241
cooldown.remove(uuid);
43-
papiCooldown = "Ready";
42+
return "Ready";
4443
}
45-
}.runTaskLaterAsynchronously(plugin, Config.Setting.COOLDOWN_ENCHANTED_APPLE_COOLDOWN.getInt() * 20);
44+
return secondsleft + "s";
45+
}
46+
return "Ready";
4647
}
4748

48-
/*
49-
This Listener adds a cooldown between eating Enchanted Golden Apples
50-
*/
51-
5249
@EventHandler(ignoreCancelled = true)
5350
public void onEatEnchantedGoldenApple(PlayerItemConsumeEvent e) {
5451
if (worldUtils.gappleDisabledWorlds(e.getPlayer())) return;
@@ -59,12 +56,13 @@ public void onEatEnchantedGoldenApple(PlayerItemConsumeEvent e) {
5956
if (cooldown.containsKey(p)) {
6057
e.setCancelled(true);
6158
long secondsleft = ((cooldown.get(p) / 1000) + Config.Setting.COOLDOWN_ENCHANTED_APPLE_COOLDOWN.getInt()) - (System.currentTimeMillis() / 1000);
59+
if (secondsleft < 1) {
60+
cooldown.remove(p);
61+
return;
62+
}
6263
player.sendMessage(MsgType.ENCHANTED_GOLDEN_APPLE_COOLDOWN.getMessage().replaceAll("%seconds%", String.valueOf(secondsleft)));
6364
} else {
64-
taskRun(p);
65-
if (MiscUtils.isPlaceholderApiEnabled()) {
66-
setupPlaceholder(p);
67-
}
65+
cooldown.put(p, System.currentTimeMillis());
6866
Messenger.debug(player, "&3Enchanted Golden Apple Cooldown &f&l>> &6Added to cooldown: &atrue");
6967
if (Config.Setting.COOLDOWN_ENCHANTED_APPLE_ACTIONBAR.getBoolean()) {
7068
new BukkitRunnable() {
@@ -73,6 +71,10 @@ public void onEatEnchantedGoldenApple(PlayerItemConsumeEvent e) {
7371
public void run() {
7472
if (cooldown.containsKey(p)) {
7573
long secondsleft = ((cooldown.get(p) / 1000) + Config.Setting.COOLDOWN_ENCHANTED_APPLE_COOLDOWN.getInt()) - (System.currentTimeMillis() / 1000);
74+
if (secondsleft < 1) {
75+
cooldown.remove(p);
76+
cancel();
77+
}
7678
String message = MsgType.ENCHANTED_GOLDEN_APPLE_COOLDOWN_ACTIONBAR.getMessage().replaceAll("%seconds%", String.valueOf(secondsleft));
7779
player.spigot().sendMessage(ChatMessageType.ACTION_BAR, TextComponent.fromLegacyText(message));
7880
} else {
@@ -85,29 +87,13 @@ public void run() {
8587
}
8688
}
8789

88-
private void setupPlaceholder(UUID p) {
89-
90-
new BukkitRunnable() {
91-
92-
@Override
93-
public void run() {
94-
if (cooldown.containsKey(p)) {
95-
long secondsleft = ((cooldown.get(p) / 1000) + Config.Setting.COOLDOWN_ENCHANTED_APPLE_COOLDOWN.getInt()) - (System.currentTimeMillis() / 1000);
96-
papiCooldown = secondsleft + "s";
97-
} else {
98-
cancel();
99-
}
100-
}
101-
}.runTaskTimerAsynchronously(plugin, 0, 20);
102-
}
103-
10490
private boolean isEnchantedGoldenApple(PlayerItemConsumeEvent e) {
10591
try {
10692
return e.getItem().getType() == Material.ENCHANTED_GOLDEN_APPLE;
10793
} catch (NoSuchFieldError ignored) {
10894
ItemStack goldenApple = new ItemStack(Material.GOLDEN_APPLE);
10995
ItemStack consumedItem = e.getItem();
110-
return consumedItem.getType().name().contains("GOLDEN_APPLE") &&
96+
return consumedItem.getType().name().equals("GOLDEN_APPLE") &&
11197
!Objects.equals(goldenApple.getData(), consumedItem.getData());
11298
}
11399
}

src/main/java/me/nik/combatplus/listeners/Enderpearl.java

Lines changed: 21 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
import me.nik.combatplus.files.Config;
55
import me.nik.combatplus.managers.MsgType;
66
import me.nik.combatplus.utils.Messenger;
7-
import me.nik.combatplus.utils.MiscUtils;
87
import me.nik.combatplus.utils.WorldUtils;
98
import net.md_5.bungee.api.ChatMessageType;
109
import net.md_5.bungee.api.chat.TextComponent;
@@ -26,29 +25,28 @@ public class Enderpearl implements Listener {
2625
private final CombatPlus plugin;
2726
private final WorldUtils worldUtils = new WorldUtils();
2827

29-
private final HashMap<UUID, Long> cooldown = new HashMap<>();
30-
public static String papiCooldown = "Ready";
28+
private static final HashMap<UUID, Long> cooldown = new HashMap<>();
3129

3230
public Enderpearl(CombatPlus plugin) {
3331
this.plugin = plugin;
3432
}
3533

36-
private void taskRun(UUID uuid) {
37-
cooldown.put(uuid, System.currentTimeMillis());
38-
new BukkitRunnable() {
34+
/*
35+
This Listener Adds a cooldown between using Ender Pearls
36+
*/
3937

40-
@Override
41-
public void run() {
38+
public static String getCooldown(UUID uuid) {
39+
if (cooldown.containsKey(uuid)) {
40+
long secondsleft = ((cooldown.get(uuid) / 1000) + Config.Setting.ENDERPEARL_COOLDOWN.getInt()) - (System.currentTimeMillis() / 1000);
41+
if (secondsleft < 1) {
4242
cooldown.remove(uuid);
43-
papiCooldown = "Ready";
43+
return "Ready";
4444
}
45-
}.runTaskLaterAsynchronously(plugin, Config.Setting.ENDERPEARL_COOLDOWN.getInt() * 20);
45+
return secondsleft + "s";
46+
}
47+
return "Ready";
4648
}
4749

48-
/*
49-
This Listener Adds a cooldown between using Ender Pearls
50-
*/
51-
5250
@EventHandler(ignoreCancelled = true)
5351
public void onLaunch(ProjectileLaunchEvent e) {
5452
if (!(e.getEntity().getShooter() instanceof Player)) return;
@@ -64,19 +62,24 @@ public void onLaunch(ProjectileLaunchEvent e) {
6462
player.getInventory().addItem(enderpearl);
6563
}
6664
long secondsLeft = ((cooldown.get(p) / 1000) + Config.Setting.ENDERPEARL_COOLDOWN.getInt()) - (System.currentTimeMillis() / 1000);
65+
if (secondsLeft < 1) {
66+
cooldown.remove(p);
67+
return;
68+
}
6769
player.sendMessage(MsgType.ENDERPEARL_COOLDOWN.getMessage().replaceAll("%seconds%", String.valueOf(secondsLeft)));
6870
} else {
69-
taskRun(p);
70-
if (MiscUtils.isPlaceholderApiEnabled()) {
71-
setupPlaceholder(p);
72-
}
71+
cooldown.put(p, System.currentTimeMillis());
7372
Messenger.debug(player, "&3Ender Pearl Cooldown &f&l>> &6Added to cooldown: &atrue");
7473
if (Config.Setting.ENDERPEARL_ACTIONBAR.getBoolean()) {
7574
new BukkitRunnable() {
7675
@Override
7776
public void run() {
7877
if (cooldown.containsKey(p)) {
7978
long secondsleft = ((cooldown.get(p) / 1000) + Config.Setting.ENDERPEARL_COOLDOWN.getInt()) - (System.currentTimeMillis() / 1000);
79+
if (secondsleft < 1) {
80+
cooldown.remove(p);
81+
cancel();
82+
}
8083
String message = MsgType.ENDERPEARL_COOLDOWN_ACTIONBAR.getMessage().replaceAll("%seconds%", String.valueOf(secondsleft));
8184
player.spigot().sendMessage(ChatMessageType.ACTION_BAR, TextComponent.fromLegacyText(message));
8285
} else {
@@ -87,20 +90,4 @@ public void run() {
8790
}
8891
}
8992
}
90-
91-
private void setupPlaceholder(UUID p) {
92-
93-
new BukkitRunnable() {
94-
95-
@Override
96-
public void run() {
97-
if (cooldown.containsKey(p)) {
98-
long secondsleft = ((cooldown.get(p) / 1000) + Config.Setting.ENDERPEARL_COOLDOWN.getInt()) - (System.currentTimeMillis() / 1000);
99-
papiCooldown = secondsleft + "s";
100-
} else {
101-
cancel();
102-
}
103-
}
104-
}.runTaskTimerAsynchronously(plugin, 0, 20);
105-
}
10693
}

src/main/java/me/nik/combatplus/listeners/GoldenApple.java

Lines changed: 22 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
import me.nik.combatplus.files.Config;
55
import me.nik.combatplus.managers.MsgType;
66
import me.nik.combatplus.utils.Messenger;
7-
import me.nik.combatplus.utils.MiscUtils;
87
import me.nik.combatplus.utils.WorldUtils;
98
import net.md_5.bungee.api.ChatMessageType;
109
import net.md_5.bungee.api.chat.TextComponent;
@@ -25,30 +24,28 @@ public class GoldenApple implements Listener {
2524
private final CombatPlus plugin;
2625
private final WorldUtils worldUtils = new WorldUtils();
2726

28-
private final HashMap<UUID, Long> cooldown = new HashMap<>();
29-
30-
public static String papiCooldown = "Ready";
27+
private static final HashMap<UUID, Long> cooldown = new HashMap<>();
3128

3229
public GoldenApple(CombatPlus plugin) {
3330
this.plugin = plugin;
3431
}
3532

36-
private void taskRun(UUID uuid) {
37-
cooldown.put(uuid, System.currentTimeMillis());
38-
new BukkitRunnable() {
33+
/*
34+
This Listener adds a cooldown between eating Golden Apples
35+
*/
3936

40-
@Override
41-
public void run() {
37+
public static String getCooldown(UUID uuid) {
38+
if (cooldown.containsKey(uuid)) {
39+
long secondsleft = ((cooldown.get(uuid) / 1000) + Config.Setting.COOLDOWN_GOLDEN_APPLE_COOLDOWN.getInt()) - (System.currentTimeMillis() / 1000);
40+
if (secondsleft < 1) {
4241
cooldown.remove(uuid);
43-
papiCooldown = "Ready";
42+
return "Ready";
4443
}
45-
}.runTaskLaterAsynchronously(plugin, Config.Setting.COOLDOWN_GOLDEN_APPLE_COOLDOWN.getInt() * 20);
44+
return secondsleft + "s";
45+
}
46+
return "Ready";
4647
}
4748

48-
/*
49-
This Listener adds a cooldown between eating Golden Apples
50-
*/
51-
5249
@EventHandler(ignoreCancelled = true)
5350
public void onEatGoldenApple(PlayerItemConsumeEvent e) {
5451
if (worldUtils.gappleDisabledWorlds(e.getPlayer())) return;
@@ -59,12 +56,13 @@ public void onEatGoldenApple(PlayerItemConsumeEvent e) {
5956
if (cooldown.containsKey(p)) {
6057
e.setCancelled(true);
6158
long secondsleft = ((cooldown.get(p) / 1000) + Config.Setting.COOLDOWN_GOLDEN_APPLE_COOLDOWN.getInt()) - (System.currentTimeMillis() / 1000);
59+
if (secondsleft < 1) {
60+
cooldown.remove(p);
61+
return;
62+
}
6263
player.sendMessage(MsgType.GOLDEN_APPLE_COOLDOWN.getMessage().replaceAll("%seconds%", String.valueOf(secondsleft)));
6364
} else {
64-
taskRun(p);
65-
if (MiscUtils.isPlaceholderApiEnabled()) {
66-
setupPlaceholder(p);
67-
}
65+
cooldown.put(p, System.currentTimeMillis());
6866
Messenger.debug(player, "&3Golden Apple Cooldown &f&l>> &6Added to cooldown: &atrue");
6967
if (Config.Setting.COOLDOWN_GOLDEN_APPLE_ACTIONBAR.getBoolean()) {
7068
new BukkitRunnable() {
@@ -73,6 +71,10 @@ public void onEatGoldenApple(PlayerItemConsumeEvent e) {
7371
public void run() {
7472
if (cooldown.containsKey(p)) {
7573
long secondsleft = ((cooldown.get(p) / 1000) + Config.Setting.COOLDOWN_GOLDEN_APPLE_COOLDOWN.getInt()) - (System.currentTimeMillis() / 1000);
74+
if (secondsleft < 1) {
75+
cooldown.remove(p);
76+
cancel();
77+
}
7678
String message = MsgType.GOLDEN_APPLE_COOLDOWN_ACTIONBAR.getMessage().replaceAll("%seconds%", String.valueOf(secondsleft));
7779
player.spigot().sendMessage(ChatMessageType.ACTION_BAR, TextComponent.fromLegacyText(message));
7880
} else {
@@ -85,22 +87,6 @@ public void run() {
8587
}
8688
}
8789

88-
private void setupPlaceholder(UUID p) {
89-
90-
new BukkitRunnable() {
91-
92-
@Override
93-
public void run() {
94-
if (cooldown.containsKey(p)) {
95-
long secondsleft = ((cooldown.get(p) / 1000) + Config.Setting.COOLDOWN_GOLDEN_APPLE_COOLDOWN.getInt()) - (System.currentTimeMillis() / 1000);
96-
papiCooldown = secondsleft + "s";
97-
} else {
98-
cancel();
99-
}
100-
}
101-
}.runTaskTimerAsynchronously(plugin, 0, 20);
102-
}
103-
10490
private boolean isGoldenApple(PlayerItemConsumeEvent e) {
10591
ItemStack goldenApple = new ItemStack(Material.GOLDEN_APPLE);
10692
ItemStack consumedItem = e.getItem();
@@ -109,7 +95,7 @@ private boolean isGoldenApple(PlayerItemConsumeEvent e) {
10995
|| plugin.serverVersion("1.10")
11096
|| plugin.serverVersion("1.11")
11197
|| plugin.serverVersion("1.12")) {
112-
return consumedItem.getType().name().contains("GOLDEN_APPLE") &&
98+
return consumedItem.getType().name().equals("GOLDEN_APPLE") &&
11399
Objects.equals(goldenApple.getData(), consumedItem.getData());
114100
} else {
115101
return consumedItem.getType() == Material.GOLDEN_APPLE;

0 commit comments

Comments
 (0)