This commit is contained in:
Ajneb97 2024-01-25 11:26:32 -03:00
parent 79569c9b9e
commit 42e977e427
6 changed files with 31 additions and 7 deletions

View file

@ -1,5 +1,6 @@
package pk.ajneb97.configs; package pk.ajneb97.configs;
import org.bukkit.Bukkit;
import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.FileConfiguration;
import pk.ajneb97.PlayerKits2; import pk.ajneb97.PlayerKits2;
import pk.ajneb97.model.PlayerData; import pk.ajneb97.model.PlayerData;
@ -154,8 +155,11 @@ public class PlayersConfigManager {
public void saveConfigs(){ public void saveConfigs(){
ArrayList<PlayerData> players = plugin.getPlayerDataManager().getPlayers(); ArrayList<PlayerData> players = plugin.getPlayerDataManager().getPlayers();
for(PlayerData playerData : players) { for(PlayerData playerData : players) {
if(playerData.isModified()){
saveConfig(playerData); saveConfig(playerData);
} }
playerData.setModified(false);
}
} }
} }

View file

@ -35,6 +35,7 @@ public class PlayerDataManager {
if(create){ if(create){
PlayerData playerData = new PlayerData(player.getName(),player.getUniqueId().toString()); PlayerData playerData = new PlayerData(player.getName(),player.getUniqueId().toString());
playerData.setModified(true);
players.add(playerData); players.add(playerData);
return playerData; return playerData;
} }
@ -71,6 +72,7 @@ public class PlayerDataManager {
public void setKitCooldown(Player player,String kitName,long cooldown){ public void setKitCooldown(Player player,String kitName,long cooldown){
PlayerData playerData = getPlayer(player,true); PlayerData playerData = getPlayer(player,true);
boolean creating = playerData.setKitCooldown(kitName,cooldown); boolean creating = playerData.setKitCooldown(kitName,cooldown);
playerData.setModified(true);
if(plugin.getMySQLConnection() != null){ if(plugin.getMySQLConnection() != null){
plugin.getMySQLConnection().updateKit(playerData,playerData.getKit(kitName),creating); plugin.getMySQLConnection().updateKit(playerData,playerData.getKit(kitName),creating);
} }
@ -95,6 +97,7 @@ public class PlayerDataManager {
public void setKitOneTime(Player player,String kitName){ public void setKitOneTime(Player player,String kitName){
PlayerData playerData = getPlayer(player,true); PlayerData playerData = getPlayer(player,true);
boolean creating = playerData.setKitOneTime(kitName); boolean creating = playerData.setKitOneTime(kitName);
playerData.setModified(true);
if(plugin.getMySQLConnection() != null){ if(plugin.getMySQLConnection() != null){
plugin.getMySQLConnection().updateKit(playerData,playerData.getKit(kitName),creating); plugin.getMySQLConnection().updateKit(playerData,playerData.getKit(kitName),creating);
} }
@ -112,6 +115,7 @@ public class PlayerDataManager {
public void setKitBought(Player player,String kitName){ public void setKitBought(Player player,String kitName){
PlayerData playerData = getPlayer(player,true); PlayerData playerData = getPlayer(player,true);
boolean creating = playerData.setKitBought(kitName); boolean creating = playerData.setKitBought(kitName);
playerData.setModified(true);
if(plugin.getMySQLConnection() != null){ if(plugin.getMySQLConnection() != null){
plugin.getMySQLConnection().updateKit(playerData,playerData.getKit(kitName),creating); plugin.getMySQLConnection().updateKit(playerData,playerData.getKit(kitName),creating);
} }
@ -135,6 +139,7 @@ public class PlayerDataManager {
} }
playerData.resetKit(kitName); playerData.resetKit(kitName);
playerData.setModified(true);
if(plugin.getMySQLConnection() != null){ if(plugin.getMySQLConnection() != null){
plugin.getMySQLConnection().resetKit(playerData.getUuid(),kitName); plugin.getMySQLConnection().resetKit(playerData.getUuid(),kitName);
} }
@ -173,9 +178,14 @@ public class PlayerDataManager {
PlayerData playerData = getPlayerByUUID(player.getUniqueId().toString()); PlayerData playerData = getPlayerByUUID(player.getUniqueId().toString());
if(playerData == null){ if(playerData == null){
firstJoin = true; firstJoin = true;
players.add(new PlayerData(player.getName(),player.getUniqueId().toString())); playerData = new PlayerData(player.getName(),player.getUniqueId().toString());
playerData.setModified(true);
players.add(playerData);
}else{ }else{
if(!playerData.getName().equals(player.getName())){
playerData.setName(player.getName()); playerData.setName(player.getName());
playerData.setModified(true);
}
} }
if(firstJoin){ if(firstJoin){

View file

@ -8,11 +8,13 @@ public class PlayerData {
private String uuid; private String uuid;
private ArrayList<PlayerDataKit> kits; private ArrayList<PlayerDataKit> kits;
private boolean modified;
public PlayerData(String name,String uuid){ public PlayerData(String name,String uuid){
this.name = name; this.name = name;
this.uuid = uuid; this.uuid = uuid;
this.kits = new ArrayList<PlayerDataKit>(); this.kits = new ArrayList<PlayerDataKit>();
this.modified = false;
} }
public String getName() { public String getName() {
@ -43,6 +45,14 @@ public class PlayerData {
this.kits.add(kit); this.kits.add(kit);
} }
public boolean isModified() {
return modified;
}
public void setModified(boolean modified) {
this.modified = modified;
}
public PlayerDataKit getKit(String kitName){ public PlayerDataKit getKit(String kitName){
for(PlayerDataKit kit : kits){ for(PlayerDataKit kit : kits){
if(kit.getName().equals(kitName)){ if(kit.getName().equals(kitName)){

View file

@ -24,7 +24,7 @@ public class InventoryUpdateTaskManager {
public void run() { public void run() {
execute(); execute();
} }
}.runTaskTimerAsynchronously(plugin,0L,20L); }.runTaskTimer(plugin,0L,20L);
} }
public void execute(){ public void execute(){

View file

@ -16,8 +16,8 @@ public class PlayerDataSaveTask {
end = true; end = true;
} }
public void start(int minutes) { public void start(int seconds) {
long ticks = minutes*60*20; long ticks = seconds* 20L;
new BukkitRunnable() { new BukkitRunnable() {
@Override @Override

View file

@ -1,5 +1,5 @@
main: pk.ajneb97.PlayerKits2 main: pk.ajneb97.PlayerKits2
version: 1.8.4 version: 1.8.5
name: PlayerKits2 name: PlayerKits2
api-version: 1.13 api-version: 1.13
softdepend: [Vault,PlaceholderAPI] softdepend: [Vault,PlaceholderAPI]