Skip to content

Commit

Permalink
Fixed attack cooldown not restoring properly
Browse files Browse the repository at this point in the history
  • Loading branch information
Despical committed Apr 30, 2024
1 parent 850b047 commit 96961bf
Show file tree
Hide file tree
Showing 4 changed files with 36 additions and 8 deletions.
4 changes: 2 additions & 2 deletions src/main/java/me/despical/oitc/Main.java
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@
import me.despical.oitc.handlers.language.LanguageManager;
import org.bstats.bukkit.Metrics;
import me.despical.commons.database.MysqlDatabase;
import me.despical.commons.miscellaneous.AttributeUtils;
import me.despical.commons.scoreboard.ScoreboardLib;
import me.despical.commons.serializer.InventorySerializer;
import me.despical.commons.util.Collections;
Expand Down Expand Up @@ -87,7 +86,8 @@ public void onDisable() {
arena.getScoreboardManager().stopAllScoreboards();

for (Player player : arena.getPlayers()) {
AttributeUtils.resetAttackCooldown(player);
User user = userManager.getUser(player);
user.resetAttackCooldown();

arena.teleportToEndLocation(player);
arena.doBarAction(0, player);
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/me/despical/oitc/arena/Arena.java
Original file line number Diff line number Diff line change
Expand Up @@ -438,7 +438,6 @@ public void run() {

for (Player player : players) {
ArenaUtils.showPlayersOutsideTheGame(player, this);
AttributeUtils.resetAttackCooldown(player);

for (final User users : plugin.getUserManager().getUsers()) {
final Player usersPlayer = users.getPlayer();
Expand All @@ -465,6 +464,7 @@ public void run() {
doBarAction(0, player);

User user = plugin.getUserManager().getUser(player);
user.resetAttackCooldown();
user.performReward(Reward.RewardType.END_GAME);
user.removeScoreboard();
}
Expand Down
10 changes: 5 additions & 5 deletions src/main/java/me/despical/oitc/arena/ArenaManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -140,6 +140,7 @@ public static void joinAttempt(Player player, Arena arena) {
user.addGameItem("leave-item");
user.resetStats();
user.heal();
user.updateAttackCooldown();

if (arena.isArenaState(ArenaState.WAITING_FOR_PLAYERS, ArenaState.STARTING) && player.isOp()) {
user.addGameItem("force-start-item");
Expand All @@ -159,7 +160,9 @@ public static void joinAttempt(Player player, Arena arena) {

ArenaUtils.hidePlayer(player, arena);

if (ArenaUtils.shouldHide()) {
hide_player: {
if (!ArenaUtils.shouldHide()) break hide_player;

for (Player spectator : arena.getPlayers()) {
if (plugin.getUserManager().getUser(spectator).isSpectator()) {
PlayerUtils.hidePlayer(player, spectator, plugin);
Expand All @@ -172,8 +175,6 @@ public static void joinAttempt(Player player, Arena arena) {
return;
}

AttributeUtils.setAttackCooldown(player, plugin.getConfig().getDouble("Hit-Cooldown-Delay", 4));

arena.teleportToLobby(player);
arena.doBarAction(1, player);
arena.showPlayers();
Expand Down Expand Up @@ -215,9 +216,8 @@ public static void leaveAttempt(Player player, Arena arena, boolean quit) {

chatManager.broadcastAction(arena, user, ActionType.LEAVE);

AttributeUtils.resetAttackCooldown(player);

user.heal();
user.resetAttackCooldown();
user.setSpectator(false);
arena.getScoreboardManager().removeScoreboard(player);
arena.doBarAction(0, player);
Expand Down
28 changes: 28 additions & 0 deletions src/main/java/me/despical/oitc/user/User.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@

package me.despical.oitc.user;

import me.despical.commons.ReflectionUtils;
import me.despical.commons.compat.Titles;
import me.despical.commons.miscellaneous.AttributeUtils;
import me.despical.oitc.ConfigPreferences;
Expand All @@ -27,12 +28,14 @@
import me.despical.oitc.arena.Arena;
import me.despical.oitc.handlers.items.GameItem;
import me.despical.oitc.handlers.rewards.Reward;
import org.bukkit.attribute.Attribute;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.scoreboard.Scoreboard;

import java.util.EnumMap;
import java.util.Map;
import java.util.Optional;
import java.util.UUID;

/**
Expand All @@ -49,6 +52,7 @@ public class User {
private final Map<StatsStorage.StatisticType, Integer> stats;

private boolean spectator;
private double attackCooldown;
private Scoreboard cachedScoreboard;

public User(Player player) {
Expand Down Expand Up @@ -144,4 +148,28 @@ public void removeScoreboard() {
public void sendTitle(String title, String subTitle) {
Titles.sendTitle(this.getPlayer(), 10, 40, 10, title, subTitle);
}

public void updateAttackCooldown() {
if (!ReflectionUtils.supports(9)) return;

Player player = this.getPlayer();

if (player == null) return;

Optional.ofNullable(player.getAttribute(Attribute.GENERIC_ATTACK_SPEED)).ifPresent(attribute -> {
this.attackCooldown = attribute.getBaseValue();

attribute.setBaseValue(plugin.getConfig().getDouble("Hit-Cooldown-Delay", 4));
});
}

public void resetAttackCooldown() {
if (!ReflectionUtils.supports(9)) return;

Player player = this.getPlayer();

if (player == null) return;

Optional.ofNullable(player.getAttribute(Attribute.GENERIC_ATTACK_SPEED)).ifPresent(attribute -> attribute.setBaseValue(this.attackCooldown));
}
}

0 comments on commit 96961bf

Please sign in to comment.