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());
|
PlayerData playerData = TogglePvp.getPlugin().getSqLite().getPlayerInfo(player.getUniqueId());
|
||||||
|
|
||||||
System.out.println(playerData.isPvpEnabled());
|
|
||||||
|
|
||||||
TogglePvp.getPlugin().getPlayerManager().addPlayer(player.getUniqueId(), playerData);
|
TogglePvp.getPlugin().getPlayerManager().addPlayer(player.getUniqueId(), playerData);
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -8,10 +8,12 @@ public class PlayerData {
|
|||||||
|
|
||||||
private long cachetime, combattime;
|
private long cachetime, combattime;
|
||||||
private boolean pvpEnabled;
|
private boolean pvpEnabled;
|
||||||
|
private boolean lastCombatCheck;
|
||||||
|
|
||||||
public PlayerData(boolean pvpEnabled) {
|
public PlayerData(boolean pvpEnabled) {
|
||||||
this.pvpEnabled = pvpEnabled;
|
this.pvpEnabled = pvpEnabled;
|
||||||
this.combattime = Instant.now().getEpochSecond()-1;
|
this.combattime = Instant.now().getEpochSecond()-1;
|
||||||
|
|
||||||
refreshCachetime();
|
refreshCachetime();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -42,4 +44,12 @@ public class PlayerData {
|
|||||||
public void refreshCombatTime() {
|
public void refreshCombatTime() {
|
||||||
this.combattime = Instant.now().getEpochSecond()+ TogglePvp.getPlugin().getConfigCache().getCombat_time();
|
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;
|
package eu.endermite.togglepvp.players;
|
||||||
|
|
||||||
import eu.endermite.togglepvp.TogglePvp;
|
import eu.endermite.togglepvp.TogglePvp;
|
||||||
|
import eu.endermite.togglepvp.util.CombatTimer;
|
||||||
|
import eu.endermite.togglepvp.util.PluginMessages;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.scheduler.BukkitTask;
|
||||||
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 {
|
||||||
|
|
||||||
@Getter HashMap<UUID, PlayerData> playerList = new HashMap<>();
|
@Getter
|
||||||
|
HashMap<UUID, PlayerData> playerList = new HashMap<>();
|
||||||
|
|
||||||
|
public final BukkitTask combatTrackerTask;
|
||||||
|
|
||||||
public PlayerManager() {
|
public PlayerManager() {
|
||||||
for (Player p : Bukkit.getOnlinePlayers()) {
|
for (Player p : Bukkit.getOnlinePlayers()) {
|
||||||
PlayerData playerData = TogglePvp.getPlugin().getSqLite().getPlayerInfo(p.getUniqueId());
|
PlayerData playerData = TogglePvp.getPlugin().getSqLite().getPlayerInfo(p.getUniqueId());
|
||||||
playerList.put(p.getUniqueId(), playerData);
|
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) {
|
public void refreshPlayersCacheTime(UUID uuid) {
|
||||||
@@ -36,25 +57,21 @@ public class PlayerManager {
|
|||||||
playerList.put(uuid, data);
|
playerList.put(uuid, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void removePlayer(UUID uuid) {
|
|
||||||
playerList.remove(uuid);
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean getPlayerPvPState(UUID 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) {
|
public void setPlayerPvpState(UUID uuid, boolean state) {
|
||||||
playerList.get(uuid).setPvpEnabled(state);
|
TogglePvp.getPlugin().getSmartCache().getPlayerData(uuid).setPvpEnabled(state);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean togglePlayerPvpState(UUID uuid) {
|
public boolean togglePlayerPvpState(UUID uuid) {
|
||||||
boolean currentState = playerList.get(uuid).isPvpEnabled();
|
SmartCache smartCache = TogglePvp.getPlugin().getSmartCache();
|
||||||
if (currentState) {
|
if (smartCache.getPlayerData(uuid).isPvpEnabled()) {
|
||||||
playerList.get(uuid).setPvpEnabled(false);
|
smartCache.getPlayerData(uuid).setPvpEnabled(false);
|
||||||
return false;
|
return false;
|
||||||
} else {
|
} else {
|
||||||
playerList.get(uuid).setPvpEnabled(true);
|
smartCache.getPlayerData(uuid).setPvpEnabled(true);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
package eu.endermite.togglepvp.util;
|
package eu.endermite.togglepvp.util;
|
||||||
|
|
||||||
import eu.endermite.togglepvp.TogglePvp;
|
import eu.endermite.togglepvp.TogglePvp;
|
||||||
import eu.endermite.togglepvp.players.SmartCache;
|
|
||||||
import java.time.Instant;
|
import java.time.Instant;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user