mirror of
https://github.com/Zrips/Jobs.git
synced 2025-03-12 06:40:09 +01:00
Fixaru for multiserver compatibility issue
This commit is contained in:
parent
0b1c035c4b
commit
0a7072ffab
@ -134,8 +134,7 @@ public class PlayerManager {
|
||||
if (players.get(player.getName()) != null)
|
||||
players.remove(player.getName().toLowerCase());
|
||||
|
||||
JobsPlayer jPlayer = playersUUID.get(player.getUniqueId()) != null ?
|
||||
playersUUID.remove(player.getUniqueId()) : null;
|
||||
JobsPlayer jPlayer = playersUUID.get(player.getUniqueId()) != null ? playersUUID.remove(player.getUniqueId()) : null;
|
||||
return jPlayer;
|
||||
}
|
||||
|
||||
@ -182,7 +181,10 @@ public class PlayerManager {
|
||||
JobsPlayer jPlayer = playersUUIDCache.get(player.getUniqueId());
|
||||
|
||||
if (jPlayer == null || Jobs.getGCManager().MultiServerCompatability()) {
|
||||
jPlayer = Jobs.getJobsDAO().loadFromDao(player);
|
||||
if (jPlayer != null)
|
||||
jPlayer = Jobs.getJobsDAO().loadFromDao(jPlayer);
|
||||
else
|
||||
jPlayer = Jobs.getJobsDAO().loadFromDao(player);
|
||||
|
||||
// Lets load quest progresion
|
||||
PlayerInfo info = Jobs.getJobsDAO().loadPlayerData(player.getUniqueId());
|
||||
@ -214,6 +216,7 @@ public class PlayerManager {
|
||||
|
||||
jPlayer.onDisconnect();
|
||||
if (Jobs.getGCManager().saveOnDisconnect()) {
|
||||
jPlayer.setSaved(false);
|
||||
jPlayer.save();
|
||||
}
|
||||
}
|
||||
@ -920,6 +923,7 @@ public class PlayerManager {
|
||||
return false;
|
||||
return Jobs.getReflections().hasNbtString(item, JobsItemBoost);
|
||||
}
|
||||
|
||||
private final String JobsItemBoost = "JobsItemBoost";
|
||||
|
||||
public JobItems getJobsItemByNbt(ItemStack item) {
|
||||
|
@ -452,8 +452,10 @@ public class GeneralConfigManager {
|
||||
"This will force to load players data every time he is logging in to have most up to date data instead of having preloaded data",
|
||||
"This will enable automatically save-on-disconnect feature");
|
||||
MultiServerCompatability = c.get("MultiServerCompatability", false);
|
||||
if (MultiServerCompatability)
|
||||
if (MultiServerCompatability) {
|
||||
c.set("save-on-disconnect", true);
|
||||
saveOnDisconnect = true;
|
||||
}
|
||||
|
||||
c.addComment("Optimizations.NewVersion",
|
||||
"When set to true staff will be informed about new Jobs plugin version", "You need to have jobs.versioncheck permission node");
|
||||
|
@ -365,11 +365,24 @@ public class JobsPlayer {
|
||||
* get the playerUUID
|
||||
* @return the playerUUID
|
||||
*/
|
||||
@Deprecated
|
||||
public UUID getPlayerUUID() {
|
||||
return getUniqueId();
|
||||
}
|
||||
|
||||
/**
|
||||
* get the playerUUID
|
||||
* @return the playerUUID
|
||||
*/
|
||||
public UUID getUniqueId() {
|
||||
return playerUUID;
|
||||
}
|
||||
|
||||
public void setPlayerUUID(UUID playerUUID) {
|
||||
setUniqueId(playerUUID);
|
||||
}
|
||||
|
||||
public void setUniqueId(UUID playerUUID) {
|
||||
this.playerUUID = playerUUID;
|
||||
}
|
||||
|
||||
|
@ -1707,6 +1707,34 @@ public abstract class JobsDAO {
|
||||
return;
|
||||
}
|
||||
|
||||
public JobsPlayer loadFromDao(JobsPlayer jPlayer) {
|
||||
|
||||
List<JobsDAOData> list = getAllJobs(jPlayer.getUserName(), jPlayer.getUniqueId());
|
||||
// synchronized (jPlayer.saveLock) {
|
||||
jPlayer.progression.clear();
|
||||
for (JobsDAOData jobdata : list) {
|
||||
if (!plugin.isEnabled())
|
||||
return null;
|
||||
|
||||
// add the job
|
||||
Job job = Jobs.getJob(jobdata.getJobName());
|
||||
if (job == null)
|
||||
continue;
|
||||
|
||||
// create the progression object
|
||||
JobProgression jobProgression = new JobProgression(job, jPlayer, jobdata.getLevel(), jobdata.getExperience());
|
||||
// calculate the max level
|
||||
// add the progression level.
|
||||
jPlayer.progression.add(jobProgression);
|
||||
}
|
||||
jPlayer.reloadMaxExperience();
|
||||
jPlayer.reloadLimits();
|
||||
jPlayer.setUserId(Jobs.getPlayerManager().getPlayerId(jPlayer.getUniqueId()));
|
||||
loadPoints(jPlayer);
|
||||
// }
|
||||
return jPlayer;
|
||||
}
|
||||
|
||||
public JobsPlayer loadFromDao(OfflinePlayer player) {
|
||||
|
||||
JobsPlayer jPlayer = new JobsPlayer(player.getName());
|
||||
|
Loading…
Reference in New Issue
Block a user