mirror of
https://github.com/Zrips/Jobs.git
synced 2024-11-29 14:05:25 +01:00
2.54.1 update
This commit is contained in:
parent
43abccf7d7
commit
8f129bc217
@ -1,6 +1,7 @@
|
||||
package com.gamingmesh.jobs.Gui;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
@ -61,7 +62,7 @@ public class GuiTools {
|
||||
|
||||
List<JobProgression> pJobs = JPlayer.getJobProgression();
|
||||
|
||||
Inventory GuiInv = Bukkit.createInventory(null, GuiSize, "Pick your job!");
|
||||
Inventory GuiInv = Bukkit.createInventory(null, GuiSize, Language.getMessage("command.info.gui.pickjob"));
|
||||
|
||||
for (int i = 0; i < JobsList.size(); i++) {
|
||||
|
||||
@ -92,16 +93,17 @@ public class GuiTools {
|
||||
else
|
||||
Lore.add(Language.getMessage("command.browse.output.bonus").replace("[amount]", String.valueOf((int) (job.getBonus() * 100) / 100.0)));
|
||||
|
||||
Lore.add(job.getDescription());
|
||||
Lore.addAll(Arrays.asList(job.getDescription().split("/n")));
|
||||
|
||||
if (job.getMaxSlots() != null)
|
||||
Lore.add(Language.getMessage("command.info.gui.leftSlots") + ((job.getMaxSlots() - Jobs.getUsedSlots(job)) > 0 ? (job.getMaxSlots() - Jobs.getUsedSlots(job)) : 0));
|
||||
Lore.add(Language.getMessage("command.info.gui.leftSlots") + ((job.getMaxSlots() - Jobs.getUsedSlots(job)) > 0 ? (job.getMaxSlots() - Jobs.getUsedSlots(
|
||||
job)) : 0));
|
||||
|
||||
Lore.add(Language.getMessage("command.info.gui.actions"));
|
||||
for (ActionType actionType : ActionType.values()) {
|
||||
List<JobInfo> info = job.getJobInfo(actionType);
|
||||
if (info != null && !info.isEmpty()) {
|
||||
Lore.add(ChatColor.translateAlternateColorCodes('&', "&e" + actionType.getName()));
|
||||
Lore.add(ChatColor.translateAlternateColorCodes('&', "&e" + Language.getMessage("command.info.output." + actionType.getName().toLowerCase() + ".info")));
|
||||
}
|
||||
}
|
||||
|
||||
@ -227,7 +229,7 @@ public class GuiTools {
|
||||
// backButton = 53;
|
||||
// }
|
||||
|
||||
Inventory GuiInv = Bukkit.createInventory(null, GuiSize, job.getName() + " Info!");
|
||||
Inventory GuiInv = Bukkit.createInventory(null, GuiSize, Language.getMessage("command.info.gui.jobinfo").replace("[jobname]", job.getName()));
|
||||
|
||||
for (int i1 = 0; i1 < items.size(); i1++) {
|
||||
GuiInv.setItem(i1, items.get(i1));
|
||||
|
@ -341,7 +341,8 @@ public class Jobs {
|
||||
paymentLimit.put(playername, data);
|
||||
} else {
|
||||
PaymentData data = paymentLimit.get(playername);
|
||||
if (data.IsReachedMoneyLimit(ConfigManager.getJobsConfiguration().EconomyLimitTimeLimit, ConfigManager.getJobsConfiguration().EconomyLimitMoneyLimit)) {
|
||||
JobsPlayer JPlayer = Jobs.getPlayerManager().getJobsPlayerOffline(player);
|
||||
if (data.IsReachedMoneyLimit(ConfigManager.getJobsConfiguration().EconomyLimitTimeLimit, JPlayer.getMoneyLimit())) {
|
||||
if (player.isOnline() && !data.Informed && !data.isReseted()) {
|
||||
((Player) player).sendMessage(Language.getMessage("command.limit.output.reachedlimit"));
|
||||
((Player) player).sendMessage(Language.getMessage("command.limit.output.reachedlimit2"));
|
||||
@ -379,7 +380,8 @@ public class Jobs {
|
||||
ExpLimit.put(playername, data);
|
||||
} else {
|
||||
PaymentData data = ExpLimit.get(playername);
|
||||
if (data.IsReachedExpLimit(ConfigManager.getJobsConfiguration().EconomyExpTimeLimit, ConfigManager.getJobsConfiguration().EconomyExpLimit)) {
|
||||
JobsPlayer JPlayer = Jobs.getPlayerManager().getJobsPlayerOffline(player);
|
||||
if (data.IsReachedExpLimit(ConfigManager.getJobsConfiguration().EconomyExpTimeLimit, JPlayer.getExpLimit())) {
|
||||
if (player.isOnline() && !data.Informed && !data.isReseted()) {
|
||||
((Player) player).sendMessage(Language.getMessage("command.limit.output.reachedExplimit"));
|
||||
((Player) player).sendMessage(Language.getMessage("command.limit.output.reachedExplimit2"));
|
||||
|
@ -571,6 +571,8 @@ public class PlayerManager {
|
||||
}
|
||||
if (jPlayer.isOnline()) {
|
||||
jPlayer.reloadHonorific();
|
||||
jPlayer.reloadMoneyLimit();
|
||||
jPlayer.reloadExpLimit();
|
||||
Jobs.getPermissionHandler().recalculatePermissions(jPlayer);
|
||||
}
|
||||
}
|
||||
|
@ -643,7 +643,7 @@ public class JobsCommands implements CommandExecutor {
|
||||
|
||||
lines.add(builder.toString());
|
||||
if (!job.getDescription().isEmpty()) {
|
||||
lines.add(" - " + job.getDescription());
|
||||
lines.add(" - " + job.getDescription().replace("/n", ""));
|
||||
}
|
||||
}
|
||||
|
||||
@ -656,11 +656,13 @@ public class JobsCommands implements CommandExecutor {
|
||||
((Player) sender).openInventory(GuiTools.CreateJobsGUI((Player) sender));
|
||||
}
|
||||
|
||||
if (ConfigManager.getJobsConfiguration().JobsGUIShowChatBrowse) {
|
||||
sender.sendMessage(Language.getMessage("command.browse.output.header"));
|
||||
for (String line : lines) {
|
||||
sender.sendMessage(line);
|
||||
}
|
||||
sender.sendMessage(Language.getMessage("command.browse.output.footer"));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -1268,6 +1270,7 @@ public class JobsCommands implements CommandExecutor {
|
||||
player.sendMessage(Language.getMessage("command.limit.output.notenabled"));
|
||||
return true;
|
||||
}
|
||||
JobsPlayer JPlayer = Jobs.getPlayerManager().getJobsPlayer(player);
|
||||
|
||||
String playername = player.getName();
|
||||
|
||||
@ -1283,8 +1286,8 @@ public class JobsCommands implements CommandExecutor {
|
||||
player.sendMessage(lefttimemessage);
|
||||
|
||||
String message = Language.getMessage("command.limit.output.moneylimit");
|
||||
message = message.replace("%money%", String.valueOf(data.GetAmountBylimit(ConfigManager.getJobsConfiguration().EconomyLimitMoneyLimit)));
|
||||
message = message.replace("%totalmoney%", String.valueOf(ConfigManager.getJobsConfiguration().EconomyLimitMoneyLimit));
|
||||
message = message.replace("%money%", String.valueOf(data.GetAmountBylimit(JPlayer.getMoneyLimit())));
|
||||
message = message.replace("%totalmoney%", String.valueOf(JPlayer.getMoneyLimit()));
|
||||
player.sendMessage(message);
|
||||
|
||||
} else {
|
||||
@ -1315,7 +1318,7 @@ public class JobsCommands implements CommandExecutor {
|
||||
player.sendMessage(message);
|
||||
|
||||
message = Language.getMessage("command.limit.output.moneylimit").replace("%money%", "0.0");
|
||||
message = message.replace("%totalmoney%", String.valueOf(ConfigManager.getJobsConfiguration().EconomyLimitMoneyLimit));
|
||||
message = message.replace("%totalmoney%", String.valueOf(JPlayer.getMoneyLimit()));
|
||||
player.sendMessage(message);
|
||||
}
|
||||
|
||||
@ -1330,8 +1333,8 @@ public class JobsCommands implements CommandExecutor {
|
||||
player.sendMessage(lefttimemessage);
|
||||
|
||||
String message = Language.getMessage("command.limit.output.explimit");
|
||||
message = message.replace("%exp%", String.valueOf(data.GetExpBylimit(ConfigManager.getJobsConfiguration().EconomyExpLimit)));
|
||||
message = message.replace("%totalexp%", String.valueOf(ConfigManager.getJobsConfiguration().EconomyExpLimit));
|
||||
message = message.replace("%exp%", String.valueOf(data.GetExpBylimit(JPlayer.getExpLimit())));
|
||||
message = message.replace("%totalexp%", String.valueOf(JPlayer.getExpLimit()));
|
||||
player.sendMessage(message);
|
||||
|
||||
} else {
|
||||
@ -1362,7 +1365,7 @@ public class JobsCommands implements CommandExecutor {
|
||||
player.sendMessage(message);
|
||||
|
||||
message = Language.getMessage("command.limit.output.explimit").replace("%exp%", "0.0");
|
||||
message = message.replace("%totalexp%", String.valueOf(ConfigManager.getJobsConfiguration().EconomyExpLimit));
|
||||
message = message.replace("%totalexp%", String.valueOf(JPlayer.getExpLimit()));
|
||||
player.sendMessage(message);
|
||||
}
|
||||
|
||||
|
@ -75,7 +75,6 @@ public class JobsConfiguration {
|
||||
SignsColorizeJobName, ShowToplistInScoreboard, useGlobalTimer, useCoreProtect, BlockPlaceUse,
|
||||
EnableAnounceMessage, useBlockPiston, useSilkTouchProtection, UseCustomNames, EconomyMoneyStop,
|
||||
EconomyExpStop, UseJobsBrowse, PreventSlimeSplit, PreventMagmaCubeSplit;
|
||||
public int EconomyLimitMoneyLimit, EconomyExpLimit;
|
||||
public int EconomyLimitTimeLimit, EconomyExpTimeLimit;
|
||||
public int EconomyLimitAnnouncmentDelay, EconomyLimitAnnouncmentExpDelay, globalblocktimer, CowMilkingTimer,
|
||||
CoreProtectInterval, BlockPlaceInterval, InfoUpdateInterval;
|
||||
@ -87,7 +86,7 @@ public class JobsConfiguration {
|
||||
public boolean fixAtMaxLevel, ToggleActionBar, TitleChangeChat, TitleChangeActionBar, LevelChangeChat,
|
||||
LevelChangeActionBar, SoundLevelupUse, SoundTitleChangeUse, UseServerAccount, EmptyServerAcountChat,
|
||||
EmptyServerAcountActionBar, JobsToggleEnabled, ShowTotalWorkers, ShowPenaltyBonus, useDynamicPayment,
|
||||
useGlobalBoostScheduler, JobsGUIOpenOnBrowse,JobsGUIOpenOnJoin;
|
||||
useGlobalBoostScheduler, JobsGUIOpenOnBrowse, JobsGUIShowChatBrowse, JobsGUISwitcheButtons, JobsGUIOpenOnJoin;
|
||||
public Integer levelLossPercentage, SoundLevelupVolume, SoundLevelupPitch, SoundTitleChangeVolume,
|
||||
SoundTitleChangePitch, ToplistInScoreboardInterval;
|
||||
public double BoostExp;
|
||||
@ -104,6 +103,8 @@ public class JobsConfiguration {
|
||||
public boolean TakeFromPlayersPayment;
|
||||
|
||||
public Parser DynamicPaymentEquation;
|
||||
public Parser maxMoneyEquation;
|
||||
public Parser maxExpEquation;
|
||||
|
||||
public List<Schedule> BoostSchedule = new ArrayList<Schedule>();
|
||||
|
||||
@ -476,7 +477,22 @@ public class JobsConfiguration {
|
||||
EconomyLimitUse = getBoolean("Economy.Limit.Money.Use", false, config, writer);
|
||||
writer.addComment("Economy.Limit.Money.StopWithExp", "Do you want to stop money gain when exp limit reached?");
|
||||
EconomyMoneyStop = getBoolean("Economy.Limit.Money.StopWithExp", false, config, writer);
|
||||
EconomyLimitMoneyLimit = getInt("Economy.Limit.Money.MoneyLimit", 500, config, writer);
|
||||
|
||||
writer.addComment("Economy.Limit.Money.MoneyLimit",
|
||||
"Equation to calculate max money limit. Option to use totallevel to include players total amount levels of current jobs",
|
||||
"You can always use simple number to set money limit",
|
||||
"Default equation is: 500+500*(totallevel/100), this will add 1% from 500 for each level player have",
|
||||
"So player with 2 jobs with level 15 and 22 will have 685 limit");
|
||||
String MoneyLimit = getString("Economy.Limit.Money.MoneyLimit", "500+500*(totallevel/100)", config, writer);
|
||||
try {
|
||||
maxMoneyEquation = new Parser(MoneyLimit);
|
||||
maxMoneyEquation.setVariable("totallevel", 1);
|
||||
maxMoneyEquation.getValue();
|
||||
} catch (Exception e) {
|
||||
Jobs.getPluginLogger().warning("MoneyLimit has an invalid value. Disabling money limit!");
|
||||
EconomyLimitUse = false;
|
||||
}
|
||||
|
||||
writer.addComment("Economy.Limit.Money.TimeLimit", "Time in seconds: 60 = 1min, 3600 = 1 hour, 86400 = 24 hours");
|
||||
EconomyLimitTimeLimit = getInt("Economy.Limit.Money.TimeLimit", 3600, config, writer);
|
||||
writer.addComment("Economy.Limit.Money.AnnouncmentDelay", "Delay between announcements about reached money limit",
|
||||
@ -488,7 +504,21 @@ public class JobsConfiguration {
|
||||
EconomyExpLimitUse = getBoolean("Economy.Limit.Exp.Use", false, config, writer);
|
||||
writer.addComment("Economy.Limit.Exp.StopWithMoney", "Do you want to stop exp gain when money limit reached?");
|
||||
EconomyExpStop = getBoolean("Economy.Limit.Exp.StopWithMoney", false, config, writer);
|
||||
EconomyExpLimit = getInt("Economy.Limit.Exp.Limit", 5000, config, writer);
|
||||
|
||||
writer.addComment("Economy.Limit.Exp.Limit", "Equation to calculate max money limit. Option to use totallevel to include players total amount of current jobs",
|
||||
"You can always use simple number to set exp limit",
|
||||
"Default equation is: 5000+5000*(totallevel/100), this will add 1% from 5000 for each level player have",
|
||||
"So player with 2 jobs with level 15 and 22 will have 6850 limit");
|
||||
String expLimit = getString("Economy.Limit.Exp.Limit", "5000+5000*(totallevel/100)", config, writer);
|
||||
try {
|
||||
maxExpEquation = new Parser(expLimit);
|
||||
maxExpEquation.setVariable("totallevel", 1);
|
||||
maxExpEquation.getValue();
|
||||
} catch (Exception e) {
|
||||
Jobs.getPluginLogger().warning("ExpLimit has an invalid value. Disabling money limit!");
|
||||
EconomyExpLimitUse = false;
|
||||
}
|
||||
|
||||
writer.addComment("Economy.Limit.Exp.TimeLimit", "Time in seconds: 60 = 1min, 3600 = 1 hour, 86400 = 24 hours");
|
||||
EconomyExpTimeLimit = getInt("Economy.Limit.Exp.TimeLimit", 3600, config, writer);
|
||||
writer.addComment("Economy.Limit.Exp.AnnouncmentDelay", "Delay between announcements about reached Exp limit",
|
||||
@ -627,6 +657,11 @@ public class JobsConfiguration {
|
||||
|
||||
writer.addComment("JobsGUI.OpenOnBrowse", "Do you want to show GUI when performing /jobs browse command");
|
||||
JobsGUIOpenOnBrowse = getBoolean("JobsGUI.OpenOnBrowse", true, config, writer);
|
||||
writer.addComment("JobsGUI.ShowChatBrowse", "Do you want to show chat information when performing /jobs browse command");
|
||||
JobsGUIShowChatBrowse = getBoolean("JobsGUI.ShowChatBrowse", true, config, writer);
|
||||
writer.addComment("JobsGUI.SwitcheButtons", "With true left mouse button will join job and right will show more info",
|
||||
"With false left mouse button will show more info, rigth will join job", "Dont forget to adjust locale file");
|
||||
JobsGUISwitcheButtons = getBoolean("JobsGUI.SwitcheButtons", false, config, writer);
|
||||
writer.addComment("JobsBrowse.ShowPenaltyBonus", "Do you want to show GUI when performing /jobs join command");
|
||||
JobsGUIOpenOnJoin = getBoolean("JobsGUI.OpenOnJoin", true, config, writer);
|
||||
|
||||
@ -1219,6 +1254,8 @@ public class JobsConfiguration {
|
||||
GetConfigString("command.info.help.max", " - &emax level:&f ", writer, conf, true);
|
||||
GetConfigString("command.info.help.material", "&7%material%", writer, conf, true);
|
||||
|
||||
GetConfigString("command.info.gui.pickjob", "&ePick your job!", writer, conf, true);
|
||||
GetConfigString("command.info.gui.jobinfo", "&e[jobname] info!", writer, conf, true);
|
||||
GetConfigString("command.info.gui.actions", "&eValid actions are:", writer, conf, true);
|
||||
GetConfigString("command.info.gui.leftClick", "&eLeft Click for more info", writer, conf, true);
|
||||
GetConfigString("command.info.gui.rightClick", "&eRight click to join job", writer, conf, true);
|
||||
@ -1327,7 +1364,8 @@ public class JobsConfiguration {
|
||||
GetConfigString("command.glog.help.info", "Shows global statistics.", writer, conf, true);
|
||||
GetConfigString("command.glog.help.args", "", writer, conf, true);
|
||||
GetConfigString("command.glog.output.topline", "&7*********************** &6Global statistics &7***********************", writer, conf, true);
|
||||
GetConfigString("command.glog.output.list", "&7* &6%number%. &3%username% &e%action%: &6%item% &eqty: %qty% &6money: %money% &eexp: %exp%", writer, conf, true);
|
||||
GetConfigString("command.glog.output.list", "&7* &6%number%. &3%username% &e%action%: &6%item% &eqty: %qty% &6money: %money% &eexp: %exp%", writer, conf,
|
||||
true);
|
||||
GetConfigString("command.glog.output.bottomline", "&7**************************************************************", writer, conf, true);
|
||||
|
||||
GetConfigString("command.transfer.help.info", "Transfer a player's job from an old job to a new job.", writer, conf, true);
|
||||
|
@ -30,6 +30,7 @@ import com.gamingmesh.jobs.Jobs;
|
||||
import com.gamingmesh.jobs.config.ConfigManager;
|
||||
import com.gamingmesh.jobs.dao.JobsDAO;
|
||||
import com.gamingmesh.jobs.dao.JobsDAOData;
|
||||
import com.gamingmesh.jobs.resources.jfep.Parser;
|
||||
import com.gamingmesh.jobs.stuff.ChatColor;
|
||||
import com.gamingmesh.jobs.stuff.Perm;
|
||||
|
||||
@ -50,6 +51,9 @@ public class JobsPlayer {
|
||||
|
||||
private double VipSpawnerMultiplier = -1;
|
||||
|
||||
private int MoneyLimit = 0;
|
||||
private int ExpLimit = 0;
|
||||
|
||||
// save lock
|
||||
// public final Object saveLock = new Object();
|
||||
|
||||
@ -84,6 +88,8 @@ public class JobsPlayer {
|
||||
|
||||
}
|
||||
jPlayer.reloadMaxExperience();
|
||||
jPlayer.reloadMoneyLimit();
|
||||
jPlayer.reloadExpLimit();
|
||||
// }
|
||||
return jPlayer;
|
||||
}
|
||||
@ -162,6 +168,40 @@ public class JobsPlayer {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Reloads money limit for this player.
|
||||
*/
|
||||
public void reloadMoneyLimit() {
|
||||
int TotalLevel = 0;
|
||||
for (JobProgression prog : progression) {
|
||||
TotalLevel += prog.getLevel();
|
||||
}
|
||||
Parser eq = ConfigManager.getJobsConfiguration().maxMoneyEquation;
|
||||
eq.setVariable("totallevel", TotalLevel);
|
||||
MoneyLimit = (int) eq.getValue();
|
||||
}
|
||||
|
||||
/**
|
||||
* Reloads exp limit for this player.
|
||||
*/
|
||||
public void reloadExpLimit() {
|
||||
int TotalLevel = 0;
|
||||
for (JobProgression prog : progression) {
|
||||
TotalLevel += prog.getLevel();
|
||||
}
|
||||
Parser eq = ConfigManager.getJobsConfiguration().maxExpEquation;
|
||||
eq.setVariable("totallevel", TotalLevel);
|
||||
ExpLimit = (int) eq.getValue();
|
||||
}
|
||||
|
||||
public int getMoneyLimit() {
|
||||
return this.MoneyLimit;
|
||||
}
|
||||
|
||||
public int getExpLimit() {
|
||||
return this.ExpLimit;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the list of job progressions
|
||||
* @return the list of job progressions
|
||||
@ -230,6 +270,8 @@ public class JobsPlayer {
|
||||
|
||||
progression.add(new JobProgression(job, this, level, exp, -1, -1));
|
||||
reloadMaxExperience();
|
||||
reloadMoneyLimit();
|
||||
reloadExpLimit();
|
||||
reloadHonorific();
|
||||
Jobs.getPermissionHandler().recalculatePermissions(this);
|
||||
return true;
|
||||
@ -248,6 +290,8 @@ public class JobsPlayer {
|
||||
if (prog != null) {
|
||||
progression.remove(prog);
|
||||
reloadMaxExperience();
|
||||
reloadMoneyLimit();
|
||||
reloadExpLimit();
|
||||
reloadHonorific();
|
||||
Jobs.getPermissionHandler().recalculatePermissions(this);
|
||||
return true;
|
||||
@ -360,6 +404,8 @@ public class JobsPlayer {
|
||||
prog.setLevel(maxLevel);
|
||||
}
|
||||
reloadMaxExperience();
|
||||
reloadMoneyLimit();
|
||||
reloadExpLimit();
|
||||
reloadHonorific();
|
||||
Jobs.getPermissionHandler().recalculatePermissions(this);
|
||||
;
|
||||
|
@ -1,19 +1,20 @@
|
||||
package com.gamingmesh.jobs.container;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.OfflinePlayer;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import com.gamingmesh.jobs.stuff.OfflinePlayerList;
|
||||
import com.gamingmesh.jobs.stuff.UUIDUtil;
|
||||
|
||||
public final class TopList {
|
||||
private String player;
|
||||
private int level;
|
||||
private int exp;
|
||||
private byte[] uuid;
|
||||
private UUID uuid;
|
||||
|
||||
public TopList(String player, int level, int exp, byte[] uuid) {
|
||||
public TopList(String player, int level, int exp, UUID uuid) {
|
||||
this.player = player;
|
||||
this.level = level;
|
||||
this.exp = exp;
|
||||
@ -22,11 +23,11 @@ public final class TopList {
|
||||
|
||||
public String getPlayerName() {
|
||||
if (this.player == null || this.player == "") {
|
||||
Player player = Bukkit.getPlayer(UUIDUtil.fromBytes(this.uuid));
|
||||
Player player = Bukkit.getPlayer(this.uuid);
|
||||
if (player != null)
|
||||
return player.getName();
|
||||
else {
|
||||
OfflinePlayer Offlineplayer = OfflinePlayerList.getPlayer(UUIDUtil.fromBytes(this.uuid));
|
||||
OfflinePlayer Offlineplayer = OfflinePlayerList.getPlayer(this.uuid);
|
||||
if (Offlineplayer != null)
|
||||
return Offlineplayer.getName();
|
||||
else
|
||||
|
@ -24,6 +24,7 @@ import java.sql.SQLException;
|
||||
import java.sql.Statement;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
@ -84,7 +85,10 @@ public abstract class JobsDAO {
|
||||
if (version <= 5)
|
||||
checkUpdate6();
|
||||
|
||||
version = 6;
|
||||
if (version <= 6)
|
||||
checkUpdate7();
|
||||
|
||||
version = 7;
|
||||
} finally {
|
||||
updateSchemaVersion(version);
|
||||
}
|
||||
@ -102,6 +106,8 @@ public abstract class JobsDAO {
|
||||
|
||||
protected abstract void checkUpdate6() throws SQLException;
|
||||
|
||||
protected abstract void checkUpdate7() throws SQLException;
|
||||
|
||||
/**
|
||||
* Gets the database prefix
|
||||
* @return the prefix
|
||||
@ -122,7 +128,7 @@ public abstract class JobsDAO {
|
||||
return jobs;
|
||||
try {
|
||||
PreparedStatement prest = conn.prepareStatement("SELECT `player_uuid`, `job`, `level`, `experience` FROM `" + prefix + "jobs` WHERE `player_uuid` = ?;");
|
||||
prest.setBytes(1, UUIDUtil.toBytes(player.getUniqueId()));
|
||||
prest.setString(1, player.getUniqueId().toString());
|
||||
ResultSet res = prest.executeQuery();
|
||||
while (res.next()) {
|
||||
jobs.add(new JobsDAOData(player.getUniqueId(), res.getString(2), res.getInt(3), res.getInt(4)));
|
||||
@ -225,7 +231,7 @@ public abstract class JobsDAO {
|
||||
}
|
||||
PreparedStatement prest = conn.prepareStatement("INSERT INTO `" + prefix
|
||||
+ "jobs` (`player_uuid`, `username`, `job`, `level`, `experience`) VALUES (?, ?, ?, ?, ?);");
|
||||
prest.setBytes(1, UUIDUtil.toBytes(jPlayer.getPlayerUUID()));
|
||||
prest.setString(1, jPlayer.getPlayerUUID().toString());
|
||||
prest.setString(2, jPlayer.getUserName());
|
||||
prest.setString(3, job.getName());
|
||||
prest.setInt(4, level);
|
||||
@ -291,7 +297,7 @@ public abstract class JobsDAO {
|
||||
i--;
|
||||
Convert convertData = list.get(i);
|
||||
insert.setString(1, convertData.GetName());
|
||||
insert.setBytes(2, UUIDUtil.toBytes(convertData.GetUuid()));
|
||||
insert.setString(2, convertData.GetUuid().toString());
|
||||
insert.setString(3, convertData.GetJobName());
|
||||
insert.setInt(4, convertData.GetLevel());
|
||||
insert.setInt(5, convertData.GetExp());
|
||||
@ -322,7 +328,7 @@ public abstract class JobsDAO {
|
||||
return;
|
||||
try {
|
||||
PreparedStatement prest = conn.prepareStatement("DELETE FROM `" + prefix + "jobs` WHERE `player_uuid` = ? AND `job` = ?;");
|
||||
prest.setBytes(1, UUIDUtil.toBytes(jPlayer.getPlayerUUID()));
|
||||
prest.setString(1, jPlayer.getPlayerUUID().toString());
|
||||
prest.setString(2, job.getName());
|
||||
prest.execute();
|
||||
prest.close();
|
||||
@ -351,7 +357,7 @@ public abstract class JobsDAO {
|
||||
}
|
||||
PreparedStatement prest = conn.prepareStatement("INSERT INTO `" + prefix
|
||||
+ "archive` (`player_uuid`, `username`, `job`, `level`, `experience`) VALUES (?, ?, ?, ?, ?);");
|
||||
prest.setBytes(1, UUIDUtil.toBytes(jPlayer.getPlayerUUID()));
|
||||
prest.setString(1, jPlayer.getPlayerUUID().toString());
|
||||
prest.setString(2, jPlayer.getUserName());
|
||||
prest.setString(3, job.getName());
|
||||
prest.setInt(4, level);
|
||||
@ -375,7 +381,7 @@ public abstract class JobsDAO {
|
||||
try {
|
||||
List<Integer> info = new ArrayList<Integer>();
|
||||
PreparedStatement prest = conn.prepareStatement("SELECT `level`, `experience` FROM `" + prefix + "archive` WHERE `player_uuid` = ? AND `job` = ?;");
|
||||
prest.setBytes(1, UUIDUtil.toBytes(jPlayer.getPlayerUUID()));
|
||||
prest.setString(1, jPlayer.getPlayerUUID().toString());
|
||||
prest.setString(2, job.getName());
|
||||
ResultSet res = prest.executeQuery();
|
||||
if (res.next()) {
|
||||
@ -427,7 +433,7 @@ public abstract class JobsDAO {
|
||||
|
||||
while (res.next()) {
|
||||
|
||||
TopList top = new TopList(res.getString("username"), res.getInt("totallvl"), 0, res.getBytes("player_uuid"));
|
||||
TopList top = new TopList(res.getString("username"), res.getInt("totallvl"), 0, UUID.fromString(res.getString("player_uuid")));
|
||||
|
||||
names.add(top);
|
||||
}
|
||||
@ -452,7 +458,7 @@ public abstract class JobsDAO {
|
||||
try {
|
||||
List<String> info = new ArrayList<String>();
|
||||
PreparedStatement prest = conn.prepareStatement("SELECT `job`, `level`, `experience` FROM `" + prefix + "archive` WHERE `player_uuid` = ?;");
|
||||
prest.setBytes(1, UUIDUtil.toBytes(jPlayer.getPlayerUUID()));
|
||||
prest.setString(1, jPlayer.getPlayerUUID().toString());
|
||||
ResultSet res = prest.executeQuery();
|
||||
while (res.next()) {
|
||||
|
||||
@ -491,7 +497,7 @@ public abstract class JobsDAO {
|
||||
return;
|
||||
try {
|
||||
PreparedStatement prest = conn.prepareStatement("DELETE FROM `" + prefix + "archive` WHERE `player_uuid` = ? AND `job` = ?;");
|
||||
prest.setBytes(1, UUIDUtil.toBytes(jPlayer.getPlayerUUID()));
|
||||
prest.setString(1, jPlayer.getPlayerUUID().toString());
|
||||
prest.setString(2, job.getName());
|
||||
prest.execute();
|
||||
prest.close();
|
||||
@ -513,7 +519,7 @@ public abstract class JobsDAO {
|
||||
for (JobProgression progression : player.getJobProgression()) {
|
||||
prest.setInt(1, progression.getLevel());
|
||||
prest.setInt(2, (int) progression.getExperience());
|
||||
prest.setBytes(3, UUIDUtil.toBytes(player.getPlayerUUID()));
|
||||
prest.setString(3, player.getPlayerUUID().toString());
|
||||
prest.setString(4, progression.getJob().getName());
|
||||
prest.execute();
|
||||
}
|
||||
@ -544,7 +550,7 @@ public abstract class JobsDAO {
|
||||
prest.setDouble(2, one.getValue().getMoney());
|
||||
prest.setDouble(3, one.getValue().getExp());
|
||||
|
||||
prest.setBytes(4, UUIDUtil.toBytes(player.getPlayerUUID()));
|
||||
prest.setString(4, player.getPlayerUUID().toString());
|
||||
prest.setInt(5, log.getDate());
|
||||
prest.setString(6, log.getActionType());
|
||||
prest.setString(7, one.getKey());
|
||||
@ -561,7 +567,7 @@ public abstract class JobsDAO {
|
||||
|
||||
one.getValue().setNewEntry(false);
|
||||
|
||||
prest.setBytes(1, UUIDUtil.toBytes(player.getPlayerUUID()));
|
||||
prest.setString(1, player.getPlayerUUID().toString());
|
||||
prest.setString(2, player.getUserName());
|
||||
prest.setInt(3, log.getDate());
|
||||
prest.setString(4, log.getActionType());
|
||||
@ -592,7 +598,7 @@ public abstract class JobsDAO {
|
||||
|
||||
PreparedStatement prest = conn.prepareStatement("SELECT `player_uuid`, `username`, `time`, `action`, `itemname`, `count`, `money`, `exp` FROM `" + prefix
|
||||
+ "log` WHERE `player_uuid` = ? AND `time` = ? ;");
|
||||
prest.setBytes(1, UUIDUtil.toBytes(player.getPlayerUUID()));
|
||||
prest.setString(1, player.getPlayerUUID().toString());
|
||||
prest.setInt(2, time);
|
||||
ResultSet res = prest.executeQuery();
|
||||
while (res.next()) {
|
||||
@ -659,10 +665,10 @@ public abstract class JobsDAO {
|
||||
Job job = Jobs.getJob(jobsname);
|
||||
if (job != null) {
|
||||
JobProgression prog = jobsinfo.getJobProgression(job);
|
||||
jobs.add(new TopList(player.getName(), prog.getLevel(), (int) prog.getExperience(), UUIDUtil.toBytes(player.getUniqueId())));
|
||||
jobs.add(new TopList(player.getName(), prog.getLevel(), (int) prog.getExperience(), player.getUniqueId()));
|
||||
}
|
||||
} else
|
||||
jobs.add(new TopList(res.getString(1), res.getInt(2), res.getInt(3), res.getBytes(4)));
|
||||
jobs.add(new TopList(res.getString(1), res.getInt(2), res.getInt(3), UUID.fromString(res.getString(4))));
|
||||
}
|
||||
res.close();
|
||||
prest.close();
|
||||
|
@ -330,4 +330,105 @@ public class JobsDAOMySQL extends JobsDAO {
|
||||
}
|
||||
executeSQL("ALTER TABLE `" + getPrefix() + "log` MODIFY `itemname` VARCHAR(60);");
|
||||
}
|
||||
|
||||
@Override
|
||||
protected synchronized void checkUpdate7() throws SQLException {
|
||||
JobsConnection conn = getConnection();
|
||||
if (conn == null) {
|
||||
Jobs.getPluginLogger().severe("Could not run database updates! Could not connect to MySQL!");
|
||||
return;
|
||||
}
|
||||
|
||||
Jobs.getPluginLogger().info("Converting byte uuids to string. This could take a long time!!!");
|
||||
|
||||
// Converting jobs players byte uuid into string
|
||||
executeSQL("CREATE TABLE `" + getPrefix()
|
||||
+ "jobs_temp` (`id` int NOT NULL AUTO_INCREMENT PRIMARY KEY, `player_uuid` varchar(36) NOT NULL,`username` varchar(20), `job` varchar(20), `experience` int, `level` int);");
|
||||
|
||||
PreparedStatement pst1 = conn.prepareStatement("SELECT * FROM `" + getPrefix() + "jobs`;");
|
||||
ResultSet rs = pst1.executeQuery();
|
||||
PreparedStatement insert = null;
|
||||
while (rs.next()) {
|
||||
|
||||
String uuid = UUIDUtil.fromBytes(rs.getBytes("player_uuid")).toString();
|
||||
|
||||
if (uuid != null) {
|
||||
insert = conn.prepareStatement("INSERT INTO `" + getPrefix()
|
||||
+ "jobs_temp` (`player_uuid`, `username`, `job`, `experience`, `level`) VALUES (?, ?, ?, ?, ?);");
|
||||
insert.setString(1, uuid);
|
||||
insert.setString(2, rs.getString("username"));
|
||||
insert.setString(3, rs.getString("job"));
|
||||
insert.setInt(4, rs.getInt("experience"));
|
||||
insert.setInt(5, rs.getInt("level"));
|
||||
insert.execute();
|
||||
}
|
||||
}
|
||||
rs.close();
|
||||
if (insert != null)
|
||||
insert.close();
|
||||
|
||||
executeSQL("DROP TABLE IF EXISTS `" + getPrefix() + "jobs`;");
|
||||
executeSQL("ALTER TABLE `" + getPrefix() + "jobs_temp` RENAME TO `" + getPrefix() + "jobs`;");
|
||||
|
||||
// Converting archive players byte uuid into string
|
||||
executeSQL("CREATE TABLE `" + getPrefix()
|
||||
+ "archive_temp` (`id` int NOT NULL AUTO_INCREMENT PRIMARY KEY, `player_uuid` varchar(36) NOT NULL, `username` varchar(20), `job` varchar(20), `experience` int, `level` int);");
|
||||
|
||||
PreparedStatement pst11 = conn.prepareStatement("SELECT * FROM `" + getPrefix() + "archive`;");
|
||||
ResultSet rs1 = pst11.executeQuery();
|
||||
PreparedStatement insert1 = null;
|
||||
while (rs1.next()) {
|
||||
|
||||
String uuid = UUIDUtil.fromBytes(rs1.getBytes("player_uuid")).toString();
|
||||
|
||||
if (uuid != null) {
|
||||
insert1 = conn.prepareStatement("INSERT INTO `" + getPrefix()
|
||||
+ "archive_temp` (`player_uuid`, `username`, `job`, `experience`, `level`) VALUES (?, ?, ?, ?, ?);");
|
||||
insert1.setString(1, uuid);
|
||||
insert1.setString(2, rs1.getString("username"));
|
||||
insert1.setString(3, rs1.getString("job"));
|
||||
insert1.setInt(4, rs1.getInt("experience"));
|
||||
insert1.setInt(5, rs1.getInt("level"));
|
||||
insert1.execute();
|
||||
}
|
||||
}
|
||||
rs1.close();
|
||||
if (insert1 != null)
|
||||
insert1.close();
|
||||
|
||||
executeSQL("DROP TABLE IF EXISTS `" + getPrefix() + "archive`;");
|
||||
executeSQL("ALTER TABLE `" + getPrefix() + "archive_temp` RENAME TO `" + getPrefix() + "archive`;");
|
||||
|
||||
// Converting log players byte uuid into string
|
||||
executeSQL("CREATE TABLE `" + getPrefix()
|
||||
+ "log_temp` (`id` int NOT NULL AUTO_INCREMENT PRIMARY KEY, `player_uuid` varchar(36) NOT NULL, `username` varchar(20), `time` bigint, `action` varchar(20), `itemname` varchar(60), `count` int, `money` double, `exp` double);");
|
||||
|
||||
PreparedStatement pst111 = conn.prepareStatement("SELECT * FROM `" + getPrefix() + "log`;");
|
||||
ResultSet rs11 = pst111.executeQuery();
|
||||
PreparedStatement insert11 = null;
|
||||
while (rs11.next()) {
|
||||
|
||||
String uuid = UUIDUtil.fromBytes(rs11.getBytes("player_uuid")).toString();
|
||||
|
||||
if (uuid != null) {
|
||||
insert11 = conn.prepareStatement("INSERT INTO `" + getPrefix()
|
||||
+ "log_temp` (`player_uuid`, `username`, `time`, `action`, `itemname`, `count`, `money`, `exp`) VALUES (?, ?, ?, ?, ?, ?, ?, ?);");
|
||||
insert11.setString(1, uuid);
|
||||
insert11.setString(2, rs11.getString("username"));
|
||||
insert11.setLong(3, rs11.getLong("time"));
|
||||
insert11.setString(4, rs11.getString("action"));
|
||||
insert11.setString(5, rs11.getString("itemname"));
|
||||
insert11.setInt(6, rs11.getInt("count"));
|
||||
insert11.setDouble(7, rs11.getDouble("money"));
|
||||
insert11.setDouble(8, rs11.getDouble("exp"));
|
||||
insert11.execute();
|
||||
}
|
||||
}
|
||||
rs11.close();
|
||||
if (insert11 != null)
|
||||
insert11.close();
|
||||
|
||||
executeSQL("DROP TABLE IF EXISTS `" + getPrefix() + "log`;");
|
||||
executeSQL("ALTER TABLE `" + getPrefix() + "log_temp` RENAME TO `" + getPrefix() + "log`;");
|
||||
}
|
||||
}
|
||||
|
@ -310,4 +310,105 @@ public class JobsDAOSQLite extends JobsDAO {
|
||||
executeSQL("ALTER TABLE `" + getPrefix() + "log_temp` RENAME TO `" + getPrefix() + "log`;");
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected synchronized void checkUpdate7() throws SQLException {
|
||||
JobsConnection conn = getConnection();
|
||||
if (conn == null) {
|
||||
Jobs.getPluginLogger().severe("Could not run database updates! Could not connect to MySQL!");
|
||||
return;
|
||||
}
|
||||
|
||||
Jobs.getPluginLogger().info("Converting byte uuids to string. This could take a long time!!!");
|
||||
|
||||
executeSQL("CREATE TABLE `" + getPrefix()
|
||||
+ "jobs_temp` (`id` INTEGER PRIMARY KEY AUTOINCREMENT, `player_uuid` varchar(36) NOT NULL,`username` varchar(20), `job` varchar(20), `experience` int, `level` int);");
|
||||
|
||||
PreparedStatement pst1 = conn.prepareStatement("SELECT * FROM `" + getPrefix() + "jobs`;");
|
||||
ResultSet rs = pst1.executeQuery();
|
||||
PreparedStatement insert = null;
|
||||
while (rs.next()) {
|
||||
|
||||
String uuid = UUIDUtil.fromBytes(rs.getBytes("player_uuid")).toString();
|
||||
|
||||
if (uuid != null) {
|
||||
insert = conn.prepareStatement("INSERT INTO `" + getPrefix()
|
||||
+ "jobs_temp` (`player_uuid`, `username`, `job`, `experience`, `level`) VALUES (?, ?, ?, ?, ?);");
|
||||
insert.setString(1, uuid);
|
||||
insert.setString(2, rs.getString("username"));
|
||||
insert.setString(3, rs.getString("job"));
|
||||
insert.setInt(4, rs.getInt("experience"));
|
||||
insert.setInt(5, rs.getInt("level"));
|
||||
insert.execute();
|
||||
}
|
||||
}
|
||||
rs.close();
|
||||
if (insert != null)
|
||||
insert.close();
|
||||
|
||||
executeSQL("DROP TABLE IF EXISTS `" + getPrefix() + "jobs`;");
|
||||
executeSQL("ALTER TABLE `" + getPrefix() + "jobs_temp` RENAME TO `" + getPrefix() + "jobs`;");
|
||||
|
||||
// Converting archive players byte uuid into string
|
||||
executeSQL("CREATE TABLE `" + getPrefix()
|
||||
+ "archive_temp` (`id` INTEGER PRIMARY KEY AUTOINCREMENT, `player_uuid` varchar(36) NOT NULL, `username` varchar(20), `job` varchar(20), `experience` int, `level` int);");
|
||||
|
||||
PreparedStatement pst11 = conn.prepareStatement("SELECT * FROM `" + getPrefix() + "archive`;");
|
||||
ResultSet rs1 = pst11.executeQuery();
|
||||
PreparedStatement insert1 = null;
|
||||
while (rs1.next()) {
|
||||
|
||||
String uuid = UUIDUtil.fromBytes(rs1.getBytes("player_uuid")).toString();
|
||||
|
||||
if (uuid != null) {
|
||||
insert1 = conn.prepareStatement("INSERT INTO `" + getPrefix()
|
||||
+ "archive_temp` (`player_uuid`, `username`, `job`, `experience`, `level`) VALUES (?, ?, ?, ?, ?);");
|
||||
insert1.setString(1, uuid);
|
||||
insert1.setString(2, rs1.getString("username"));
|
||||
insert1.setString(3, rs1.getString("job"));
|
||||
insert1.setInt(4, rs1.getInt("experience"));
|
||||
insert1.setInt(5, rs1.getInt("level"));
|
||||
insert1.execute();
|
||||
}
|
||||
}
|
||||
rs1.close();
|
||||
if (insert1 != null)
|
||||
insert1.close();
|
||||
|
||||
executeSQL("DROP TABLE IF EXISTS `" + getPrefix() + "archive`;");
|
||||
executeSQL("ALTER TABLE `" + getPrefix() + "archive_temp` RENAME TO `" + getPrefix() + "archive`;");
|
||||
|
||||
// Converting log players byte uuid into string
|
||||
executeSQL("CREATE TABLE `" + getPrefix()
|
||||
+ "log_temp` (`id` INTEGER PRIMARY KEY AUTOINCREMENT, `player_uuid` varchar(36) NOT NULL, `username` varchar(20), `time` bigint, `action` varchar(20), `itemname` varchar(60), `count` int, `money` double, `exp` double);");
|
||||
|
||||
PreparedStatement pst111 = conn.prepareStatement("SELECT * FROM `" + getPrefix() + "log`;");
|
||||
ResultSet rs11 = pst111.executeQuery();
|
||||
PreparedStatement insert11 = null;
|
||||
while (rs11.next()) {
|
||||
|
||||
String uuid = UUIDUtil.fromBytes(rs11.getBytes("player_uuid")).toString();
|
||||
|
||||
if (uuid != null) {
|
||||
insert11 = conn.prepareStatement("INSERT INTO `" + getPrefix()
|
||||
+ "log_temp` (`player_uuid`, `username`, `time`, `action`, `itemname`, `count`, `money`, `exp`) VALUES (?, ?, ?, ?, ?, ?, ?, ?);");
|
||||
insert11.setString(1, uuid);
|
||||
insert11.setString(2, rs11.getString("username"));
|
||||
insert11.setLong(3, rs11.getLong("time"));
|
||||
insert11.setString(4, rs11.getString("action"));
|
||||
insert11.setString(5, rs11.getString("itemname"));
|
||||
insert11.setInt(6, rs11.getInt("count"));
|
||||
insert11.setDouble(7, rs11.getDouble("money"));
|
||||
insert11.setDouble(8, rs11.getDouble("exp"));
|
||||
insert11.execute();
|
||||
}
|
||||
}
|
||||
rs11.close();
|
||||
if (insert11 != null)
|
||||
insert11.close();
|
||||
|
||||
executeSQL("DROP TABLE IF EXISTS `" + getPrefix() + "log`;");
|
||||
executeSQL("ALTER TABLE `" + getPrefix() + "log_temp` RENAME TO `" + getPrefix() + "log`;");
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -83,7 +83,8 @@ public class JobsListener implements Listener {
|
||||
int slot = event.getRawSlot();
|
||||
|
||||
if (slot >= 0) {
|
||||
if (event.getClick() == ClickType.LEFT) {
|
||||
if (!ConfigManager.getJobsConfiguration().JobsGUISwitcheButtons && event.getClick() == ClickType.LEFT ||
|
||||
ConfigManager.getJobsConfiguration().JobsGUISwitcheButtons && event.getClick() == ClickType.RIGHT) {
|
||||
if (!joblist.isJobInfo() && slot < joblist.getJobList().size()) {
|
||||
player.closeInventory();
|
||||
player.openInventory(GuiTools.CreateJobsSubGUI(player, joblist.getJobList().get(slot)));
|
||||
@ -93,7 +94,8 @@ public class JobsListener implements Listener {
|
||||
player.openInventory(GuiTools.CreateJobsGUI(player));
|
||||
}
|
||||
}
|
||||
} else if (event.getClick() == ClickType.RIGHT) {
|
||||
} else if (!ConfigManager.getJobsConfiguration().JobsGUISwitcheButtons && event.getClick() == ClickType.RIGHT ||
|
||||
ConfigManager.getJobsConfiguration().JobsGUISwitcheButtons && event.getClick() == ClickType.LEFT) {
|
||||
if (!joblist.isJobInfo() && slot < joblist.getJobList().size()) {
|
||||
Bukkit.dispatchCommand(player, "jobs join " + joblist.getJobList().get(slot).getName());
|
||||
player.getOpenInventory().getTopInventory().setContents(GuiTools.CreateJobsGUI(player).getContents());
|
||||
|
@ -1,7 +1,7 @@
|
||||
name: Jobs
|
||||
description: Jobs Plugin for the BukkitAPI
|
||||
main: com.gamingmesh.jobs.JobsPlugin
|
||||
version: 2.53.0
|
||||
version: 2.54.1
|
||||
author: phrstbrn
|
||||
softdepend: [Vault, CoreProtect, MythicMobs, McMMO]
|
||||
commands:
|
||||
|
Loading…
Reference in New Issue
Block a user