mirror of
https://github.com/YouHaveTrouble/PreventStabby.git
synced 2026-05-11 21:06:55 +00:00
Fixed CME when refreshing combat
This commit is contained in:
@@ -11,7 +11,6 @@ import org.bukkit.entity.Player;
|
|||||||
import org.bukkit.scheduler.BukkitTask;
|
import org.bukkit.scheduler.BukkitTask;
|
||||||
import java.time.Instant;
|
import java.time.Instant;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
public class PlayerManager {
|
public class PlayerManager {
|
||||||
@@ -27,12 +26,8 @@ public class PlayerManager {
|
|||||||
playerList.put(p.getUniqueId(), playerData);
|
playerList.put(p.getUniqueId(), playerData);
|
||||||
}
|
}
|
||||||
|
|
||||||
combatTrackerTask = Bukkit.getScheduler().runTaskTimerAsynchronously(TogglePvp.getPlugin(), () -> {
|
combatTrackerTask = Bukkit.getScheduler().runTaskTimerAsynchronously(TogglePvp.getPlugin(), () -> playerList.forEach((uuid, playerData) -> {
|
||||||
for (Map.Entry<UUID, PlayerData> set : playerList.entrySet()) {
|
if (!(!CombatTimer.isInCombat(uuid) && playerData.getLastCombatCheck())) {
|
||||||
UUID uuid = set.getKey();
|
|
||||||
PlayerData playerData = set.getValue();
|
|
||||||
if (!CombatTimer.isInCombat(uuid)) {
|
|
||||||
if (playerData.getLastCombatCheck()) {
|
|
||||||
PlayerLeaveCombatEvent playerLeaveCombatEvent = new PlayerLeaveCombatEvent(Bukkit.getPlayer(uuid));
|
PlayerLeaveCombatEvent playerLeaveCombatEvent = new PlayerLeaveCombatEvent(Bukkit.getPlayer(uuid));
|
||||||
Bukkit.getScheduler().runTask(TogglePvp.getPlugin(), () -> {
|
Bukkit.getScheduler().runTask(TogglePvp.getPlugin(), () -> {
|
||||||
Bukkit.getPluginManager().callEvent(playerLeaveCombatEvent);
|
Bukkit.getPluginManager().callEvent(playerLeaveCombatEvent);
|
||||||
@@ -45,12 +40,10 @@ public class PlayerManager {
|
|||||||
PluginMessages.sendActionBar(uuid, TogglePvp.getPlugin().getConfigCache().getLeaving_combat());
|
PluginMessages.sendActionBar(uuid, TogglePvp.getPlugin().getConfigCache().getLeaving_combat());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
set.getValue().setLastCombatCheck(true);
|
playerData.setLastCombatCheck(true);
|
||||||
}
|
}
|
||||||
}
|
}), 20, 20);
|
||||||
}, 20, 20);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void refreshPlayersCacheTime(UUID uuid) {
|
public void refreshPlayersCacheTime(UUID uuid) {
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ import eu.endermite.togglepvp.TogglePvp;
|
|||||||
import eu.endermite.togglepvp.api.event.PlayerEnterCombatEvent;
|
import eu.endermite.togglepvp.api.event.PlayerEnterCombatEvent;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
import java.time.Instant;
|
import java.time.Instant;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
@@ -16,8 +15,8 @@ public class CombatTimer {
|
|||||||
long combattime = TogglePvp.getPlugin().getSmartCache().getPlayerData(uuid).getCombattime();
|
long combattime = TogglePvp.getPlugin().getSmartCache().getPlayerData(uuid).getCombattime();
|
||||||
|
|
||||||
Player player = Bukkit.getPlayer(uuid);
|
Player player = Bukkit.getPlayer(uuid);
|
||||||
Bukkit.getScheduler().runTask(TogglePvp.getPlugin(), () -> {
|
|
||||||
PlayerEnterCombatEvent playerEnterCombatEvent = new PlayerEnterCombatEvent(player);
|
PlayerEnterCombatEvent playerEnterCombatEvent = new PlayerEnterCombatEvent(player);
|
||||||
|
Bukkit.getScheduler().runTask(TogglePvp.getPlugin(), () -> {
|
||||||
Bukkit.getPluginManager().callEvent(playerEnterCombatEvent);
|
Bukkit.getPluginManager().callEvent(playerEnterCombatEvent);
|
||||||
if (playerEnterCombatEvent.isCancelled())
|
if (playerEnterCombatEvent.isCancelled())
|
||||||
return;
|
return;
|
||||||
@@ -27,10 +26,8 @@ public class CombatTimer {
|
|||||||
PluginMessages.sendActionBar(uuid, TogglePvp.getPlugin().getConfigCache().getEntering_combat());
|
PluginMessages.sendActionBar(uuid, TogglePvp.getPlugin().getConfigCache().getEntering_combat());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
} catch (Exception ignored) {
|
||||||
|
}
|
||||||
|
|
||||||
} catch (Exception ignored) {}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void refreshPlayersCombatTime(UUID attacker_uuid, UUID victim_uuid) {
|
public static void refreshPlayersCombatTime(UUID attacker_uuid, UUID victim_uuid) {
|
||||||
|
|||||||
Reference in New Issue
Block a user