1
0
mirror of https://github.com/Zrips/Jobs.git synced 2024-11-25 20:16:13 +01:00

When converting, include user table

This commit is contained in:
Zrips 2016-09-23 15:07:35 +03:00
parent 81a02dbbe0
commit d009b5b782
12 changed files with 2871 additions and 2837 deletions

View File

@ -289,7 +289,8 @@ public class PlayerManager {
if (!jPlayer.leaveJob(job))
return false;
Jobs.getJobsDAO().quitJob(jPlayer, job);
if (!Jobs.getJobsDAO().quitJob(jPlayer, job))
return false;
PerformCommands.PerformCommandsOnLeave(jPlayer, job);
Jobs.leaveSlot(job);
@ -319,18 +320,20 @@ public class PlayerManager {
* @param oldjob - the old job
* @param newjob - the new job
*/
public void transferJob(JobsPlayer jPlayer, Job oldjob, Job newjob) {
public boolean transferJob(JobsPlayer jPlayer, Job oldjob, Job newjob) {
// synchronized (jPlayer.saveLock) {
if (!jPlayer.transferJob(oldjob, newjob))
return;
return false;
JobsDAO dao = Jobs.getJobsDAO();
dao.quitJob(jPlayer, oldjob);
if (!dao.quitJob(jPlayer, oldjob))
return false;
oldjob.updateTotalPlayers();
dao.joinJob(jPlayer, newjob);
newjob.updateTotalPlayers();
jPlayer.save();
// }
return true;
}
/**

View File

@ -21,7 +21,7 @@ public class convert implements Cmd {
if (sender instanceof Player) {
sender.sendMessage(Jobs.getLanguage().getMessage("general.error.fromconsole"));
return false;
return true;
}
if (args.length > 0) {
@ -38,8 +38,9 @@ public class convert implements Cmd {
} catch (SQLException e) {
e.printStackTrace();
sender.sendMessage(ChatColor.RED + "Can't read data from data base, please send error log to dev's.");
return false;
return true;
}
Jobs.ChangeDatabase();
if (list == null & archivelist == null)
@ -47,10 +48,11 @@ public class convert implements Cmd {
try {
Jobs.getJobsDAO().continueConvertions(list, "jobs");
Jobs.getJobsDAO().continueConvertions(archivelist, "archive");
Jobs.getJobsDAO().transferUsers();
} catch (SQLException e) {
e.printStackTrace();
sender.sendMessage(ChatColor.RED + "Can't write data to data base, please send error log to dev's.");
return false;
return true;
}
try {

View File

@ -1,7 +1,5 @@
package com.gamingmesh.jobs.commands.list;
import org.bukkit.Bukkit;
import org.bukkit.OfflinePlayer;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;

View File

@ -1,7 +1,5 @@
package com.gamingmesh.jobs.commands.list;
import org.bukkit.Bukkit;
import org.bukkit.OfflinePlayer;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;

View File

@ -540,7 +540,7 @@ public class ConfigManager {
break;
}
} else if (actionType == ActionType.ENCHANT && material == null) {
} else if (actionType == ActionType.ENCHANT) {
Enchantment enchant = Enchantment.getByName(myKey);
if (enchant != null)
id = enchant.getId();

View File

@ -42,8 +42,7 @@ public class LanguageManager {
for (String lang : languages) {
YmlMaker langFile = new YmlMaker(plugin, "locale" + File.separator + "messages_" + lang + ".yml");
if (langFile != null)
langFile.saveDefaultConfig();
langFile.saveDefaultConfig();
}
Debug.D(System.currentTimeMillis() - time);

View File

@ -176,8 +176,7 @@ public class NameTranslatorManager {
for (String lang : languages) {
YmlMaker langFile = new YmlMaker(plugin, "TranslatableWords" + File.separator + "Words_" + lang + ".yml");
if (langFile != null)
langFile.saveDefaultConfig();
langFile.saveDefaultConfig();
}
languages.add("en");

View File

@ -128,7 +128,7 @@ public class JobsPlayer {
* @return the Multiplier
*/
public double getVipSpawnerMultiplier() {
if (OffPlayer == null || !this.OffPlayer.isOnline())
if (this.getPlayer() == null || !this.getPlayer().isOnline())
return 1.0;
if (VipSpawnerMultiplier < 0)
updateVipSpawnerMultiplier();

View File

@ -448,16 +448,49 @@ public abstract class JobsDAO {
}
}
public void transferUsers() throws SQLException {
JobsConnection conns = this.getConnection();
if (conns == null)
return;
PreparedStatement insert = null;
Statement statement = null;
try {
statement = conns.createStatement();
if (Jobs.getGCManager().storageMethod.equalsIgnoreCase("sqlite")) {
statement.executeUpdate("TRUNCATE `" + getPrefix() + "users`");
} else {
statement.executeUpdate("DELETE from `" + getPrefix() + "users`");
}
insert = conns.prepareStatement("INSERT INTO `" + getPrefix() + "users` (`id`, `player_uuid`, `username`) VALUES (?, ?, ?);");
conns.setAutoCommit(false);
for (Entry<String, JobsPlayer> oneUser : Jobs.getPlayerManager().getPlayersCache().entrySet()) {
insert.setInt(1, oneUser.getValue().getUserId());
insert.setString(2, oneUser.getValue().getPlayerUUID().toString());
insert.setString(3, oneUser.getValue().getUserName());
insert.addBatch();
}
insert.executeBatch();
conns.commit();
conns.setAutoCommit(true);
} finally {
close(statement);
close(insert);
}
}
/**
* Quit a job (delete player-job entry from storage)
* @param player - player that wishes to quit the job
* @param job - job that the player wishes to quit
*/
public synchronized void quitJob(JobsPlayer jPlayer, Job job) {
public synchronized boolean quitJob(JobsPlayer jPlayer, Job job) {
JobsConnection conn = getConnection();
if (conn == null)
return;
return false;
PreparedStatement prest = null;
boolean ok = true;
try {
prest = conn.prepareStatement("DELETE FROM `" + prefix + "jobs` WHERE `userid` = ? AND `job` = ?;");
prest.setInt(1, jPlayer.getUserId());
@ -465,9 +498,11 @@ public abstract class JobsDAO {
prest.execute();
} catch (SQLException e) {
e.printStackTrace();
ok = false;
} finally {
close(prest);
}
return ok;
}
/**

View File

@ -567,7 +567,7 @@ public class JobsPaymentListener implements Listener {
ItemStack toCraft = event.getCurrentItem();
ItemStack toStore = event.getCursor();
// Make sure we are actually crafting anything
if (player != null && hasItems(toCraft))
if (hasItems(toCraft))
if (event.isShiftClick())
schedulePostDetection(player, toCraft, jPlayer, resultStack, multiplier);
else {
@ -627,7 +627,7 @@ public class JobsPaymentListener implements Listener {
if (a == null)
return b == null;
else if (b == null)
return a == null;
return false;
return a.getTypeId() == b.getTypeId() && a.getDurability() == b.getDurability() && Objects.equal(a.getData(), b.getData()) && Objects.equal(a.getEnchantments(), b
.getEnchantments());
}