mirror of
https://github.com/Zrips/Jobs.git
synced 2024-11-26 04:25:15 +01:00
Option to define max level with only permission node
better way in determining max job level
This commit is contained in:
parent
7a92aa3ee3
commit
403d29f8a6
@ -106,12 +106,7 @@ public class GuiManager {
|
||||
Lore.add(Jobs.getLanguage().getMessage("command.info.gui.working"));
|
||||
}
|
||||
|
||||
int maxlevel = 0;
|
||||
if (Perm.hasPermission(player, "jobs." + job.getName() + ".vipmaxlevel") && job.getVipMaxLevel() != 0)
|
||||
maxlevel = job.getVipMaxLevel();
|
||||
else
|
||||
maxlevel = job.getMaxLevel();
|
||||
|
||||
int maxlevel = job.getMaxLevel(JPlayer);
|
||||
if (maxlevel > 0)
|
||||
Lore.add(Jobs.getLanguage().getMessage("command.info.gui.max") + maxlevel);
|
||||
|
||||
|
@ -142,7 +142,7 @@ public class PermissionManager {
|
||||
}
|
||||
}
|
||||
}
|
||||
return amount;
|
||||
return amount == null ? 0D : amount;
|
||||
}
|
||||
|
||||
public boolean hasPermission(JobsPlayer jPlayer, String perm) {
|
||||
|
@ -31,10 +31,7 @@ public class browse implements Cmd {
|
||||
if (job.getMaxLevel() > 0) {
|
||||
builder.append(ChatColor.WHITE.toString());
|
||||
builder.append(Jobs.getLanguage().getMessage("command.info.help.max"));
|
||||
if (Perm.hasPermission(sender, "jobs." + job.getName() + ".vipmaxlevel") && job.getVipMaxLevel() != 0)
|
||||
builder.append(job.getVipMaxLevel());
|
||||
else
|
||||
builder.append(job.getMaxLevel());
|
||||
builder.append(job.getMaxLevel(sender));
|
||||
}
|
||||
|
||||
if (Jobs.getGCManager().ShowTotalWorkers)
|
||||
|
@ -23,6 +23,9 @@ import java.util.Collections;
|
||||
import java.util.EnumMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import com.gamingmesh.jobs.Jobs;
|
||||
@ -292,6 +295,23 @@ public class Job {
|
||||
return maxLevel;
|
||||
}
|
||||
|
||||
public int getMaxLevel(JobsPlayer player) {
|
||||
if (player == null)
|
||||
return getMaxLevel();
|
||||
return player.getMaxJobLevelAllowed(this);
|
||||
}
|
||||
|
||||
public int getMaxLevel(CommandSender sender) {
|
||||
if (sender == null)
|
||||
return getMaxLevel();
|
||||
if (sender instanceof Player) {
|
||||
JobsPlayer player = Jobs.getPlayerManager().getJobsPlayer((Player) sender);
|
||||
if (player != null)
|
||||
return player.getMaxJobLevelAllowed(this);
|
||||
}
|
||||
return getMaxLevel() > getVipMaxLevel() ? getMaxLevel() : getVipMaxLevel();
|
||||
}
|
||||
|
||||
/**
|
||||
* Function to return the maximum level
|
||||
* @return the max level
|
||||
|
@ -175,12 +175,7 @@ public class JobProgression {
|
||||
boolean ret = false;
|
||||
while (canLevelUp()) {
|
||||
|
||||
int maxLevel = 0;
|
||||
if (jPlayer.havePermission("jobs." + job.getName() + ".vipmaxlevel") && job.getVipMaxLevel() != 0)
|
||||
maxLevel = job.getVipMaxLevel();
|
||||
else
|
||||
maxLevel = job.getMaxLevel();
|
||||
|
||||
int maxLevel = this.jPlayer.getMaxJobLevelAllowed(this.getJob());
|
||||
// Don't level up at max level
|
||||
if (job.getMaxLevel() > 0 && level >= maxLevel)
|
||||
break;
|
||||
|
@ -414,12 +414,7 @@ public class JobsPlayer {
|
||||
level = 1;
|
||||
|
||||
Job job = jp.getJob();
|
||||
int maxLevel = 0;
|
||||
if (havePermission("jobs." + job.getName() + ".vipmaxlevel") && job.getVipMaxLevel() != 0)
|
||||
maxLevel = job.getVipMaxLevel();
|
||||
else
|
||||
maxLevel = job.getMaxLevel();
|
||||
|
||||
int maxLevel = this.getMaxJobLevelAllowed(job);
|
||||
if (Jobs.getGCManager().fixAtMaxLevel && jp.getLevel() == maxLevel)
|
||||
level = jp.getLevel();
|
||||
|
||||
@ -486,10 +481,7 @@ public class JobsPlayer {
|
||||
return;
|
||||
int newLevel = prog.getLevel() + levels;
|
||||
|
||||
int maxLevel = job.getMaxLevel();
|
||||
|
||||
if (this.havePermission("jobs." + job.getName() + ".vipmaxlevel") && job.getVipMaxLevel() != 0)
|
||||
maxLevel = job.getVipMaxLevel();
|
||||
int maxLevel = job.getMaxLevel(this);
|
||||
|
||||
if (maxLevel > 0 && newLevel > maxLevel) {
|
||||
newLevel = maxLevel;
|
||||
@ -551,11 +543,7 @@ public class JobsPlayer {
|
||||
|
||||
prog.setJob(newjob);
|
||||
|
||||
int maxLevel = 0;
|
||||
if (this.havePermission("jobs." + newjob.getName() + ".vipmaxlevel"))
|
||||
maxLevel = newjob.getVipMaxLevel();
|
||||
else
|
||||
maxLevel = newjob.getMaxLevel();
|
||||
int maxLevel = getMaxJobLevelAllowed(newjob);
|
||||
|
||||
if (newjob.getMaxLevel() > 0 && prog.getLevel() > maxLevel) {
|
||||
prog.setLevel(maxLevel);
|
||||
@ -572,6 +560,18 @@ public class JobsPlayer {
|
||||
// }
|
||||
}
|
||||
|
||||
public int getMaxJobLevelAllowed(Job job) {
|
||||
int maxLevel = 0;
|
||||
if (this.havePermission("jobs." + job.getName() + ".vipmaxlevel"))
|
||||
maxLevel = job.getVipMaxLevel() > job.getMaxLevel() ? job.getVipMaxLevel() : job.getMaxLevel();
|
||||
else
|
||||
maxLevel = job.getMaxLevel();
|
||||
int tMax = Jobs.getPermissionManager().getMaxPermission(this, "jobs." + job.getName() + ".vipmaxlevel").intValue();
|
||||
if (tMax > maxLevel)
|
||||
maxLevel = tMax;
|
||||
return maxLevel;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if the player is in this job.
|
||||
* @param job - the job
|
||||
|
@ -1205,47 +1205,6 @@ public abstract class JobsDAO {
|
||||
}
|
||||
}
|
||||
|
||||
// /**
|
||||
// * Check job in archive
|
||||
// * @param player - player that wishes to quit the job
|
||||
// * @param job - job that the player wishes to quit
|
||||
// */
|
||||
// public synchronized JobProgression getOldJobProgresion(JobsPlayer jPlayer, Job job) {
|
||||
// JobsConnection conn = getConnection();
|
||||
// JobProgression jp = null;
|
||||
// if (conn == null)
|
||||
// return jp;
|
||||
// PreparedStatement prest = null;
|
||||
// ResultSet res = null;
|
||||
// try {
|
||||
// prest = conn.prepareStatement("SELECT `level`, `experience`, `left` FROM `" + prefix + "archive` WHERE `userid` = ? AND `job` = ?;");
|
||||
// prest.setInt(1, jPlayer.getUserId());
|
||||
// prest.setString(2, job.getName());
|
||||
// res = prest.executeQuery();
|
||||
// if (res.next()) {
|
||||
// int level = (int) ((res.getInt(1) - (res.getInt(1) * (Jobs.getGCManager().levelLossPercentage / 100.0))));
|
||||
// if (level < 1)
|
||||
// level = 1;
|
||||
//
|
||||
// int maxLevel = 0;
|
||||
// if (jPlayer.havePermission("jobs." + job.getName() + ".vipmaxlevel") && job.getVipMaxLevel() != 0)
|
||||
// maxLevel = job.getVipMaxLevel();
|
||||
// else
|
||||
// maxLevel = job.getMaxLevel();
|
||||
//
|
||||
// if (Jobs.getGCManager().fixAtMaxLevel && res.getInt(1) == maxLevel)
|
||||
// level = res.getInt(1);
|
||||
// jp = new JobProgression(job, jPlayer, level, res.getInt("experience"));
|
||||
// }
|
||||
// } catch (SQLException e) {
|
||||
// e.printStackTrace();
|
||||
// } finally {
|
||||
// close(res);
|
||||
// close(prest);
|
||||
// }
|
||||
// return jp;
|
||||
// }
|
||||
|
||||
public List<TopList> getGlobalTopList() {
|
||||
return getGlobalTopList(0);
|
||||
}
|
||||
@ -1290,54 +1249,6 @@ public abstract class JobsDAO {
|
||||
return names;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get all jobs from archive by player
|
||||
* @param player - targeted player
|
||||
* @return info - information about jobs
|
||||
*/
|
||||
public synchronized List<String> getJobsFromArchive(JobsPlayer jPlayer) {
|
||||
JobsConnection conn = getConnection();
|
||||
if (conn == null)
|
||||
return null;
|
||||
List<String> info = new ArrayList<String>();
|
||||
PreparedStatement prest = null;
|
||||
ResultSet res = null;
|
||||
try {
|
||||
prest = conn.prepareStatement("SELECT `job`, `level`, `experience` FROM `" + prefix + "archive` WHERE `userid` = ?;");
|
||||
prest.setInt(1, jPlayer.getUserId());
|
||||
res = prest.executeQuery();
|
||||
while (res.next()) {
|
||||
|
||||
int level = (int) ((res.getInt(2) - (res.getInt(2) * (Jobs.getGCManager().levelLossPercentage / 100.0))));
|
||||
if (level < 1)
|
||||
level = 1;
|
||||
|
||||
int maxLevel = 0;
|
||||
|
||||
Job job = Jobs.getJob(res.getString(1));
|
||||
|
||||
if (job == null)
|
||||
continue;
|
||||
|
||||
if (jPlayer.havePermission("jobs." + job.getName() + ".vipmaxlevel"))
|
||||
maxLevel = job.getVipMaxLevel();
|
||||
else
|
||||
maxLevel = job.getMaxLevel();
|
||||
|
||||
if (Jobs.getGCManager().fixAtMaxLevel && res.getInt(2) == maxLevel)
|
||||
level = res.getInt(2);
|
||||
|
||||
info.add(res.getString(1) + ":" + res.getInt(2) + ":" + level + ":" + res.getInt(3));
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
} finally {
|
||||
close(res);
|
||||
close(prest);
|
||||
}
|
||||
return info;
|
||||
}
|
||||
|
||||
public PlayerInfo loadPlayerData(UUID uuid) {
|
||||
PlayerInfo pInfo = null;
|
||||
JobsConnection conn = getConnection();
|
||||
|
Loading…
Reference in New Issue
Block a user