mirror of
https://github.com/Zrips/Jobs.git
synced 2025-02-27 09:43:22 +01:00
Fixing permissions
This commit is contained in:
parent
2d71e67318
commit
2da51e65b1
@ -997,6 +997,8 @@ public final class Jobs extends JavaPlugin {
|
|||||||
if (jPlayer == null)
|
if (jPlayer == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
CMIDebug.d("action");
|
||||||
|
|
||||||
List<JobProgression> progression = jPlayer.getJobProgression();
|
List<JobProgression> progression = jPlayer.getJobProgression();
|
||||||
int numjobs = progression.size();
|
int numjobs = progression.size();
|
||||||
|
|
||||||
|
@ -38,88 +38,88 @@ public class PermissionManager {
|
|||||||
|
|
||||||
private enum prm {
|
private enum prm {
|
||||||
// jobs_join_JOBNAME(remade("jobs.join.%JOBNAME%"), 60 * 1000),
|
// jobs_join_JOBNAME(remade("jobs.join.%JOBNAME%"), 60 * 1000),
|
||||||
jobs_use(remade("jobs.use"), 2),
|
jobs_use(remade("jobs.use"), 2),
|
||||||
jobs_paycreative(remade("jobs.paycreative"), 2),
|
jobs_paycreative(remade("jobs.paycreative"), 2),
|
||||||
// jobs_boost_JOBNAME_money(remade("jobs.boost.%JOBNAME%.money"), 60 * 1000),
|
// jobs_boost_JOBNAME_money(remade("jobs.boost.%JOBNAME%.money"), 60 * 1000),
|
||||||
// jobs_boost_JOBNAME_exp(remade("jobs.boost.%JOBNAME%.exp"), 60 * 1000),
|
// jobs_boost_JOBNAME_exp(remade("jobs.boost.%JOBNAME%.exp"), 60 * 1000),
|
||||||
// jobs_boost_JOBNAME_points(remade("jobs.boost.%JOBNAME%.points"), 60 * 1000),
|
// jobs_boost_JOBNAME_points(remade("jobs.boost.%JOBNAME%.points"), 60 * 1000),
|
||||||
// jobs_boost_JOBNAME_all(remade("jobs.boost.%JOBNAME%.all"), 60 * 1000),
|
// jobs_boost_JOBNAME_all(remade("jobs.boost.%JOBNAME%.all"), 60 * 1000),
|
||||||
// jobs_leave_JOBNAME(remade("jobs.leave.%JOBNAME%"), 60 * 1000),
|
// jobs_leave_JOBNAME(remade("jobs.leave.%JOBNAME%"), 60 * 1000),
|
||||||
jobs_boost_JOBNAME_money_AMOUNT(remade("jobs.boost.%JOBNAME%.money.%AMOUNT%"), 60),
|
jobs_boost_JOBNAME_money_AMOUNT(remade("jobs.boost.%JOBNAME%.money.%AMOUNT%"), 60),
|
||||||
jobs_boost_JOBNAME_exp_AMOUNT(remade("jobs.boost.%JOBNAME%.exp.%AMOUNT%"), 60),
|
jobs_boost_JOBNAME_exp_AMOUNT(remade("jobs.boost.%JOBNAME%.exp.%AMOUNT%"), 60),
|
||||||
jobs_boost_JOBNAME_points_AMOUNT(remade("jobs.boost.%JOBNAME%.points.%AMOUNT%"), 60),
|
jobs_boost_JOBNAME_points_AMOUNT(remade("jobs.boost.%JOBNAME%.points.%AMOUNT%"), 60),
|
||||||
jobs_boost_JOBNAME_all_AMOUNT(remade("jobs.boost.%JOBNAME%.all.%AMOUNT%"), 60),
|
jobs_boost_JOBNAME_all_AMOUNT(remade("jobs.boost.%JOBNAME%.all.%AMOUNT%"), 60),
|
||||||
jobs_boost_all_money_AMOUNT(remade("jobs.boost.all.money.%AMOUNT%"), 60),
|
jobs_boost_all_money_AMOUNT(remade("jobs.boost.all.money.%AMOUNT%"), 60),
|
||||||
jobs_boost_all_exp_AMOUNT(remade("jobs.boost.all.exp.%AMOUNT%"), 60),
|
jobs_boost_all_exp_AMOUNT(remade("jobs.boost.all.exp.%AMOUNT%"), 60),
|
||||||
jobs_boost_all_points_AMOUNT(remade("jobs.boost.all.points.%AMOUNT%"), 60),
|
jobs_boost_all_points_AMOUNT(remade("jobs.boost.all.points.%AMOUNT%"), 60),
|
||||||
jobs_boost_all_all_AMOUNT(remade("jobs.boost.all.all.%AMOUNT%"), 60),
|
jobs_boost_all_all_AMOUNT(remade("jobs.boost.all.all.%AMOUNT%"), 60),
|
||||||
jobs_spawner_AMOUNT(remade("jobs.nearspawner.%AMOUNT%"), 60),
|
jobs_spawner_AMOUNT(remade("jobs.nearspawner.%AMOUNT%"), 60),
|
||||||
jobs_petpay_AMOUNT(remade("jobs.petpay.%AMOUNT%"), 60),
|
jobs_petpay_AMOUNT(remade("jobs.petpay.%AMOUNT%"), 60),
|
||||||
jobs_maxfurnaces_AMOUNT(remade("jobs.maxfurnaces.%AMOUNT%"), 2),
|
jobs_maxfurnaces_AMOUNT(remade("jobs.maxfurnaces.%AMOUNT%"), 2),
|
||||||
jobs_maxblastfurnaces_AMOUNT(remade("jobs.maxblastfurnaces.%AMOUNT%"), 2),
|
jobs_maxblastfurnaces_AMOUNT(remade("jobs.maxblastfurnaces.%AMOUNT%"), 2),
|
||||||
jobs_maxsmokers_AMOUNT(remade("jobs.maxsmokers.%AMOUNT%"), 2),
|
jobs_maxsmokers_AMOUNT(remade("jobs.maxsmokers.%AMOUNT%"), 2),
|
||||||
jobs_maxbrewingstands_AMOUNT(remade("jobs.maxbrewingstands.%AMOUNT%"), 2),
|
jobs_maxbrewingstands_AMOUNT(remade("jobs.maxbrewingstands.%AMOUNT%"), 2),
|
||||||
jobs_world_WORLDNAME(remade("jobs.world.%WORLDNAME%"), 2);
|
jobs_world_WORLDNAME(remade("jobs.world.%WORLDNAME%"), 2);
|
||||||
|
|
||||||
private int reload;
|
private int reload;
|
||||||
private List<String> perms;
|
private List<String> perms;
|
||||||
|
|
||||||
prm(List<String> perms, int reload) {
|
prm(List<String> perms, int reload) {
|
||||||
this.perms = perms;
|
this.perms = perms;
|
||||||
this.reload = reload * 1000;
|
this.reload = reload * 1000;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getDelay() {
|
public int getDelay() {
|
||||||
return reload;
|
return reload;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static List<String> remade(String perm) {
|
private static List<String> remade(String perm) {
|
||||||
List<String> perms = new ArrayList<>();
|
List<String> perms = new ArrayList<>();
|
||||||
|
|
||||||
for (Job oneJ : Jobs.getJobs()) {
|
for (Job oneJ : Jobs.getJobs()) {
|
||||||
String t = perm;
|
String t = perm;
|
||||||
|
|
||||||
if (t.contains("%JOBNAME%"))
|
if (t.contains("%JOBNAME%"))
|
||||||
t = t.replace("%JOBNAME%", oneJ.getName().toLowerCase());
|
t = t.replace("%JOBNAME%", oneJ.getName().toLowerCase());
|
||||||
|
|
||||||
t = t.replace("%AMOUNT%", "");
|
t = t.replace("%AMOUNT%", "");
|
||||||
|
|
||||||
perms.add(t);
|
perms.add(t);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (perm.contains("%WORLDNAME%"))
|
if (perm.contains("%WORLDNAME%"))
|
||||||
for (World oneJ : Bukkit.getWorlds()) {
|
for (World oneJ : Bukkit.getWorlds()) {
|
||||||
perms.add(perm.replace("%WORLDNAME%", oneJ.getName().toLowerCase()));
|
perms.add(perm.replace("%WORLDNAME%", oneJ.getName().toLowerCase()));
|
||||||
}
|
}
|
||||||
|
|
||||||
return perms;
|
return perms;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<String> getPerms() {
|
public List<String> getPerms() {
|
||||||
return perms;
|
return perms;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private int getDelay(String perm) {
|
private int getDelay(String perm) {
|
||||||
return permDelay.getOrDefault(perm, 1);
|
return permDelay.getOrDefault(perm, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
public PermissionManager() {
|
public PermissionManager() {
|
||||||
for (prm one : prm.values()) {
|
for (prm one : prm.values()) {
|
||||||
for (String oneP : one.getPerms()) {
|
for (String oneP : one.getPerms()) {
|
||||||
permDelay.put(oneP, one.getDelay());
|
permDelay.put(oneP, one.getDelay());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Map<String, Boolean> getAll(Player player) {
|
private static Map<String, Boolean> getAll(Player player, String perm) {
|
||||||
Map<String, Boolean> mine = new HashMap<>();
|
Map<String, Boolean> mine = new HashMap<>();
|
||||||
for (PermissionAttachmentInfo permission : player.getEffectivePermissions()) {
|
for (PermissionAttachmentInfo permission : player.getEffectivePermissions()) {
|
||||||
if (permission.getPermission().startsWith("jobs."))
|
if (permission.getPermission().startsWith(perm))
|
||||||
mine.put(permission.getPermission(), permission.getValue());
|
mine.put(permission.getPermission(), permission.getValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
return mine;
|
return mine;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -131,7 +131,7 @@ public class PermissionManager {
|
|||||||
* @return the max value
|
* @return the max value
|
||||||
*/
|
*/
|
||||||
public double getMaxPermission(JobsPlayer jPlayer, String perm) {
|
public double getMaxPermission(JobsPlayer jPlayer, String perm) {
|
||||||
return getMaxPermission(jPlayer, perm, false, false);
|
return getMaxPermission(jPlayer, perm, false, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -144,7 +144,7 @@ public class PermissionManager {
|
|||||||
* @return the max value
|
* @return the max value
|
||||||
*/
|
*/
|
||||||
public double getMaxPermission(JobsPlayer jPlayer, String perm, boolean force) {
|
public double getMaxPermission(JobsPlayer jPlayer, String perm, boolean force) {
|
||||||
return getMaxPermission(jPlayer, perm, force, false);
|
return getMaxPermission(jPlayer, perm, force, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -159,68 +159,68 @@ public class PermissionManager {
|
|||||||
* @return the max value
|
* @return the max value
|
||||||
*/
|
*/
|
||||||
public double getMaxPermission(JobsPlayer jPlayer, String perm, boolean force, boolean cumulative) {
|
public double getMaxPermission(JobsPlayer jPlayer, String perm, boolean force, boolean cumulative) {
|
||||||
if (jPlayer == null)
|
if (jPlayer == null)
|
||||||
return 0D;
|
return 0D;
|
||||||
|
|
||||||
Player player = jPlayer.getPlayer();
|
Player player = jPlayer.getPlayer();
|
||||||
if (player == null)
|
if (player == null)
|
||||||
return 0D;
|
return 0D;
|
||||||
|
|
||||||
perm = perm.toLowerCase();
|
perm = perm.toLowerCase();
|
||||||
if (!perm.endsWith("."))
|
if (!perm.endsWith("."))
|
||||||
perm += ".";
|
perm += ".";
|
||||||
|
|
||||||
Map<String, Boolean> permissions = jPlayer.getPermissionsCache();
|
double amount = Double.NEGATIVE_INFINITY;
|
||||||
if (force || permissions == null || getDelay(perm) + jPlayer.getLastPermissionUpdate() < System.currentTimeMillis()) {
|
|
||||||
if (permissions == null) {
|
|
||||||
permissions = getAll(player);
|
|
||||||
} else {
|
|
||||||
permissions.clear();
|
|
||||||
permissions.putAll(getAll(player));
|
|
||||||
}
|
|
||||||
jPlayer.setPermissionsCache(permissions);
|
|
||||||
jPlayer.setLastPermissionUpdate(System.currentTimeMillis());
|
|
||||||
}
|
|
||||||
|
|
||||||
double amount = Double.NEGATIVE_INFINITY;
|
permissionInfo permInfo = jPlayer.getPermissionsCache(perm);
|
||||||
|
if (force || getDelay(perm) + permInfo.getTime() < System.currentTimeMillis()) {
|
||||||
|
|
||||||
for (Map.Entry<String, Boolean> permission : permissions.entrySet()) {
|
Map<String, Boolean> perms = getAll(player, perm);
|
||||||
if (!permission.getKey().startsWith(perm) || !permission.getValue())
|
|
||||||
continue;
|
|
||||||
try {
|
|
||||||
double temp = Double.parseDouble(permission.getKey().replace(perm, ""));
|
|
||||||
if (cumulative)
|
|
||||||
amount += temp;
|
|
||||||
else if (temp > amount)
|
|
||||||
amount = temp;
|
|
||||||
} catch (NumberFormatException ex) {
|
|
||||||
Jobs.getPluginLogger().log(java.util.logging.Level.WARNING, ex.getLocalizedMessage());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return amount == Double.NEGATIVE_INFINITY ? 0D : amount;
|
for (Map.Entry<String, Boolean> permission : perms.entrySet()) {
|
||||||
|
if (!permission.getKey().startsWith(perm) || !permission.getValue())
|
||||||
|
continue;
|
||||||
|
try {
|
||||||
|
double temp = Double.parseDouble(permission.getKey().replace(perm, ""));
|
||||||
|
if (cumulative)
|
||||||
|
amount += temp;
|
||||||
|
else if (temp > amount)
|
||||||
|
amount = temp;
|
||||||
|
} catch (NumberFormatException ex) {
|
||||||
|
Jobs.getPluginLogger().log(java.util.logging.Level.WARNING, ex.getLocalizedMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
permInfo.setTime(System.currentTimeMillis());
|
||||||
|
permInfo.setValue(amount == Double.NEGATIVE_INFINITY ? 0D : amount);
|
||||||
|
|
||||||
|
jPlayer.addToPermissionsCache(perm, permInfo);
|
||||||
|
}
|
||||||
|
|
||||||
|
CMIDebug.d("Max: ", permInfo.getValue());
|
||||||
|
|
||||||
|
return permInfo.getValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean hasPermission(JobsPlayer jPlayer, String perm) {
|
public boolean hasPermission(JobsPlayer jPlayer, String perm) {
|
||||||
if (jPlayer == null)
|
if (jPlayer == null)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
Player player = jPlayer.getPlayer();
|
Player player = jPlayer.getPlayer();
|
||||||
if (player == null)
|
if (player == null)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
Map<String, Boolean> permissions = jPlayer.getPermissionsCache();
|
permissionInfo permInfo = jPlayer.getPermissionsCache(perm);
|
||||||
|
|
||||||
if (permissions == null || getDelay(perm) + jPlayer.getLastPermissionUpdate() < System.currentTimeMillis()) {
|
if (getDelay(perm) + permInfo.getTime() < System.currentTimeMillis()) {
|
||||||
if (permissions == null) {
|
permInfo.setState(player.hasPermission(perm));
|
||||||
permissions = new HashMap<>();
|
permInfo.setTime(System.currentTimeMillis());
|
||||||
jPlayer.setPermissionsCache(permissions);
|
jPlayer.addToPermissionsCache(perm, permInfo);
|
||||||
}
|
}
|
||||||
permissions.put(perm, player.hasPermission(perm));
|
|
||||||
jPlayer.setLastPermissionUpdate(System.currentTimeMillis());
|
|
||||||
}
|
|
||||||
|
|
||||||
return permissions.getOrDefault(perm, false);
|
CMIDebug.d("this return");
|
||||||
|
|
||||||
|
return permInfo.getState();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -22,22 +22,22 @@ import net.Zrips.CMILib.Chat.ChatMessageListEdit;
|
|||||||
import net.Zrips.CMILib.Chat.ChatMessageListEdit.ChatEditType;
|
import net.Zrips.CMILib.Chat.ChatMessageListEdit.ChatEditType;
|
||||||
import net.Zrips.CMILib.Chat.ChatMessageObjectEdit;
|
import net.Zrips.CMILib.Chat.ChatMessageObjectEdit;
|
||||||
import net.Zrips.CMILib.Colors.CMIChatColor;
|
import net.Zrips.CMILib.Colors.CMIChatColor;
|
||||||
|
import net.Zrips.CMILib.Container.CMIList;
|
||||||
import net.Zrips.CMILib.Container.CMINumber;
|
import net.Zrips.CMILib.Container.CMINumber;
|
||||||
import net.Zrips.CMILib.Container.CMIText;
|
import net.Zrips.CMILib.Container.CMIText;
|
||||||
import net.Zrips.CMILib.Container.PageInfo;
|
import net.Zrips.CMILib.Container.PageInfo;
|
||||||
import net.Zrips.CMILib.FileHandler.ConfigReader;
|
import net.Zrips.CMILib.FileHandler.ConfigReader;
|
||||||
import net.Zrips.CMILib.Locale.LC;
|
import net.Zrips.CMILib.Locale.LC;
|
||||||
|
import net.Zrips.CMILib.Logs.CMIDebug;
|
||||||
import net.Zrips.CMILib.RawMessages.RawMessage;
|
import net.Zrips.CMILib.RawMessages.RawMessage;
|
||||||
import net.Zrips.CMILib.RawMessages.RawMessageCommand;
|
import net.Zrips.CMILib.RawMessages.RawMessageCommand;
|
||||||
|
|
||||||
public class editquests implements Cmd {
|
public class editquests implements Cmd {
|
||||||
|
|
||||||
private enum Action {
|
private enum Action {
|
||||||
update, editline, moveup, movedown, createnew, addline, info, deleteLine, gui, list, delete, editCommands;
|
list;
|
||||||
|
|
||||||
public static Action getByName(String name) {
|
public static Action getByName(String name) {
|
||||||
if (name.equalsIgnoreCase("new"))
|
|
||||||
return Action.createnew;
|
|
||||||
for (Action one : Action.values()) {
|
for (Action one : Action.values()) {
|
||||||
if (one.name().equalsIgnoreCase(name))
|
if (one.name().equalsIgnoreCase(name))
|
||||||
return one;
|
return one;
|
||||||
@ -46,8 +46,8 @@ public class editquests implements Cmd {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
HashMap<String, Quest> tempQuests = new HashMap<String, Quest>();
|
static HashMap<String, Quest> tempQuests = new HashMap<String, Quest>();
|
||||||
HashMap<String, List<String>> tempObjectives = new HashMap<String, List<String>>();
|
static HashMap<String, List<String>> tempObjectives = new HashMap<String, List<String>>();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean perform(Jobs plugin, final CommandSender sender, String[] args) {
|
public boolean perform(Jobs plugin, final CommandSender sender, String[] args) {
|
||||||
@ -81,47 +81,59 @@ public class editquests implements Cmd {
|
|||||||
|
|
||||||
switch (action) {
|
switch (action) {
|
||||||
case list:
|
case list:
|
||||||
Set<Quest> quests = new LinkedHashSet<Quest>();
|
listQuests(sender, page);
|
||||||
for (Job job : Jobs.getJobs()) {
|
|
||||||
quests.addAll(job.getQuests());
|
|
||||||
}
|
|
||||||
|
|
||||||
PageInfo pi = new PageInfo(10, quests.size(), page);
|
|
||||||
ChatMessageObjectEdit CMOE = new ChatMessageObjectEdit(sender, pi) {
|
|
||||||
@Override
|
|
||||||
public void newAdd(String message) {
|
|
||||||
Quest q = new Quest(message, null);
|
|
||||||
tempQuests.put(sender.getName(), q);
|
|
||||||
mainWindow(sender, q);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
for (Quest quest : quests) {
|
|
||||||
if (!pi.isEntryOk())
|
|
||||||
continue;
|
|
||||||
ChatEditorObject CEO = new ChatEditorObject(Jobs.getLanguage().getMessage("command.editquests.help.output.list", "[jobName]", quest.getJob()
|
|
||||||
.getDisplayName(), "[questName]", quest.getQuestName())) {
|
|
||||||
@Override
|
|
||||||
public void onDelete() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onClick() {
|
|
||||||
mainWindow(sender, quest);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
CEO.setHover(LC.modify_editSymbolHover.getLocale("[text]", quest.getQuestName()));
|
|
||||||
CMOE.addline(CEO);
|
|
||||||
}
|
|
||||||
CMOE.print();
|
|
||||||
pi.autoPagination(sender, JobsCommands.LABEL + " " + editquests.class.getSimpleName());
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<String> getRecords(Quest quest, String section) {
|
private static void listQuests(CommandSender sender, int page) {
|
||||||
|
|
||||||
|
LC.info_Spliter.sendMessage(sender);
|
||||||
|
Set<Quest> quests = new LinkedHashSet<Quest>();
|
||||||
|
for (Job job : Jobs.getJobs()) {
|
||||||
|
quests.addAll(job.getQuests());
|
||||||
|
}
|
||||||
|
|
||||||
|
PageInfo pi = new PageInfo(10, quests.size(), page);
|
||||||
|
ChatMessageObjectEdit CMOE = new ChatMessageObjectEdit(sender, pi) {
|
||||||
|
@Override
|
||||||
|
public void newAdd(String message) {
|
||||||
|
Quest q = new Quest(message, null);
|
||||||
|
tempQuests.put(sender.getName(), q);
|
||||||
|
mainWindow(sender, q);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
for (Quest quest : quests) {
|
||||||
|
if (!pi.isEntryOk())
|
||||||
|
continue;
|
||||||
|
ChatEditorObject CEO = new ChatEditorObject(Jobs.getLanguage().getMessage("command.editquests.help.output.list", "[jobName]", quest.getJob()
|
||||||
|
.getDisplayName(), "[questName]", quest.getQuestName())) {
|
||||||
|
@Override
|
||||||
|
public void onDelete() {
|
||||||
|
if (quest.getJob() != null) {
|
||||||
|
removeQuestInFile(quest.getConfigName(), quest.getJob().getName());
|
||||||
|
quest.getJob().getQuests().remove(quest);
|
||||||
|
}
|
||||||
|
listQuests(sender, page);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onClick() {
|
||||||
|
mainWindow(sender, quest);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
CEO.setHover(LC.modify_editSymbolHover.getLocale("[text]", quest.getQuestName()));
|
||||||
|
CMOE.addline(CEO);
|
||||||
|
}
|
||||||
|
CMOE.print();
|
||||||
|
pi.autoPagination(sender, JobsCommands.LABEL + " " + editquests.class.getSimpleName());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private static List<String> getRecords(Quest quest, String section) {
|
||||||
|
|
||||||
List<String> objectives = new ArrayList<String>();
|
List<String> objectives = new ArrayList<String>();
|
||||||
|
|
||||||
if (quest.getJob() == null)
|
if (quest.getJob() == null)
|
||||||
@ -155,7 +167,7 @@ public class editquests implements Cmd {
|
|||||||
return objectives;
|
return objectives;
|
||||||
}
|
}
|
||||||
|
|
||||||
private ConfigReader getQuestConfig(String jobName) {
|
private static ConfigReader getQuestConfig(String jobName) {
|
||||||
|
|
||||||
ConfigReader cfg = null;
|
ConfigReader cfg = null;
|
||||||
|
|
||||||
@ -185,7 +197,10 @@ public class editquests implements Cmd {
|
|||||||
return cfg;
|
return cfg;
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean removeQuestInFile(CommandSender sender, String questName, String jobName) {
|
private static boolean removeQuestInFile(String questName, String jobName) {
|
||||||
|
|
||||||
|
if (questName == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
ConfigReader cfg = getQuestConfig(jobName);
|
ConfigReader cfg = getQuestConfig(jobName);
|
||||||
|
|
||||||
@ -199,7 +214,7 @@ public class editquests implements Cmd {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean updateQuestInFile(CommandSender sender, Quest quest) {
|
private static boolean updateQuestInFile(CommandSender sender, Quest quest) {
|
||||||
|
|
||||||
if (quest.getJob() == null)
|
if (quest.getJob() == null)
|
||||||
return false;
|
return false;
|
||||||
@ -247,8 +262,9 @@ public class editquests implements Cmd {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void objectivesWindow(CommandSender sender, Quest quest) {
|
private static void objectivesWindow(CommandSender sender, Quest quest) {
|
||||||
|
|
||||||
|
LC.info_Spliter.sendMessage(sender);
|
||||||
RawMessage rm = new RawMessage();
|
RawMessage rm = new RawMessage();
|
||||||
rm.addText(quest.getQuestName() + " objectives");
|
rm.addText(quest.getQuestName() + " objectives");
|
||||||
|
|
||||||
@ -274,8 +290,9 @@ public class editquests implements Cmd {
|
|||||||
cmle.print();
|
cmle.print();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void rewardCommandsWindow(CommandSender sender, Quest quest) {
|
private static void rewardCommandsWindow(CommandSender sender, Quest quest) {
|
||||||
|
|
||||||
|
LC.info_Spliter.sendMessage(sender);
|
||||||
RawMessage rm = new RawMessage();
|
RawMessage rm = new RawMessage();
|
||||||
rm.addText(quest.getQuestName() + " reward commmands");
|
rm.addText(quest.getQuestName() + " reward commmands");
|
||||||
|
|
||||||
@ -297,8 +314,9 @@ public class editquests implements Cmd {
|
|||||||
cmle.print();
|
cmle.print();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void rewardDescWindow(CommandSender sender, Quest quest) {
|
private static void rewardDescWindow(CommandSender sender, Quest quest) {
|
||||||
|
|
||||||
|
LC.info_Spliter.sendMessage(sender);
|
||||||
RawMessage rm = new RawMessage();
|
RawMessage rm = new RawMessage();
|
||||||
rm.addText(quest.getQuestName() + " reward description");
|
rm.addText(quest.getQuestName() + " reward description");
|
||||||
|
|
||||||
@ -320,8 +338,9 @@ public class editquests implements Cmd {
|
|||||||
cmle.print();
|
cmle.print();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void restrictedAreaWindow(CommandSender sender, Quest quest) {
|
private static void restrictedAreaWindow(CommandSender sender, Quest quest) {
|
||||||
|
|
||||||
|
LC.info_Spliter.sendMessage(sender);
|
||||||
RawMessage rm = new RawMessage();
|
RawMessage rm = new RawMessage();
|
||||||
rm.addText(quest.getQuestName() + " restricted areas");
|
rm.addText(quest.getQuestName() + " restricted areas");
|
||||||
|
|
||||||
@ -343,13 +362,13 @@ public class editquests implements Cmd {
|
|||||||
cmle.print();
|
cmle.print();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void mainWindow(CommandSender sender, Quest quest) {
|
private static void mainWindow(CommandSender sender, Quest quest) {
|
||||||
|
|
||||||
LC.info_Spliter.sendMessage(sender);
|
LC.info_Spliter.sendMessage(sender);
|
||||||
|
|
||||||
RawMessage rm = new RawMessage();
|
RawMessage rm = new RawMessage();
|
||||||
|
|
||||||
rm.addText("&eName: &f" + quest.getQuestName());
|
rm.addText("&7Name: &f" + quest.getQuestName());
|
||||||
rm.addHover(LC.modify_editSymbolHover.getLocale("[text]", quest.getQuestName()));
|
rm.addHover(LC.modify_editSymbolHover.getLocale("[text]", quest.getQuestName()));
|
||||||
RawMessageCommand rmc = new RawMessageCommand() {
|
RawMessageCommand rmc = new RawMessageCommand() {
|
||||||
@Override
|
@Override
|
||||||
@ -372,59 +391,8 @@ public class editquests implements Cmd {
|
|||||||
};
|
};
|
||||||
rm.addCommand(rmc);
|
rm.addCommand(rmc);
|
||||||
|
|
||||||
rm.addText("\n");
|
|
||||||
List<String> objectives = getRecords(quest, "Objectives");
|
|
||||||
if (!tempObjectives.containsKey(sender.getName()))
|
|
||||||
tempObjectives.put(sender.getName(), objectives);
|
|
||||||
else
|
|
||||||
objectives = tempObjectives.get(sender.getName());
|
|
||||||
|
|
||||||
rm.addText((objectives.isEmpty() ? "&c" : "&e") + "Objectives");
|
|
||||||
rm.addHover(LC.modify_editSymbolHover.getLocale("[text]", "Objectives"));
|
|
||||||
rmc = new RawMessageCommand() {
|
|
||||||
@Override
|
|
||||||
public void run(CommandSender sender) {
|
|
||||||
objectivesWindow(sender, quest);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
rm.addCommand(rmc);
|
|
||||||
|
|
||||||
rm.addText("\n");
|
|
||||||
rm.addText((quest.getRewardCmds().isEmpty() ? "&c" : "&e") + "Reward commands");
|
|
||||||
rm.addHover(LC.modify_editSymbolHover.getLocale("[text]", "Reward commands"));
|
|
||||||
rmc = new RawMessageCommand() {
|
|
||||||
@Override
|
|
||||||
public void run(CommandSender sender) {
|
|
||||||
rewardCommandsWindow(sender, quest);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
rm.addCommand(rmc);
|
|
||||||
|
|
||||||
rm.addText("\n");
|
|
||||||
rm.addText("&eDescription");
|
|
||||||
rm.addHover(LC.modify_editSymbolHover.getLocale("[text]", "Description"));
|
|
||||||
rmc = new RawMessageCommand() {
|
|
||||||
@Override
|
|
||||||
public void run(CommandSender sender) {
|
|
||||||
rewardDescWindow(sender, quest);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
rm.addCommand(rmc);
|
|
||||||
|
|
||||||
rm.addText("\n");
|
|
||||||
rm.addText("&eRestricted areas");
|
|
||||||
rm.addHover(LC.modify_editSymbolHover.getLocale("[text]", "Restricted areas"));
|
|
||||||
rmc = new RawMessageCommand() {
|
|
||||||
@Override
|
|
||||||
public void run(CommandSender sender) {
|
|
||||||
restrictedAreaWindow(sender, quest);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
rm.addCommand(rmc);
|
|
||||||
|
|
||||||
String jobName = quest.getJob() == null ? "&c-" : quest.getJob().getName();
|
String jobName = quest.getJob() == null ? "&c-" : quest.getJob().getName();
|
||||||
rm.addText("\n");
|
rm.addText(" &7Job: &f" + jobName);
|
||||||
rm.addText("&eJob: &f" + jobName);
|
|
||||||
rm.addHover(LC.modify_editSymbolHover.getLocale("[text]", jobName));
|
rm.addHover(LC.modify_editSymbolHover.getLocale("[text]", jobName));
|
||||||
rmc = new RawMessageCommand() {
|
rmc = new RawMessageCommand() {
|
||||||
@Override
|
@Override
|
||||||
@ -446,7 +414,7 @@ public class editquests implements Cmd {
|
|||||||
|
|
||||||
if (quest.getJob() != j) {
|
if (quest.getJob() != j) {
|
||||||
if (quest.getJob() != null) {
|
if (quest.getJob() != null) {
|
||||||
removeQuestInFile(sender, quest.getConfigName(), quest.getJob().getName());
|
removeQuestInFile(quest.getConfigName(), quest.getJob().getName());
|
||||||
quest.getJob().getQuests().remove(quest);
|
quest.getJob().getQuests().remove(quest);
|
||||||
}
|
}
|
||||||
j.getQuests().add(quest);
|
j.getQuests().add(quest);
|
||||||
@ -469,8 +437,7 @@ public class editquests implements Cmd {
|
|||||||
};
|
};
|
||||||
rm.addCommand(rmc);
|
rm.addCommand(rmc);
|
||||||
|
|
||||||
rm.addText("\n");
|
rm.addText(" &7Chance: &f" + quest.getChance());
|
||||||
rm.addText("&eChance: &f" + quest.getChance());
|
|
||||||
rm.addHover(LC.modify_editSymbolHover.getLocale("[text]", quest.getChance()));
|
rm.addHover(LC.modify_editSymbolHover.getLocale("[text]", quest.getChance()));
|
||||||
rmc = new RawMessageCommand() {
|
rmc = new RawMessageCommand() {
|
||||||
@Override
|
@Override
|
||||||
@ -503,7 +470,7 @@ public class editquests implements Cmd {
|
|||||||
|
|
||||||
rm.addText("\n");
|
rm.addText("\n");
|
||||||
|
|
||||||
rm.addText("&eFrom level: &f" + quest.getMinLvl());
|
rm.addText("&7Level from: &f" + quest.getMinLvl());
|
||||||
rm.addHover(LC.modify_editSymbolHover.getLocale("[text]", quest.getMinLvl()));
|
rm.addHover(LC.modify_editSymbolHover.getLocale("[text]", quest.getMinLvl()));
|
||||||
rmc = new RawMessageCommand() {
|
rmc = new RawMessageCommand() {
|
||||||
@Override
|
@Override
|
||||||
@ -538,8 +505,7 @@ public class editquests implements Cmd {
|
|||||||
};
|
};
|
||||||
rm.addCommand(rmc);
|
rm.addCommand(rmc);
|
||||||
|
|
||||||
rm.addText("\n");
|
rm.addText(" &7to: &f" + (quest.getMaxLvl() == null ? "-" : quest.getMaxLvl()));
|
||||||
rm.addText("&eTo level: &f" + (quest.getMaxLvl() == null ? "-" : quest.getMaxLvl()));
|
|
||||||
rm.addHover(LC.modify_editSymbolHover.getLocale("[text]", (quest.getMaxLvl() == null ? "-" : quest.getMaxLvl())));
|
rm.addHover(LC.modify_editSymbolHover.getLocale("[text]", (quest.getMaxLvl() == null ? "-" : quest.getMaxLvl())));
|
||||||
rmc = new RawMessageCommand() {
|
rmc = new RawMessageCommand() {
|
||||||
@Override
|
@Override
|
||||||
@ -574,6 +540,71 @@ public class editquests implements Cmd {
|
|||||||
};
|
};
|
||||||
rm.addCommand(rmc);
|
rm.addCommand(rmc);
|
||||||
|
|
||||||
|
rm.addText("\n");
|
||||||
|
List<String> objectives = getRecords(quest, "Objectives");
|
||||||
|
if (!tempObjectives.containsKey(sender.getName()))
|
||||||
|
tempObjectives.put(sender.getName(), objectives);
|
||||||
|
else
|
||||||
|
objectives = tempObjectives.get(sender.getName());
|
||||||
|
|
||||||
|
String objectiveString = CMIList.listToString(objectives, " ");
|
||||||
|
if (objectiveString.length() > 32)
|
||||||
|
objectiveString = objectiveString.substring(0, 32) + "..";
|
||||||
|
|
||||||
|
rm.addText((objectives.isEmpty() ? "&c" : "&7") + "Objectives" + (objectiveString.isBlank() ? "" : " - &f" + objectiveString));
|
||||||
|
rm.addHover(LC.modify_editSymbolHover.getLocale("[text]", "Objectives"));
|
||||||
|
rmc = new RawMessageCommand() {
|
||||||
|
@Override
|
||||||
|
public void run(CommandSender sender) {
|
||||||
|
objectivesWindow(sender, quest);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
rm.addCommand(rmc);
|
||||||
|
|
||||||
|
rm.addText("\n");
|
||||||
|
|
||||||
|
String rewardsString = CMIList.listToString(quest.getRewardCmds(), " ");
|
||||||
|
if (rewardsString.length() > 32)
|
||||||
|
rewardsString = rewardsString.substring(0, 30) + "..";
|
||||||
|
|
||||||
|
rm.addText((quest.getRewardCmds().isEmpty() ? "&c" : "&7") + "Reward commands" + (rewardsString.isBlank() ? "" : " - &f" + rewardsString));
|
||||||
|
rm.addHover(LC.modify_editSymbolHover.getLocale("[text]", "Reward commands"));
|
||||||
|
rmc = new RawMessageCommand() {
|
||||||
|
@Override
|
||||||
|
public void run(CommandSender sender) {
|
||||||
|
rewardCommandsWindow(sender, quest);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
rm.addCommand(rmc);
|
||||||
|
|
||||||
|
rm.addText("\n");
|
||||||
|
String descString = CMIList.listToString(quest.getDescription(), " ");
|
||||||
|
if (descString.length() > 32)
|
||||||
|
descString = descString.substring(0, 30) + "..";
|
||||||
|
rm.addText("&7Description" + (rewardsString.isBlank() ? "" : " - &f" + descString));
|
||||||
|
rm.addHover(LC.modify_editSymbolHover.getLocale("[text]", "Description"));
|
||||||
|
rmc = new RawMessageCommand() {
|
||||||
|
@Override
|
||||||
|
public void run(CommandSender sender) {
|
||||||
|
rewardDescWindow(sender, quest);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
rm.addCommand(rmc);
|
||||||
|
|
||||||
|
rm.addText("\n");
|
||||||
|
String restrictedString = CMIList.listToString(quest.getRestrictedAreas(), " ");
|
||||||
|
if (restrictedString.length() > 32)
|
||||||
|
restrictedString = restrictedString.substring(0, 30) + "..";
|
||||||
|
rm.addText("&7Restricted areas" + (restrictedString.isBlank() ? "" : " - &f" + restrictedString));
|
||||||
|
rm.addHover(LC.modify_editSymbolHover.getLocale("[text]", "Restricted areas"));
|
||||||
|
rmc = new RawMessageCommand() {
|
||||||
|
@Override
|
||||||
|
public void run(CommandSender sender) {
|
||||||
|
restrictedAreaWindow(sender, quest);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
rm.addCommand(rmc);
|
||||||
|
|
||||||
rm.show(sender);
|
rm.show(sender);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1430,6 +1430,7 @@ public class ConfigManager {
|
|||||||
quest.setRewardCmds(sqsection.getStringList("RewardCommands"));
|
quest.setRewardCmds(sqsection.getStringList("RewardCommands"));
|
||||||
quest.setDescription(sqsection.getStringList("RewardDesc"));
|
quest.setDescription(sqsection.getStringList("RewardDesc"));
|
||||||
quest.setRestrictedArea(sqsection.getStringList("RestrictedAreas"));
|
quest.setRestrictedArea(sqsection.getStringList("RestrictedAreas"));
|
||||||
|
quest.setEnabled(sqsection.getBoolean("Enabled", true));
|
||||||
|
|
||||||
quests.add(quest);
|
quests.add(quest);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
@ -34,6 +34,7 @@ import org.bukkit.OfflinePlayer;
|
|||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
import com.gamingmesh.jobs.Jobs;
|
import com.gamingmesh.jobs.Jobs;
|
||||||
|
import com.gamingmesh.jobs.permissionInfo;
|
||||||
import com.gamingmesh.jobs.Signs.SignTopType;
|
import com.gamingmesh.jobs.Signs.SignTopType;
|
||||||
import com.gamingmesh.jobs.api.JobsLevelUpEvent;
|
import com.gamingmesh.jobs.api.JobsLevelUpEvent;
|
||||||
import com.gamingmesh.jobs.container.blockOwnerShip.BlockTypes;
|
import com.gamingmesh.jobs.container.blockOwnerShip.BlockTypes;
|
||||||
@ -85,8 +86,7 @@ public class JobsPlayer {
|
|||||||
|
|
||||||
private long seen = System.currentTimeMillis();
|
private long seen = System.currentTimeMillis();
|
||||||
|
|
||||||
private Map<String, Boolean> permissionsCache;
|
private Map<String, permissionInfo> permissionsCache = new HashMap<>();
|
||||||
private long lastPermissionUpdate = -1L;
|
|
||||||
|
|
||||||
private final Map<String, Map<String, QuestProgression>> qProgression = new HashMap<>();
|
private final Map<String, Map<String, QuestProgression>> qProgression = new HashMap<>();
|
||||||
private int doneQuests = 0;
|
private int doneQuests = 0;
|
||||||
@ -924,6 +924,9 @@ public class JobsPlayer {
|
|||||||
clearBossMaps();
|
clearBossMaps();
|
||||||
isOnline = false;
|
isOnline = false;
|
||||||
blockOwnerShipInform = null;
|
blockOwnerShipInform = null;
|
||||||
|
|
||||||
|
permissionsCache.clear();
|
||||||
|
|
||||||
Jobs.getPlayerManager().addPlayerToCache(this);
|
Jobs.getPlayerManager().addPlayerToCache(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -961,24 +964,16 @@ public class JobsPlayer {
|
|||||||
this.seen = seen;
|
this.seen = seen;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Map<String, Boolean> getPermissionsCache() {
|
public Map<String, permissionInfo> getPermissionsCache() {
|
||||||
return permissionsCache;
|
return permissionsCache;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setPermissionsCache(Map<String, Boolean> permissionsCache) {
|
public permissionInfo getPermissionsCache(String perm) {
|
||||||
this.permissionsCache = permissionsCache;
|
return permissionsCache.getOrDefault(perm, new permissionInfo());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setPermissionsCache(String permission, Boolean state) {
|
public void addToPermissionsCache(String permission, permissionInfo permInfo) {
|
||||||
permissionsCache.put(permission, state);
|
permissionsCache.put(permission, permInfo);
|
||||||
}
|
|
||||||
|
|
||||||
public long getLastPermissionUpdate() {
|
|
||||||
return lastPermissionUpdate;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setLastPermissionUpdate(Long lastPermissionUpdate) {
|
|
||||||
this.lastPermissionUpdate = lastPermissionUpdate;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -20,6 +20,8 @@ public class Quest {
|
|||||||
private int chance = 100, minLvl = 0;
|
private int chance = 100, minLvl = 0;
|
||||||
private Integer maxLvl;
|
private Integer maxLvl;
|
||||||
|
|
||||||
|
private boolean enabled = false;
|
||||||
|
|
||||||
private final List<String> rewardCmds = new ArrayList<>(), rewards = new ArrayList<>(), area = new ArrayList<>();
|
private final List<String> rewardCmds = new ArrayList<>(), rewards = new ArrayList<>(), area = new ArrayList<>();
|
||||||
|
|
||||||
private boolean stopped = false;
|
private boolean stopped = false;
|
||||||
@ -217,4 +219,12 @@ public class Quest {
|
|||||||
public boolean hasAction(ActionType action) {
|
public boolean hasAction(ActionType action) {
|
||||||
return actions.contains(action);
|
return actions.contains(action);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isEnabled() {
|
||||||
|
return enabled;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEnabled(boolean enabled) {
|
||||||
|
this.enabled = enabled;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -419,6 +419,7 @@ public final class JobsPaymentListener implements Listener {
|
|||||||
|
|
||||||
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
||||||
public void onBlockBreak(BlockBreakEvent event) {
|
public void onBlockBreak(BlockBreakEvent event) {
|
||||||
|
|
||||||
final Block block = event.getBlock();
|
final Block block = event.getBlock();
|
||||||
|
|
||||||
if (!Jobs.getGCManager().canPerformActionInWorld(block.getWorld()))
|
if (!Jobs.getGCManager().canPerformActionInWorld(block.getWorld()))
|
||||||
@ -433,9 +434,12 @@ public final class JobsPaymentListener implements Listener {
|
|||||||
if (Jobs.getGCManager().disablePaymentIfRiding && player.isInsideVehicle())
|
if (Jobs.getGCManager().disablePaymentIfRiding && player.isInsideVehicle())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
CMIDebug.d("BlockBreakEvent2");
|
||||||
|
|
||||||
// check if in creative
|
// check if in creative
|
||||||
if (!payIfCreative(player))
|
if (!payIfCreative(player))
|
||||||
return;
|
return;
|
||||||
|
CMIDebug.d("BlockBreakEvent3");
|
||||||
|
|
||||||
if (!Jobs.getPermissionHandler().hasWorldPermission(player, player.getLocation().getWorld().getName()))
|
if (!Jobs.getPermissionHandler().hasWorldPermission(player, player.getLocation().getWorld().getName()))
|
||||||
return;
|
return;
|
||||||
@ -1895,12 +1899,7 @@ public final class JobsPaymentListener implements Listener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static boolean payIfCreative(Player player) {
|
public static boolean payIfCreative(Player player) {
|
||||||
if (Jobs.getGCManager().payInCreative() && player.getGameMode() == GameMode.CREATIVE)
|
return player.getGameMode() != GameMode.CREATIVE || Jobs.getGCManager().payInCreative() || Jobs.getPermissionManager().hasPermission(Jobs.getPlayerManager().getJobsPlayer(player), "jobs.paycreative");
|
||||||
return true;
|
|
||||||
if (player.getGameMode() == GameMode.CREATIVE && Jobs.getPermissionManager().hasPermission(Jobs.getPlayerManager().getJobsPlayer(player), "jobs.paycreative"))
|
|
||||||
return true;
|
|
||||||
|
|
||||||
return player.getGameMode() != GameMode.CREATIVE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Prevent item durability loss
|
// Prevent item durability loss
|
||||||
|
36
src/main/java/com/gamingmesh/jobs/permissionInfo.java
Normal file
36
src/main/java/com/gamingmesh/jobs/permissionInfo.java
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
package com.gamingmesh.jobs;
|
||||||
|
|
||||||
|
public class permissionInfo {
|
||||||
|
|
||||||
|
private long time = 0L;
|
||||||
|
private boolean state = false;
|
||||||
|
private double value = 0D;
|
||||||
|
|
||||||
|
public long getTime() {
|
||||||
|
return time;
|
||||||
|
}
|
||||||
|
|
||||||
|
public permissionInfo setTime(long time) {
|
||||||
|
this.time = time;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean getState() {
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
|
public permissionInfo setState(boolean state) {
|
||||||
|
this.state = state;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double getValue() {
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public permissionInfo setValue(double value) {
|
||||||
|
this.value = value;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user