1
0
mirror of https://github.com/Zrips/Jobs.git synced 2024-11-29 05:55:27 +01:00

Optimize permission check

This commit is contained in:
Zrips 2023-05-03 14:26:04 +03:00
parent e2b9f370af
commit 86c94786cf
5 changed files with 18 additions and 12 deletions

View File

@ -53,7 +53,9 @@ public class PermissionManager {
jobs_maxblastfurnaces_AMOUNT(remade("jobs.maxblastfurnaces.%AMOUNT%"), 30), jobs_maxblastfurnaces_AMOUNT(remade("jobs.maxblastfurnaces.%AMOUNT%"), 30),
jobs_maxsmokers_AMOUNT(remade("jobs.maxsmokers.%AMOUNT%"), 30), jobs_maxsmokers_AMOUNT(remade("jobs.maxsmokers.%AMOUNT%"), 30),
jobs_maxbrewingstands_AMOUNT(remade("jobs.maxbrewingstands.%AMOUNT%"), 30), jobs_maxbrewingstands_AMOUNT(remade("jobs.maxbrewingstands.%AMOUNT%"), 30),
jobs_world_WORLDNAME(remade("jobs.world.%WORLDNAME%"), 2); jobs_world_WORLDNAME(remade("jobs.world.%WORLDNAME%"), 2),
jobs_maxquest_JOBNAME_AMOUNT(remade("jobs.maxquest.%JOBNAME%.%AMOUNT%"), 30),
jobs_maxquest_all_AMOUNT(remade("jobs.maxquest.all.%AMOUNT%"), 30);
private int reload; private int reload;
private List<String> perms; private List<String> perms;
@ -93,7 +95,7 @@ public class PermissionManager {
} }
private int getDelay(String perm) { private int getDelay(String perm) {
return permDelay.getOrDefault(perm, 1); return permDelay.getOrDefault(perm, 1000);
} }
public PermissionManager() { public PermissionManager() {
@ -165,7 +167,11 @@ public class PermissionManager {
double amount = Double.NEGATIVE_INFINITY; double amount = Double.NEGATIVE_INFINITY;
permissionInfo permInfo = jPlayer.getPermissionsCache(perm); permissionInfo permInfo = jPlayer.getPermissionsCache(perm);
if (force || getDelay(perm) + permInfo.getTime() < System.currentTimeMillis()) { if (force || getDelay(perm) + permInfo.getTime() < System.currentTimeMillis()) {
CMIDebug.c("get", force, getDelay(perm) + permInfo.getTime() < System.currentTimeMillis(), getDelay(perm), permInfo.getTime(), perm);
Map<String, Boolean> perms = getAll(player, perm); Map<String, Boolean> perms = getAll(player, perm);
for (Map.Entry<String, Boolean> permission : perms.entrySet()) { for (Map.Entry<String, Boolean> permission : perms.entrySet()) {
if (!permission.getKey().startsWith(perm) || !permission.getValue()) if (!permission.getKey().startsWith(perm) || !permission.getValue())
@ -176,7 +182,7 @@ public class PermissionManager {
if (amount == Double.NEGATIVE_INFINITY) if (amount == Double.NEGATIVE_INFINITY)
amount = 0D; amount = 0D;
amount += temp; amount += temp;
}else if (temp > amount) } else if (temp > amount)
amount = temp; amount = temp;
} catch (NumberFormatException ex) { } catch (NumberFormatException ex) {
Jobs.getPluginLogger().log(java.util.logging.Level.WARNING, ex.getLocalizedMessage()); Jobs.getPluginLogger().log(java.util.logging.Level.WARNING, ex.getLocalizedMessage());

View File

@ -167,7 +167,6 @@ public class boost implements Cmd {
if (job.getBoost().getTime(curr) != null && job.getBoost().isValid(curr)) { if (job.getBoost().getTime(curr) != null && job.getBoost().isValid(curr)) {
rm.addHover(CMITimeManager.to24hourShort(job.getBoost().getTime(curr) - System.currentTimeMillis())); rm.addHover(CMITimeManager.to24hourShort(job.getBoost().getTime(curr) - System.currentTimeMillis()));
CMIDebug.c(job.getBoost().getTime(curr) - System.currentTimeMillis());
} }
} }
if (split.length > 1) if (split.length > 1)

View File

@ -36,7 +36,7 @@ public class entitylist implements Cmd {
msg.append(c2); msg.append(c2);
} }
msg.append(CMIText.firstToUpperCase(type.name())); msg.append(CMIText.everyFirstToUpperCase(type.name()));
} }
CMIMessages.sendMessage(sender, msg.toString()); CMIMessages.sendMessage(sender, msg.toString());

View File

@ -157,23 +157,24 @@ public class QuestProgression {
} }
} }
boolean completed = isCompleted();
Job questJob = quest.getJob(); Job questJob = quest.getJob();
if (questJob != null) { if (questJob != null && completed) {
int maxQuest = jPlayer.getPlayerMaxQuest(questJob.getName()); int maxQuest = jPlayer.getPlayerMaxQuest(questJob.getName());
if (maxQuest > 0 && jPlayer.getDoneQuests() >= maxQuest) { if (maxQuest > 0 && jPlayer.getDoneQuests() >= maxQuest) {
return; return;
} }
} }
if (!isCompleted() && if (!completed && objective != null) {
objective != null) {
Integer old = done.getOrDefault(objective, 0); Integer old = done.getOrDefault(objective, 0);
done.put(objective, old < objective.getAmount() ? old + 1 : objective.getAmount()); done.put(objective, old < objective.getAmount() ? old + 1 : objective.getAmount());
} }
jPlayer.setSaved(false); jPlayer.setSaved(false);
if (!isCompleted() || !player.isOnline() || givenReward) if (!completed || !player.isOnline() || givenReward)
return; return;
givenReward = true; givenReward = true;

View File

@ -531,9 +531,9 @@ public class JobsListener implements Listener {
Chunk from = event.getFrom().getChunk(); Chunk from = event.getFrom().getChunk();
Chunk to = event.getTo().getChunk(); Chunk to = event.getTo().getChunk();
if (from != to) { // if (from != to) {
plugin.getServer().getPluginManager().callEvent(new JobsChunkChangeEvent(event.getPlayer(), from, to)); // plugin.getServer().getPluginManager().callEvent(new JobsChunkChangeEvent(event.getPlayer(), from, to));
} // }
} }
@EventHandler(ignoreCancelled = true) @EventHandler(ignoreCancelled = true)