mirror of
https://github.com/YouHaveTrouble/PreventStabby.git
synced 2026-05-12 05:16:55 +00:00
it is ready.
This commit is contained in:
@@ -19,8 +19,6 @@ public class PlayerJoinAndLeaveListener implements Listener {
|
||||
|
||||
PlayerData playerData = TogglePvp.getPlugin().getSqLite().getPlayerInfo(player.getUniqueId());
|
||||
|
||||
System.out.println(playerData.isPvpEnabled());
|
||||
|
||||
TogglePvp.getPlugin().getPlayerManager().addPlayer(player.getUniqueId(), playerData);
|
||||
}
|
||||
/**
|
||||
|
||||
@@ -8,10 +8,12 @@ public class PlayerData {
|
||||
|
||||
private long cachetime, combattime;
|
||||
private boolean pvpEnabled;
|
||||
private boolean lastCombatCheck;
|
||||
|
||||
public PlayerData(boolean pvpEnabled) {
|
||||
this.pvpEnabled = pvpEnabled;
|
||||
this.combattime = Instant.now().getEpochSecond()-1;
|
||||
|
||||
refreshCachetime();
|
||||
}
|
||||
|
||||
@@ -42,4 +44,12 @@ public class PlayerData {
|
||||
public void refreshCombatTime() {
|
||||
this.combattime = Instant.now().getEpochSecond()+ TogglePvp.getPlugin().getConfigCache().getCombat_time();
|
||||
}
|
||||
|
||||
public boolean getLastCombatCheck() {
|
||||
return lastCombatCheck;
|
||||
}
|
||||
|
||||
public void setLastCombatCheck(boolean bool) {
|
||||
lastCombatCheck = bool;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,21 +1,42 @@
|
||||
package eu.endermite.togglepvp.players;
|
||||
|
||||
import eu.endermite.togglepvp.TogglePvp;
|
||||
import eu.endermite.togglepvp.util.CombatTimer;
|
||||
import eu.endermite.togglepvp.util.PluginMessages;
|
||||
import lombok.Getter;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.scheduler.BukkitTask;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
|
||||
public class PlayerManager {
|
||||
|
||||
@Getter HashMap<UUID, PlayerData> playerList = new HashMap<>();
|
||||
@Getter
|
||||
HashMap<UUID, PlayerData> playerList = new HashMap<>();
|
||||
|
||||
public final BukkitTask combatTrackerTask;
|
||||
|
||||
public PlayerManager() {
|
||||
for (Player p : Bukkit.getOnlinePlayers()) {
|
||||
PlayerData playerData = TogglePvp.getPlugin().getSqLite().getPlayerInfo(p.getUniqueId());
|
||||
playerList.put(p.getUniqueId(), playerData);
|
||||
}
|
||||
|
||||
combatTrackerTask = Bukkit.getScheduler().runTaskTimerAsynchronously(TogglePvp.getPlugin(), () -> {
|
||||
for (Map.Entry<UUID, PlayerData> set : playerList.entrySet()) {
|
||||
UUID uuid = set.getKey();
|
||||
if (!CombatTimer.isInCombat(uuid)) {
|
||||
if (set.getValue().getLastCombatCheck()) {
|
||||
set.getValue().setLastCombatCheck(false);
|
||||
PluginMessages.sendActionBar(uuid, TogglePvp.getPlugin().getConfigCache().getLeaving_combat());
|
||||
}
|
||||
} else {
|
||||
set.getValue().setLastCombatCheck(true);
|
||||
}
|
||||
}
|
||||
}, 20, 20);
|
||||
}
|
||||
|
||||
public void refreshPlayersCacheTime(UUID uuid) {
|
||||
@@ -36,25 +57,21 @@ public class PlayerManager {
|
||||
playerList.put(uuid, data);
|
||||
}
|
||||
|
||||
public void removePlayer(UUID uuid) {
|
||||
playerList.remove(uuid);
|
||||
}
|
||||
|
||||
public boolean getPlayerPvPState(UUID uuid) {
|
||||
return playerList.get(uuid).isPvpEnabled();
|
||||
return TogglePvp.getPlugin().getSmartCache().getPlayerData(uuid).isPvpEnabled();
|
||||
}
|
||||
|
||||
public void setPlayerPvpState(UUID uuid, boolean state) {
|
||||
playerList.get(uuid).setPvpEnabled(state);
|
||||
TogglePvp.getPlugin().getSmartCache().getPlayerData(uuid).setPvpEnabled(state);
|
||||
}
|
||||
|
||||
public boolean togglePlayerPvpState(UUID uuid) {
|
||||
boolean currentState = playerList.get(uuid).isPvpEnabled();
|
||||
if (currentState) {
|
||||
playerList.get(uuid).setPvpEnabled(false);
|
||||
SmartCache smartCache = TogglePvp.getPlugin().getSmartCache();
|
||||
if (smartCache.getPlayerData(uuid).isPvpEnabled()) {
|
||||
smartCache.getPlayerData(uuid).setPvpEnabled(false);
|
||||
return false;
|
||||
} else {
|
||||
playerList.get(uuid).setPvpEnabled(true);
|
||||
smartCache.getPlayerData(uuid).setPvpEnabled(true);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package eu.endermite.togglepvp.util;
|
||||
|
||||
import eu.endermite.togglepvp.TogglePvp;
|
||||
import eu.endermite.togglepvp.players.SmartCache;
|
||||
import java.time.Instant;
|
||||
import java.util.UUID;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user