mirror of
https://github.com/Zrips/Jobs.git
synced 2024-12-01 23:13:48 +01:00
Trying to follow naming conventions and some cleanup
This commit is contained in:
parent
ab38a64fb4
commit
fc5c5bfd08
@ -27,7 +27,7 @@ import com.gamingmesh.jobs.container.JobsPlayer;
|
||||
public class GuiManager {
|
||||
|
||||
public void openJobsBrowseGUI(final Player player) {
|
||||
ArrayList<Job> jobsList = new ArrayList<>();
|
||||
List<Job> jobsList = new ArrayList<>();
|
||||
for (Job job : Jobs.getJobs()) {
|
||||
if (Jobs.getGCManager().getHideJobsWithoutPermission())
|
||||
if (!Jobs.getCommandManager().hasJobPermission(player, job))
|
||||
@ -102,9 +102,7 @@ public class GuiManager {
|
||||
lore.add(Jobs.getLanguage().getMessage("command.browse.output.bonus", "[amount]", (int) (job.getBonus() * 100)));
|
||||
|
||||
if (job.getDescription().isEmpty()) {
|
||||
for (String desc : job.getFullDescription()) {
|
||||
lore.add(desc);
|
||||
}
|
||||
lore.addAll(job.getFullDescription());
|
||||
} else
|
||||
lore.addAll(Arrays.asList(job.getDescription().split("/n|\\n")));
|
||||
|
||||
@ -209,7 +207,7 @@ public class GuiManager {
|
||||
if (info == null || info.isEmpty())
|
||||
continue;
|
||||
|
||||
ArrayList<String> lore = new ArrayList<>();
|
||||
List<String> lore = new ArrayList<>();
|
||||
lore.add(Jobs.getLanguage().getMessage("command.info.output." + actionType.getName().toLowerCase() + ".info"));
|
||||
|
||||
int y = 1;
|
||||
|
@ -58,8 +58,7 @@ public class HookEconomyTask implements Runnable {
|
||||
if (provider == null)
|
||||
return false;
|
||||
|
||||
Economy economy = provider.getProvider();
|
||||
Jobs.setEconomy(new VaultEconomy(economy));
|
||||
Jobs.setEconomy(new VaultEconomy(provider.getProvider()));
|
||||
Jobs.consoleMsg("&e[" + plugin.getDescription().getName() + "] Successfully linked with Vault.");
|
||||
return true;
|
||||
}
|
||||
|
@ -251,7 +251,7 @@ public class Jobs extends JavaPlugin {
|
||||
|
||||
public static ShopManager getShopManager() {
|
||||
if (shopManager == null) {
|
||||
shopManager = new ShopManager();
|
||||
shopManager = new ShopManager(instance);
|
||||
}
|
||||
return shopManager;
|
||||
}
|
||||
@ -396,7 +396,7 @@ public class Jobs extends JavaPlugin {
|
||||
*/
|
||||
public static Language getLanguage() {
|
||||
if (lManager == null)
|
||||
lManager = new Language(instance);
|
||||
lManager = new Language();
|
||||
return lManager;
|
||||
}
|
||||
|
||||
|
@ -65,7 +65,7 @@ public class PermissionHandler {
|
||||
if (hasWorldPermission(player)) {
|
||||
List<JobProgression> progression = jPlayer.getJobProgression();
|
||||
// calculate new permissions
|
||||
HashMap<String, Boolean> permissions = new HashMap<>();
|
||||
java.util.Map<String, Boolean> permissions = new HashMap<>();
|
||||
|
||||
if (progression.isEmpty()) {
|
||||
Job job = Jobs.getNoneJob();
|
||||
@ -85,17 +85,17 @@ public class PermissionHandler {
|
||||
}
|
||||
}
|
||||
|
||||
for (JobConditions Condition : job.getConditions()) {
|
||||
for (JobConditions condition : job.getConditions()) {
|
||||
boolean ok = true;
|
||||
|
||||
for (String oneReq : Condition.getRequiredPerm()) {
|
||||
for (String oneReq : condition.getRequiredPerm()) {
|
||||
if (!player.hasPermission(oneReq)) {
|
||||
ok = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
for (Entry<String, Integer> oneReq : Condition.getRequiredJobs().entrySet()) {
|
||||
for (Entry<String, Integer> oneReq : condition.getRequiredJobs().entrySet()) {
|
||||
String jobName = oneReq.getKey();
|
||||
int jobLevel = oneReq.getValue();
|
||||
boolean found = false;
|
||||
@ -116,7 +116,7 @@ public class PermissionHandler {
|
||||
if (!ok)
|
||||
continue;
|
||||
|
||||
for (Entry<String, Boolean> one : Condition.getPerformPerm().entrySet()) {
|
||||
for (Entry<String, Boolean> one : condition.getPerformPerm().entrySet()) {
|
||||
String perm = one.getKey();
|
||||
boolean node = one.getValue();
|
||||
if (node)
|
||||
@ -151,17 +151,17 @@ public class PermissionHandler {
|
||||
}
|
||||
}
|
||||
|
||||
for (JobConditions Condition : prog.getJob().getConditions()) {
|
||||
for (JobConditions condition : prog.getJob().getConditions()) {
|
||||
boolean ok = true;
|
||||
|
||||
for (String oneReq : Condition.getRequiredPerm()) {
|
||||
for (String oneReq : condition.getRequiredPerm()) {
|
||||
if (!player.hasPermission(oneReq)) {
|
||||
ok = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
for (Entry<String, Integer> oneReq : Condition.getRequiredJobs().entrySet()) {
|
||||
for (Entry<String, Integer> oneReq : condition.getRequiredJobs().entrySet()) {
|
||||
String jobName = oneReq.getKey();
|
||||
int jobLevel = oneReq.getValue();
|
||||
boolean found = false;
|
||||
@ -183,7 +183,7 @@ public class PermissionHandler {
|
||||
if (!ok)
|
||||
continue;
|
||||
|
||||
for (Entry<String, Boolean> one : Condition.getPerformPerm().entrySet()) {
|
||||
for (Entry<String, Boolean> one : condition.getPerformPerm().entrySet()) {
|
||||
String perm = one.getKey();
|
||||
boolean node = one.getValue();
|
||||
if (node)
|
||||
|
@ -32,7 +32,7 @@ import com.gamingmesh.jobs.container.JobsPlayer;
|
||||
|
||||
public class PermissionManager {
|
||||
|
||||
private final HashMap<String, Integer> permDelay = new HashMap<>();
|
||||
private final Map<String, Integer> permDelay = new HashMap<>();
|
||||
|
||||
private enum prm {
|
||||
// jobs_join_JOBNAME(remade("jobs.join.%JOBNAME%"), 60 * 1000),
|
||||
@ -106,8 +106,8 @@ public class PermissionManager {
|
||||
}
|
||||
}
|
||||
|
||||
private static HashMap<String, Boolean> getAll(Player player) {
|
||||
HashMap<String, Boolean> mine = new HashMap<>();
|
||||
private static Map<String, Boolean> getAll(Player player) {
|
||||
Map<String, Boolean> mine = new HashMap<>();
|
||||
for (PermissionAttachmentInfo permission : player.getEffectivePermissions()) {
|
||||
if (permission.getPermission().startsWith("jobs."))
|
||||
mine.put(permission.getPermission(), permission.getValue());
|
||||
@ -160,7 +160,7 @@ public class PermissionManager {
|
||||
if (!perm.endsWith("."))
|
||||
perm += ".";
|
||||
|
||||
HashMap<String, Boolean> permissions = jPlayer.getPermissionsCache();
|
||||
Map<String, Boolean> permissions = jPlayer.getPermissionsCache();
|
||||
if (force || permissions == null || getDelay(perm) + jPlayer.getLastPermissionUpdate() < System.currentTimeMillis()) {
|
||||
permissions = getAll(jPlayer.getPlayer());
|
||||
jPlayer.setPermissionsCache(permissions);
|
||||
@ -190,7 +190,7 @@ public class PermissionManager {
|
||||
if (jPlayer == null || jPlayer.getPlayer() == null)
|
||||
return false;
|
||||
|
||||
HashMap<String, Boolean> permissions = jPlayer.getPermissionsCache();
|
||||
Map<String, Boolean> permissions = jPlayer.getPermissionsCache();
|
||||
if (permissions == null || getDelay(perm) + jPlayer.getLastPermissionUpdate() < System.currentTimeMillis()) {
|
||||
permissions = getAll(jPlayer.getPlayer());
|
||||
jPlayer.setPermissionsCache(permissions);
|
||||
|
@ -20,13 +20,11 @@ public class ChatFilterRule {
|
||||
return id;
|
||||
}
|
||||
}
|
||||
private String replaceWith;
|
||||
|
||||
private String replaceWith, ruleName, messageToStaff, group;
|
||||
private ChatFilterBlockType blockType;
|
||||
private String ruleName;
|
||||
private List<Pattern> pattern = new ArrayList<>();
|
||||
private String messageToStaff;
|
||||
private List<String> commands = new ArrayList<>();
|
||||
private String group;
|
||||
private final List<Pattern> pattern = new ArrayList<>();
|
||||
private List<String> commands;
|
||||
|
||||
public ChatFilterRule(String ruleName, String group, List<String> list, String replaceWith, ChatFilterBlockType blockType, String messageToStaff, List<String> commands) {
|
||||
this.group = group;
|
||||
|
@ -30,7 +30,9 @@ import com.gamingmesh.jobs.stuff.TimeManage;
|
||||
public class Placeholder {
|
||||
|
||||
private Jobs plugin;
|
||||
Pattern placeholderPatern = Pattern.compile("(%)([^\"^%]*)(%)");
|
||||
|
||||
private final AtomicInteger jobLevel = new AtomicInteger();
|
||||
private final Pattern placeholderPatern = Pattern.compile("(%)([^\"^%]*)(%)");
|
||||
|
||||
public Placeholder(Jobs plugin) {
|
||||
this.plugin = plugin;
|
||||
@ -330,8 +332,6 @@ public class Placeholder {
|
||||
return message;
|
||||
}
|
||||
|
||||
private final AtomicInteger jobLevel = new AtomicInteger();
|
||||
|
||||
private String translateOwnPlaceHolder(Player player, String message) {
|
||||
if (message == null)
|
||||
return null;
|
||||
@ -342,8 +342,7 @@ public class Placeholder {
|
||||
if (!message.contains("%"))
|
||||
break;
|
||||
|
||||
String cmd = match.group(2);
|
||||
JobsPlaceHolders place = JobsPlaceHolders.getByNameExact(cmd);
|
||||
JobsPlaceHolders place = JobsPlaceHolders.getByNameExact(match.group(2));
|
||||
if (place == null)
|
||||
continue;
|
||||
|
||||
|
@ -22,8 +22,10 @@ import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.ConcurrentMap;
|
||||
import java.util.concurrent.ThreadLocalRandom;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
@ -69,16 +71,16 @@ import com.gamingmesh.jobs.stuff.Util;
|
||||
|
||||
public class PlayerManager {
|
||||
|
||||
private final ConcurrentHashMap<String, JobsPlayer> playersCache = new ConcurrentHashMap<>();
|
||||
private final ConcurrentHashMap<UUID, JobsPlayer> playersUUIDCache = new ConcurrentHashMap<>();
|
||||
private final ConcurrentHashMap<String, JobsPlayer> players = new ConcurrentHashMap<>();
|
||||
private final ConcurrentHashMap<UUID, JobsPlayer> playersUUID = new ConcurrentHashMap<>();
|
||||
private final ConcurrentMap<String, JobsPlayer> playersCache = new ConcurrentHashMap<>();
|
||||
private final ConcurrentMap<UUID, JobsPlayer> playersUUIDCache = new ConcurrentHashMap<>();
|
||||
private final ConcurrentMap<String, JobsPlayer> players = new ConcurrentHashMap<>();
|
||||
private final ConcurrentMap<UUID, JobsPlayer> playersUUID = new ConcurrentHashMap<>();
|
||||
|
||||
private final String mobSpawnerMetadata = "jobsMobSpawner";
|
||||
|
||||
private final HashMap<UUID, PlayerInfo> PlayerUUIDMap = new HashMap<>();
|
||||
private final HashMap<Integer, PlayerInfo> PlayerIDMap = new HashMap<>();
|
||||
private final HashMap<String, PlayerInfo> PlayerNameMap = new HashMap<>();
|
||||
private final Map<UUID, PlayerInfo> playerUUIDMap = new HashMap<>();
|
||||
private final Map<Integer, PlayerInfo> playerIdMap = new HashMap<>();
|
||||
private final Map<String, PlayerInfo> playerNameMap = new HashMap<>();
|
||||
|
||||
/**
|
||||
* @deprecated Use {@link JobsPlayer#getPointsData} instead
|
||||
@ -98,13 +100,13 @@ public class PlayerManager {
|
||||
|
||||
@Deprecated
|
||||
public int getMapSize() {
|
||||
return PlayerUUIDMap.size();
|
||||
return playerUUIDMap.size();
|
||||
}
|
||||
|
||||
public void clearMaps() {
|
||||
PlayerUUIDMap.clear();
|
||||
PlayerIDMap.clear();
|
||||
PlayerNameMap.clear();
|
||||
playerUUIDMap.clear();
|
||||
playerIdMap.clear();
|
||||
playerNameMap.clear();
|
||||
}
|
||||
|
||||
public void clearCache() {
|
||||
@ -115,9 +117,9 @@ public class PlayerManager {
|
||||
}
|
||||
|
||||
public void addPlayerToMap(PlayerInfo info) {
|
||||
PlayerUUIDMap.put(info.getUuid(), info);
|
||||
PlayerIDMap.put(info.getID(), info);
|
||||
PlayerNameMap.put(info.getName().toLowerCase(), info);
|
||||
playerUUIDMap.put(info.getUuid(), info);
|
||||
playerIdMap.put(info.getID(), info);
|
||||
playerNameMap.put(info.getName().toLowerCase(), info);
|
||||
}
|
||||
|
||||
public void addPlayerToCache(JobsPlayer jPlayer) {
|
||||
@ -149,16 +151,12 @@ public class PlayerManager {
|
||||
return playersUUID.remove(player.getUniqueId());
|
||||
}
|
||||
|
||||
public ConcurrentHashMap<UUID, JobsPlayer> getPlayersCache() {
|
||||
public ConcurrentMap<UUID, JobsPlayer> getPlayersCache() {
|
||||
return playersUUIDCache;
|
||||
}
|
||||
|
||||
// public ConcurrentHashMap<String, JobsPlayer> getPlayers() {
|
||||
// return this.players;
|
||||
// }
|
||||
|
||||
public HashMap<UUID, PlayerInfo> getPlayersInfoUUIDMap() {
|
||||
return PlayerUUIDMap;
|
||||
public Map<UUID, PlayerInfo> getPlayersInfoUUIDMap() {
|
||||
return playerUUIDMap;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -181,7 +179,7 @@ public class PlayerManager {
|
||||
* @return the identifier
|
||||
*/
|
||||
public int getPlayerId(UUID uuid) {
|
||||
PlayerInfo info = PlayerUUIDMap.get(uuid);
|
||||
PlayerInfo info = playerUUIDMap.get(uuid);
|
||||
return info == null ? -1 : info.getID();
|
||||
}
|
||||
|
||||
@ -193,7 +191,7 @@ public class PlayerManager {
|
||||
* @return {@link PlayerInfo}
|
||||
*/
|
||||
public PlayerInfo getPlayerInfo(String name) {
|
||||
return PlayerNameMap.get(name.toLowerCase());
|
||||
return playerNameMap.get(name.toLowerCase());
|
||||
}
|
||||
|
||||
/**
|
||||
@ -204,7 +202,7 @@ public class PlayerManager {
|
||||
* @return {@link PlayerInfo}
|
||||
*/
|
||||
public PlayerInfo getPlayerInfo(int id) {
|
||||
return PlayerIDMap.get(id);
|
||||
return playerIdMap.get(id);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -215,7 +213,7 @@ public class PlayerManager {
|
||||
* @return {@link PlayerInfo}
|
||||
*/
|
||||
public PlayerInfo getPlayerInfo(UUID uuid) {
|
||||
return PlayerUUIDMap.get(uuid);
|
||||
return playerUUIDMap.get(uuid);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -299,9 +297,7 @@ public class PlayerManager {
|
||||
* 2) Perform save on all players on copied list.
|
||||
* 3) Garbage collect the real list to remove any offline players with saved data
|
||||
*/
|
||||
ArrayList<JobsPlayer> list = new ArrayList<>(players.values());
|
||||
|
||||
for (JobsPlayer jPlayer : list)
|
||||
for (JobsPlayer jPlayer : new ArrayList<>(players.values()))
|
||||
jPlayer.save();
|
||||
|
||||
Iterator<JobsPlayer> iter = players.values().iterator();
|
||||
|
@ -5,22 +5,22 @@ import java.util.List;
|
||||
|
||||
public class SignInfo {
|
||||
|
||||
private final List<jobsSign> AllSigns = new ArrayList<>();
|
||||
private final List<jobsSign> allSigns = new ArrayList<>();
|
||||
|
||||
public void setAllSigns(List<jobsSign> AllSigns) {
|
||||
this.AllSigns.clear();
|
||||
this.AllSigns.addAll(AllSigns == null ? new ArrayList<>() : AllSigns);
|
||||
this.allSigns.clear();
|
||||
this.allSigns.addAll(AllSigns == null ? new ArrayList<>() : AllSigns);
|
||||
}
|
||||
|
||||
public List<jobsSign> GetAllSigns() {
|
||||
return AllSigns;
|
||||
public List<jobsSign> getAllSigns() {
|
||||
return allSigns;
|
||||
}
|
||||
|
||||
public void removeSign(jobsSign sign) {
|
||||
this.AllSigns.remove(sign);
|
||||
this.allSigns.remove(sign);
|
||||
}
|
||||
|
||||
public void addSign(jobsSign sign) {
|
||||
this.AllSigns.add(sign);
|
||||
this.allSigns.add(sign);
|
||||
}
|
||||
}
|
||||
|
@ -310,7 +310,9 @@ public class SignUtil {
|
||||
if (playerName == null)
|
||||
return false;
|
||||
|
||||
timelapse = timelapse < 1 ? 1 : timelapse;
|
||||
if (timelapse < 1) {
|
||||
timelapse = 1;
|
||||
}
|
||||
|
||||
BlockFace directionFacing = null;
|
||||
if (Version.isCurrentEqualOrLower(Version.v1_13_R2)) {
|
||||
|
@ -61,8 +61,7 @@ public class jobsSign {
|
||||
return loc;
|
||||
if (worldName == null)
|
||||
return null;
|
||||
world = Bukkit.getWorld(worldName);
|
||||
if (world == null)
|
||||
if ((world = Bukkit.getWorld(worldName)) == null)
|
||||
return null;
|
||||
return loc = new Location(world, x, y, z);
|
||||
}
|
||||
@ -139,13 +138,13 @@ public class jobsSign {
|
||||
}
|
||||
|
||||
public String getIdentifier() {
|
||||
if (getType() != SignTopType.toplist)
|
||||
if (getType() != SignTopType.toplist)
|
||||
return getType().toString();
|
||||
return jobName != null ? jobName + ":" + getType().toString() : getType().toString();
|
||||
}
|
||||
|
||||
public static String getIdentifier(Job job, SignTopType type) {
|
||||
if (type != SignTopType.toplist)
|
||||
if (type != SignTopType.toplist)
|
||||
return type.toString();
|
||||
return job != null ? job.getName() + ":" + type.toString() : type.toString();
|
||||
}
|
||||
|
@ -183,7 +183,7 @@ public class JobsCommands implements CommandExecutor {
|
||||
|
||||
private Cmd getCmdClass(String cmd) {
|
||||
try {
|
||||
Class<?> nmsClass = Class.forName(PACKAGEPATH + "." + cmd.toLowerCase());
|
||||
Class<?> nmsClass = getClass(cmd);
|
||||
if (Cmd.class.isAssignableFrom(nmsClass)) {
|
||||
return (Cmd) nmsClass.getConstructor().newInstance();
|
||||
}
|
||||
|
@ -1,6 +1,5 @@
|
||||
package com.gamingmesh.jobs.commands.list;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
@ -114,7 +113,7 @@ public class area implements Cmd {
|
||||
|
||||
if (args.length == 1 && args[0].equalsIgnoreCase("list")) {
|
||||
|
||||
HashMap<String, RestrictedArea> areas = Jobs.getRestrictedAreaManager().getRestrictedAres();
|
||||
java.util.Map<String, RestrictedArea> areas = Jobs.getRestrictedAreaManager().getRestrictedAres();
|
||||
if (areas.isEmpty()) {
|
||||
sender.sendMessage(Jobs.getLanguage().getMessage("command.area.output.noAreas"));
|
||||
return true;
|
||||
|
@ -1,7 +1,5 @@
|
||||
package com.gamingmesh.jobs.commands.list;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
@ -20,7 +18,7 @@ public class explored implements Cmd {
|
||||
|
||||
Player player = (Player) sender;
|
||||
|
||||
HashMap<String, ExploreRegion> worlds = Jobs.getExplore().getWorlds();
|
||||
java.util.Map<String, ExploreRegion> worlds = Jobs.getExplore().getWorlds();
|
||||
|
||||
if (!worlds.containsKey(player.getWorld().getName())) {
|
||||
player.sendMessage(Jobs.getLanguage().getMessage("command.explored.error.noexplore"));
|
||||
|
@ -77,7 +77,7 @@ public class give implements Cmd {
|
||||
return true;
|
||||
}
|
||||
|
||||
GiveItem.GiveItemForPlayer(player, jItem.getItemStack(player));
|
||||
GiveItem.giveItemForPlayer(player, jItem.getItemStack(player));
|
||||
break;
|
||||
case limiteditems:
|
||||
if (job == null) {
|
||||
@ -91,7 +91,7 @@ public class give implements Cmd {
|
||||
return true;
|
||||
}
|
||||
|
||||
GiveItem.GiveItemForPlayer(player, jLItem.getItemStack(player));
|
||||
GiveItem.giveItemForPlayer(player, jLItem.getItemStack(player));
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
@ -46,7 +46,7 @@ public class glog implements Cmd {
|
||||
if (jPlayer == null)
|
||||
continue;
|
||||
|
||||
HashMap<String, Log> logList = jPlayer.getLog();
|
||||
Map<String, Log> logList = jPlayer.getLog();
|
||||
if (logList == null || logList.isEmpty())
|
||||
continue;
|
||||
|
||||
|
@ -46,7 +46,7 @@ public class log implements Cmd {
|
||||
return true;
|
||||
}
|
||||
|
||||
HashMap<String, Log> logList = JPlayer.getLog();
|
||||
Map<String, Log> logList = JPlayer.getLog();
|
||||
if (logList == null || logList.isEmpty()) {
|
||||
sender.sendMessage(Jobs.getLanguage().getMessage("command.log.output.bottomline"));
|
||||
sender.sendMessage(Jobs.getLanguage().getMessage("command.log.output.nodata"));
|
||||
@ -73,7 +73,7 @@ public class log implements Cmd {
|
||||
|
||||
sender.sendMessage(Jobs.getLanguage().getMessage("command.log.output.topline", "%playername%", JPlayer.getName()));
|
||||
for (Log one : logList.values()) {
|
||||
HashMap<String, LogAmounts> AmountList = one.getAmountList();
|
||||
Map<String, LogAmounts> AmountList = one.getAmountList();
|
||||
double totalMoney = 0, totalExp = 0, totalPoints = 0;
|
||||
|
||||
for (String oneSorted : unsortMap.keySet()) {
|
||||
|
@ -3,6 +3,7 @@ package com.gamingmesh.jobs.config;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import org.bukkit.Chunk;
|
||||
import org.bukkit.entity.Player;
|
||||
@ -17,7 +18,7 @@ import com.gamingmesh.jobs.stuff.Util;
|
||||
|
||||
public class ExploreManager {
|
||||
|
||||
private final HashMap<String, ExploreRegion> worlds = new HashMap<>();
|
||||
private final Map<String, ExploreRegion> worlds = new HashMap<>();
|
||||
private boolean exploreEnabled = false;
|
||||
private int playerAmount = 1;
|
||||
|
||||
@ -48,7 +49,7 @@ public class ExploreManager {
|
||||
Jobs.consoleMsg("&e[Jobs] Loaded explorer data" + (getSize() != 0 ? " (" + getSize() + ")" : "."));
|
||||
}
|
||||
|
||||
public HashMap<String, ExploreRegion> getWorlds() {
|
||||
public Map<String, ExploreRegion> getWorlds() {
|
||||
return worlds;
|
||||
}
|
||||
|
||||
@ -69,7 +70,6 @@ public class ExploreManager {
|
||||
}
|
||||
|
||||
public ExploreRespond ChunkRespond(int playerId, String world, int x, int z) {
|
||||
|
||||
ExploreRegion eRegions = worlds.get(world);
|
||||
if (eRegions == null) {
|
||||
int RegionX = (int) Math.floor(x / 32D);
|
||||
|
@ -43,8 +43,6 @@ import com.gamingmesh.jobs.resources.jfep.Parser;
|
||||
|
||||
public class GeneralConfigManager {
|
||||
|
||||
public ArrayList<String> keys;
|
||||
|
||||
public List<Integer> BroadcastingLevelUpLevels = new ArrayList<>();
|
||||
public List<String> FwColors = new ArrayList<>(), DisabledWorldsList = new ArrayList<>();
|
||||
/**
|
||||
|
@ -12,6 +12,8 @@ import com.gamingmesh.jobs.stuff.Util;
|
||||
|
||||
public class LanguageManager {
|
||||
|
||||
public final List<String> signKeys = new ArrayList<>();
|
||||
|
||||
private List<String> languages = new ArrayList<>();
|
||||
|
||||
public List<String> getLanguages() {
|
||||
@ -676,7 +678,8 @@ public class LanguageManager {
|
||||
c.get("scoreboard.gtopline", "&2Global top list");
|
||||
c.get("scoreboard.line", "&2%number%. &e%playername% (&6%level%&e)");
|
||||
|
||||
Jobs.getGCManager().keys = new ArrayList<String>(c.getC().getConfigurationSection("signs.secondline").getKeys(false));
|
||||
signKeys.clear();
|
||||
signKeys.addAll(c.getC().getConfigurationSection("signs.secondline").getKeys(false));
|
||||
|
||||
// Write back config
|
||||
c.save();
|
||||
|
@ -156,87 +156,88 @@ public class NameTranslatorManager {
|
||||
}
|
||||
|
||||
public void readFile() {
|
||||
YmlMaker ItemFile = new YmlMaker(Jobs.getFolder(), "TranslatableWords" + File.separator + "Words_"
|
||||
YmlMaker itemFile = new YmlMaker(Jobs.getFolder(), "TranslatableWords" + File.separator + "Words_"
|
||||
+ Jobs.getGCManager().localeString + ".yml");
|
||||
if (!ItemFile.getConfigFile().getName().equalsIgnoreCase("en")) {
|
||||
ItemFile.saveDefaultConfig();
|
||||
if (!itemFile.getConfigFile().getName().equalsIgnoreCase("en")) {
|
||||
itemFile.saveDefaultConfig();
|
||||
}
|
||||
|
||||
if (ItemFile.getConfig().isConfigurationSection("ItemList")) {
|
||||
ConfigurationSection section = ItemFile.getConfig().getConfigurationSection("ItemList");
|
||||
Set<String> keys = section.getKeys(false);
|
||||
if (itemFile.getConfig().isConfigurationSection("ItemList")) {
|
||||
ListOfNames.clear();
|
||||
for (String one : keys) {
|
||||
|
||||
for (String one : itemFile.getConfig().getConfigurationSection("ItemList").getKeys(false)) {
|
||||
String split = one.contains("-") ? one.split("-")[0] : one;
|
||||
String id = split.contains(":") ? split.split(":")[0] : split;
|
||||
String meta = split.contains(":") && split.split(":").length > 1 ? split.split(":")[1] : "";
|
||||
|
||||
String MCName = one.contains("-") && one.split("-").length > 1 ? one.split("-")[1] : one;
|
||||
String Name = ItemFile.getConfig().getString("ItemList." + one);
|
||||
String Name = itemFile.getConfig().getString("ItemList." + one);
|
||||
ListOfNames.put(CMIMaterial.get(one), new NameList(id, meta, Name, MCName));
|
||||
}
|
||||
|
||||
if (ListOfNames.size() > 0)
|
||||
Jobs.consoleMsg("&e[Jobs] Loaded " + ListOfNames.size() + " custom item names!");
|
||||
} else
|
||||
Jobs.consoleMsg("&c[Jobs] The ItemList section not found in " + ItemFile.fileName + " file.");
|
||||
Jobs.consoleMsg("&c[Jobs] The ItemList section not found in " + itemFile.fileName + " file.");
|
||||
|
||||
if (ItemFile.getConfig().isConfigurationSection("EntityList")) {
|
||||
ConfigurationSection section = ItemFile.getConfig().getConfigurationSection("EntityList");
|
||||
Set<String> keys = section.getKeys(false);
|
||||
if (itemFile.getConfig().isConfigurationSection("EntityList")) {
|
||||
ListOfEntities.clear();
|
||||
for (String one : keys) {
|
||||
|
||||
for (String one : itemFile.getConfig().getConfigurationSection("EntityList").getKeys(false)) {
|
||||
String split = one.contains("-") ? one.split("-")[0] : one;
|
||||
String id = split.contains(":") ? split.split(":")[0] : split;
|
||||
String meta = split.contains(":") ? split.split(":")[1] : "";
|
||||
String MCName = one.contains("-") && one.split(":").length > 1 ? one.split("-")[1] : one;
|
||||
String Name = ItemFile.getConfig().getString("EntityList." + one);
|
||||
String MCName = one.contains("-") && one.split("-").length > 1 ? one.split("-")[1] : one;
|
||||
String Name = itemFile.getConfig().getString("EntityList." + one);
|
||||
ListOfEntities.add(new NameList(id, meta, Name, MCName));
|
||||
}
|
||||
|
||||
if (ListOfEntities.size() > 0)
|
||||
Jobs.consoleMsg("&e[Jobs] Loaded " + ListOfEntities.size() + " custom entity names!");
|
||||
} else
|
||||
Jobs.consoleMsg("&c[Jobs] The EntityList section not found in " + ItemFile.fileName + " file.");
|
||||
Jobs.consoleMsg("&c[Jobs] The EntityList section not found in " + itemFile.fileName + " file.");
|
||||
|
||||
if (ItemFile.getConfig().isConfigurationSection("MythicEntityList")) {
|
||||
ConfigurationSection section = ItemFile.getConfig().getConfigurationSection("MythicEntityList");
|
||||
Set<String> keys = section.getKeys(false);
|
||||
if (itemFile.getConfig().isConfigurationSection("MythicEntityList")) {
|
||||
ListOfMMEntities.clear();
|
||||
for (String one : keys) {
|
||||
String Name = ItemFile.getConfig().getString("MythicEntityList." + one);
|
||||
|
||||
for (String one : itemFile.getConfig().getConfigurationSection("MythicEntityList").getKeys(false)) {
|
||||
String Name = itemFile.getConfig().getString("MythicEntityList." + one);
|
||||
ListOfMMEntities.put(one.toLowerCase(), new NameList(null, null, Name, Name));
|
||||
}
|
||||
|
||||
if (ListOfMMEntities.size() > 0)
|
||||
Jobs.consoleMsg("&e[Jobs] Loaded " + ListOfMMEntities.size() + " custom MythicMobs names!");
|
||||
} else
|
||||
Jobs.consoleMsg("&c[Jobs] The MythicEntityList section not found in " + ItemFile.fileName + " file.");
|
||||
Jobs.consoleMsg("&c[Jobs] The MythicEntityList section not found in " + itemFile.fileName + " file.");
|
||||
|
||||
if (ItemFile.getConfig().isConfigurationSection("EnchantList")) {
|
||||
ConfigurationSection section = ItemFile.getConfig().getConfigurationSection("EnchantList");
|
||||
Set<String> keys = section.getKeys(false);
|
||||
if (itemFile.getConfig().isConfigurationSection("EnchantList")) {
|
||||
ListOfEnchants.clear();
|
||||
for (String one : keys) {
|
||||
String name = section.getString(one);
|
||||
ListOfEnchants.put(one.replace("_", "").toLowerCase(), new NameList(one, one, one, name));
|
||||
|
||||
ConfigurationSection section = itemFile.getConfig().getConfigurationSection("EnchantList");
|
||||
for (String one : section.getKeys(false)) {
|
||||
ListOfEnchants.put(one.replace("_", "").toLowerCase(), new NameList(one, one, one, section.getString(one)));
|
||||
}
|
||||
|
||||
if (ListOfEnchants.size() > 0)
|
||||
Jobs.consoleMsg("&e[Jobs] Loaded " + ListOfEnchants.size() + " custom enchant names!");
|
||||
} else
|
||||
Jobs.consoleMsg("&c[Jobs] The EnchantList section not found in " + ItemFile.fileName + " file.");
|
||||
Jobs.consoleMsg("&c[Jobs] The EnchantList section not found in " + itemFile.fileName + " file.");
|
||||
|
||||
if (ItemFile.getConfig().isConfigurationSection("ColorList")) {
|
||||
ConfigurationSection section = ItemFile.getConfig().getConfigurationSection("ColorList");
|
||||
Set<String> keys = section.getKeys(false);
|
||||
if (itemFile.getConfig().isConfigurationSection("ColorList")) {
|
||||
ListOfColors.clear();
|
||||
for (String one : keys) {
|
||||
String id = one.contains("-") ? one.split("-")[0] : one;
|
||||
String MCName = one.split("-")[1];
|
||||
String Name = ItemFile.getConfig().getString("ColorList." + one);
|
||||
|
||||
for (String one : itemFile.getConfig().getConfigurationSection("ColorList").getKeys(false)) {
|
||||
String[] split = one.contains("-") ? one.split("-") : new String[0];
|
||||
String id = split.length != 0 ? split[0] : one;
|
||||
String MCName = split.length > 1 ? split[1] : "";
|
||||
String Name = itemFile.getConfig().getString("ColorList." + one);
|
||||
ListOfColors.add(new NameList(id, "", Name, MCName));
|
||||
}
|
||||
|
||||
if (ListOfColors.size() > 0)
|
||||
Jobs.consoleMsg("&e[Jobs] Loaded " + ListOfColors.size() + " custom color names!");
|
||||
} else
|
||||
Jobs.consoleMsg("&c[Jobs] The ColorList section not found in " + ItemFile.fileName + " file.");
|
||||
Jobs.consoleMsg("&c[Jobs] The ColorList section not found in " + itemFile.fileName + " file.");
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
@ -359,7 +360,7 @@ public class NameTranslatorManager {
|
||||
if (ent == null || !ent.isAlive())
|
||||
continue;
|
||||
|
||||
String n = String.valueOf(ent.getId());
|
||||
String n = Integer.toString(ent.getId());
|
||||
|
||||
String name = null;
|
||||
|
||||
|
@ -5,6 +5,7 @@ import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
@ -21,7 +22,7 @@ import com.gamingmesh.jobs.hooks.HookManager;
|
||||
|
||||
public class RestrictedAreaManager {
|
||||
|
||||
protected final HashMap<String, RestrictedArea> restrictedAreas = new HashMap<>();
|
||||
protected final Map<String, RestrictedArea> restrictedAreas = new HashMap<>();
|
||||
|
||||
private boolean worldGuardArea = false;
|
||||
|
||||
@ -65,7 +66,7 @@ public class RestrictedAreaManager {
|
||||
}
|
||||
}
|
||||
|
||||
public HashMap<String, RestrictedArea> getRestrictedAres() {
|
||||
public Map<String, RestrictedArea> getRestrictedAres() {
|
||||
return restrictedAreas;
|
||||
}
|
||||
|
||||
@ -108,9 +109,8 @@ public class RestrictedAreaManager {
|
||||
if (player == null)
|
||||
return 0D;
|
||||
for (RestrictedArea area : getRestrictedAreasByLoc(player.getLocation())) {
|
||||
if (area.inRestrictedArea(player.getLocation()))
|
||||
return area.getMultiplier();
|
||||
if (area.getWgName() != null && HookManager.getWorldGuardManager() != null && HookManager.getWorldGuardManager().inArea(player.getLocation(), area.getWgName()))
|
||||
if (area.inRestrictedArea(player.getLocation()) || (area.getWgName() != null && HookManager.getWorldGuardManager() != null
|
||||
&& HookManager.getWorldGuardManager().inArea(player.getLocation(), area.getWgName())))
|
||||
return area.getMultiplier();
|
||||
}
|
||||
return 0D;
|
||||
@ -138,38 +138,40 @@ public class RestrictedAreaManager {
|
||||
return areas;
|
||||
}
|
||||
|
||||
private static StringBuilder addHeader(StringBuilder header) {
|
||||
private StringBuilder addHeader(StringBuilder header) {
|
||||
String sep = System.getProperty("line.separator");
|
||||
|
||||
header.append("Restricted area configuration");
|
||||
header.append(System.getProperty("line.separator"))
|
||||
.append(System.getProperty("line.separator"))
|
||||
.append("Configures restricted areas where you cannot get experience or money").append(System.getProperty("line.separator"))
|
||||
.append("when performing a job.").append(System.getProperty("line.separator")).append(System.getProperty("line.separator"))
|
||||
.append("The multiplier changes the experience/money gains in an area.").append(System.getProperty("line.separator"))
|
||||
.append("A multiplier of 0.0 means no bonus, while 0.5 means you will get 50% more the normal income").append(System.getProperty("line.separator"))
|
||||
.append("While -0.5 means that you will get 50% less the normal income").append(System.getProperty("line.separator"))
|
||||
.append(System.getProperty("line.separator"))
|
||||
.append("restrictedareas:").append(System.getProperty("line.separator"))
|
||||
.append(" area1:").append(System.getProperty("line.separator"))
|
||||
.append(" world: 'world'").append(System.getProperty("line.separator"))
|
||||
.append(" multiplier: 0.0").append(System.getProperty("line.separator"))
|
||||
.append(" point1:").append(System.getProperty("line.separator"))
|
||||
.append(" x: 125").append(System.getProperty("line.separator"))
|
||||
.append(" y: 0").append(System.getProperty("line.separator"))
|
||||
.append(" z: 125").append(System.getProperty("line.separator"))
|
||||
.append(" point2:").append(System.getProperty("line.separator"))
|
||||
.append(" x: 150").append(System.getProperty("line.separator"))
|
||||
.append(" y: 100").append(System.getProperty("line.separator"))
|
||||
.append(" z: 150").append(System.getProperty("line.separator"))
|
||||
.append(" area2:").append(System.getProperty("line.separator"))
|
||||
.append(" world: 'world_nether'").append(System.getProperty("line.separator"))
|
||||
.append(" multiplier: 0.0").append(System.getProperty("line.separator"))
|
||||
.append(" point1:").append(System.getProperty("line.separator"))
|
||||
.append(" x: -100").append(System.getProperty("line.separator"))
|
||||
.append(" y: 0").append(System.getProperty("line.separator"))
|
||||
.append(" z: -100").append(System.getProperty("line.separator"))
|
||||
.append(" point2:").append(System.getProperty("line.separator"))
|
||||
.append(" x: -150").append(System.getProperty("line.separator"))
|
||||
.append(" y: 100").append(System.getProperty("line.separator"))
|
||||
header.append(sep)
|
||||
.append(sep)
|
||||
.append("Configures restricted areas where you cannot get experience or money").append(sep)
|
||||
.append("when performing a job.").append(sep).append(sep)
|
||||
.append("The multiplier changes the experience/money gains in an area.").append(sep)
|
||||
.append("A multiplier of 0.0 means no bonus, while 0.5 means you will get 50% more the normal income").append(sep)
|
||||
.append("While -0.5 means that you will get 50% less the normal income").append(sep)
|
||||
.append(sep)
|
||||
.append("restrictedareas:").append(sep)
|
||||
.append(" area1:").append(sep)
|
||||
.append(" world: 'world'").append(sep)
|
||||
.append(" multiplier: 0.0").append(sep)
|
||||
.append(" point1:").append(sep)
|
||||
.append(" x: 125").append(sep)
|
||||
.append(" y: 0").append(sep)
|
||||
.append(" z: 125").append(sep)
|
||||
.append(" point2:").append(sep)
|
||||
.append(" x: 150").append(sep)
|
||||
.append(" y: 100").append(sep)
|
||||
.append(" z: 150").append(sep)
|
||||
.append(" area2:").append(sep)
|
||||
.append(" world: 'world_nether'").append(sep)
|
||||
.append(" multiplier: 0.0").append(sep)
|
||||
.append(" point1:").append(sep)
|
||||
.append(" x: -100").append(sep)
|
||||
.append(" y: 0").append(sep)
|
||||
.append(" z: -100").append(sep)
|
||||
.append(" point2:").append(sep)
|
||||
.append(" x: -150").append(sep)
|
||||
.append(" y: 100").append(sep)
|
||||
.append(" z: -150");
|
||||
return header;
|
||||
}
|
||||
@ -199,9 +201,7 @@ public class RestrictedAreaManager {
|
||||
addNew(new RestrictedArea(areaKey, areaKey, multiplier));
|
||||
worldGuardArea = true;
|
||||
} else {
|
||||
|
||||
String worldName = conf.getString("restrictedareas." + areaKey + ".world");
|
||||
World world = Bukkit.getServer().getWorld(worldName);
|
||||
World world = Bukkit.getServer().getWorld(conf.getString("restrictedareas." + areaKey + ".world", ""));
|
||||
if (world == null)
|
||||
continue;
|
||||
Location point1 = new Location(world, conf.getDouble("restrictedareas." + areaKey + ".point1.x", 0d), conf.getDouble("restrictedareas." + areaKey
|
||||
|
@ -1,6 +1,7 @@
|
||||
package com.gamingmesh.jobs.config;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import com.gamingmesh.jobs.Jobs;
|
||||
@ -11,7 +12,7 @@ import com.gamingmesh.jobs.CMILib.ItemManager;
|
||||
|
||||
public class RestrictedBlockManager {
|
||||
|
||||
public final HashMap<CMIMaterial, Integer> restrictedBlocksTimer = new HashMap<>();
|
||||
public final Map<CMIMaterial, Integer> restrictedBlocksTimer = new HashMap<>();
|
||||
|
||||
/**
|
||||
* Method to load the restricted blocks configuration
|
||||
|
@ -56,14 +56,14 @@ public class ScheduleManager {
|
||||
|
||||
DateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");
|
||||
String currenttime = dateFormat.format(new Date());
|
||||
String CurrentDayName = getWeekDay();
|
||||
String currentDayName = getWeekDay();
|
||||
|
||||
int Current = Integer.parseInt(currenttime.replace(":", ""));
|
||||
int current = Integer.parseInt(currenttime.replace(":", ""));
|
||||
|
||||
for (Schedule one : BOOSTSCHEDULE) {
|
||||
|
||||
int From = one.getFrom();
|
||||
int Until = one.getUntil();
|
||||
int from = one.getFrom();
|
||||
int until = one.getUntil();
|
||||
|
||||
List<String> days = one.getDays();
|
||||
|
||||
@ -72,8 +72,8 @@ public class ScheduleManager {
|
||||
Jobs.getInstance().getComplement().broadcastMessage(one.getMessageToBroadcast());
|
||||
}
|
||||
|
||||
if (((one.isNextDay() && (Current >= From && Current < Until || Current >= one.getNextFrom() && Current < one.getNextUntil()) && !one
|
||||
.isStarted()) || !one.isNextDay() && (Current >= From && Current < Until)) && (days.contains(CurrentDayName) || days.contains("all")) && !one
|
||||
if (((one.isNextDay() && (current >= from && current < until || current >= one.getNextFrom() && current < one.getNextUntil()) && !one
|
||||
.isStarted()) || !one.isNextDay() && (current >= from && current < until)) && (days.contains(currentDayName) || days.contains("all")) && !one
|
||||
.isStarted()) {
|
||||
|
||||
JobsScheduleStartEvent event = new JobsScheduleStartEvent(one);
|
||||
@ -97,8 +97,8 @@ public class ScheduleManager {
|
||||
one.setStarted(true);
|
||||
one.setStoped(false);
|
||||
break;
|
||||
} else if (((one.isNextDay() && Current > one.getNextUntil() && Current < one.getFrom() && !one.isStoped()) || !one.isNextDay() && Current > Until
|
||||
&& ((days.contains(CurrentDayName)) || days.contains("all"))) && !one.isStoped()) {
|
||||
} else if (((one.isNextDay() && current > one.getNextUntil() && current < one.getFrom() && !one.isStoped()) || !one.isNextDay() && current > until
|
||||
&& ((days.contains(currentDayName)) || days.contains("all"))) && !one.isStoped()) {
|
||||
JobsScheduleStopEvent event = new JobsScheduleStopEvent(one);
|
||||
Bukkit.getPluginManager().callEvent(event);
|
||||
if (event.isCancelled()) {
|
||||
@ -124,8 +124,7 @@ public class ScheduleManager {
|
||||
}
|
||||
|
||||
public static String getWeekDay() {
|
||||
int dayOfWeek = Calendar.getInstance().get(Calendar.DAY_OF_WEEK);
|
||||
switch (dayOfWeek) {
|
||||
switch (Calendar.getInstance().get(Calendar.DAY_OF_WEEK)) {
|
||||
case 2:
|
||||
return "monday";
|
||||
case 3:
|
||||
@ -164,7 +163,7 @@ public class ScheduleManager {
|
||||
if (!conf.isConfigurationSection("Boost"))
|
||||
return;
|
||||
|
||||
ArrayList<String> sections = new ArrayList<>(conf.getConfigurationSection("Boost").getKeys(false));
|
||||
List<String> sections = new ArrayList<>(conf.getConfigurationSection("Boost").getKeys(false));
|
||||
|
||||
for (String oneSection : sections) {
|
||||
ConfigurationSection path = conf.getConfigurationSection("Boost." + oneSection);
|
||||
@ -178,8 +177,8 @@ public class ScheduleManager {
|
||||
sched.setName(oneSection);
|
||||
sched.setDays(path.getStringList("Days"));
|
||||
sched.setJobs(path.getStringList("Jobs"));
|
||||
sched.setFrom(Integer.valueOf(path.getString("From").replace(":", "")));
|
||||
sched.setUntil(Integer.valueOf(path.getString("Until").replace(":", "")));
|
||||
sched.setFrom(Integer.parseInt(path.getString("From").replace(":", "")));
|
||||
sched.setUntil(Integer.parseInt(path.getString("Until").replace(":", "")));
|
||||
|
||||
if (path.isList("MessageOnStart"))
|
||||
sched.setMessageOnStart(path.getStringList("MessageOnStart"), path.getString("From"), path.getString("Until"));
|
||||
|
@ -43,8 +43,14 @@ import com.gamingmesh.jobs.stuff.GiveItem;
|
||||
@SuppressWarnings("deprecation")
|
||||
public class ShopManager {
|
||||
|
||||
private Jobs plugin;
|
||||
|
||||
private final List<ShopItem> list = new ArrayList<>();
|
||||
|
||||
public ShopManager(Jobs plugin) {
|
||||
this.plugin = plugin;
|
||||
}
|
||||
|
||||
public List<ShopItem> getShopItemList() {
|
||||
return list;
|
||||
}
|
||||
@ -117,7 +123,7 @@ public class ShopManager {
|
||||
|
||||
for (int i = 0; i < ls.size(); i++) {
|
||||
ShopItem item = ls.get(i);
|
||||
ArrayList<String> lore = new ArrayList<>();
|
||||
List<String> lore = new ArrayList<>();
|
||||
CMIMaterial mat = CMIMaterial.get(item.getIconMaterial());
|
||||
|
||||
if (item.isHideWithoutPerm()) {
|
||||
@ -147,7 +153,7 @@ public class ShopManager {
|
||||
continue;
|
||||
|
||||
if (item.getIconName() != null)
|
||||
meta.setDisplayName(item.getIconName());
|
||||
plugin.getComplement().setDisplayName(meta, item.getIconName());
|
||||
|
||||
lore.addAll(item.getIconLore());
|
||||
|
||||
@ -185,7 +191,7 @@ public class ShopManager {
|
||||
? Jobs.getLanguage().getMessage("command.shop.info.reqTotalLevelColor") : "") + item.getRequiredTotalLevels()));
|
||||
}
|
||||
|
||||
meta.setLore(lore);
|
||||
plugin.getComplement().setLore(meta, lore);
|
||||
|
||||
if (item.getCustomHead() != null) {
|
||||
guiItem = CMIMaterial.PLAYER_HEAD.newItemStack();
|
||||
@ -194,9 +200,8 @@ public class ShopManager {
|
||||
if (skullMeta == null)
|
||||
continue;
|
||||
|
||||
// Fix skull meta
|
||||
skullMeta.setDisplayName(item.getIconName());
|
||||
skullMeta.setLore(lore);
|
||||
plugin.getComplement().setDisplayName(skullMeta, item.getIconName());
|
||||
plugin.getComplement().setLore(skullMeta, lore);
|
||||
|
||||
if (item.isHeadOwner()) {
|
||||
Jobs.getNms().setSkullOwner(skullMeta, jPlayer.getPlayer());
|
||||
@ -253,7 +258,7 @@ public class ShopManager {
|
||||
}
|
||||
|
||||
for (JobItems one : item.getitems()) {
|
||||
GiveItem.GiveItemForPlayer(player, one.getItemStack(player));
|
||||
GiveItem.giveItemForPlayer(player, one.getItemStack(player));
|
||||
}
|
||||
|
||||
pointsInfo.takePoints(item.getPrice());
|
||||
@ -271,7 +276,7 @@ public class ShopManager {
|
||||
|
||||
int prevSlot = getPrevButtonSlot(guiSize.getFields(), page);
|
||||
if (prevSlot != -1 && page > 1) {
|
||||
meta.setDisplayName(Jobs.getLanguage().getMessage("command.help.output.prevPage"));
|
||||
plugin.getComplement().setDisplayName(meta, Jobs.getLanguage().getMessage("command.help.output.prevPage"));
|
||||
item.setItemMeta(meta);
|
||||
|
||||
gui.addButton(new CMIGuiButton(prevSlot, item) {
|
||||
@ -284,7 +289,7 @@ public class ShopManager {
|
||||
|
||||
int nextSlot = getNextButtonSlot(guiSize.getFields(), page);
|
||||
if (nextSlot != -1 && !getItemsByPage(page + 1).isEmpty()) {
|
||||
meta.setDisplayName(Jobs.getLanguage().getMessage("command.help.output.nextPage"));
|
||||
plugin.getComplement().setDisplayName(meta, Jobs.getLanguage().getMessage("command.help.output.nextPage"));
|
||||
item.setItemMeta(meta);
|
||||
gui.addButton(new CMIGuiButton(nextSlot, item) {
|
||||
@Override
|
||||
@ -309,13 +314,14 @@ public class ShopManager {
|
||||
return;
|
||||
|
||||
ConfigurationSection confCategory = f.getConfigurationSection("Items");
|
||||
if (confCategory.getKeys(false).isEmpty()) {
|
||||
java.util.Set<String> categories = confCategory.getKeys(false);
|
||||
if (categories.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
|
||||
int i = 0;
|
||||
int y = 1;
|
||||
for (String category : new ArrayList<>(confCategory.getKeys(false))) {
|
||||
for (String category : new java.util.HashSet<>(categories)) {
|
||||
ConfigurationSection nameSection = confCategory.getConfigurationSection(category);
|
||||
if (nameSection == null) {
|
||||
continue;
|
||||
|
@ -19,8 +19,8 @@
|
||||
package com.gamingmesh.jobs.container;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
import org.bukkit.enchantments.Enchantment;
|
||||
@ -42,10 +42,10 @@ public class JobLimitedItems {
|
||||
private int amount;
|
||||
private String name;
|
||||
private List<String> lore;
|
||||
private HashMap<Enchantment, Integer> enchants;
|
||||
private Map<Enchantment, Integer> enchants;
|
||||
private int level;
|
||||
|
||||
public JobLimitedItems(String node, int id, int data, int amount, String name, List<String> lore, HashMap<Enchantment, Integer> enchants, int level) {
|
||||
public JobLimitedItems(String node, int id, int data, int amount, String name, List<String> lore, Map<Enchantment, Integer> enchants, int level) {
|
||||
this.node = node;
|
||||
this.id = id;
|
||||
this.data = data;
|
||||
@ -96,7 +96,7 @@ public class JobLimitedItems {
|
||||
public int getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
|
||||
public CMIMaterial getType(){
|
||||
return mat;
|
||||
}
|
||||
@ -109,7 +109,7 @@ public class JobLimitedItems {
|
||||
return lore;
|
||||
}
|
||||
|
||||
public HashMap<Enchantment, Integer> getenchants() {
|
||||
public Map<Enchantment, Integer> getEnchants() {
|
||||
return enchants;
|
||||
}
|
||||
|
||||
|
@ -24,6 +24,7 @@ import java.util.Collections;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.UUID;
|
||||
@ -49,14 +50,14 @@ public class JobsPlayer {
|
||||
public UUID playerUUID;
|
||||
|
||||
// progression of the player in each job
|
||||
public final ArrayList<JobProgression> progression = new ArrayList<>();
|
||||
public final List<JobProgression> progression = new ArrayList<>();
|
||||
|
||||
public int maxJobsEquation = 0;
|
||||
|
||||
private ArchivedJobs archivedJobs = new ArchivedJobs();
|
||||
private PaymentData paymentLimits;
|
||||
|
||||
private final HashMap<String, ArrayList<BoostCounter>> boostCounter = new HashMap<>();
|
||||
private final Map<String, List<BoostCounter>> boostCounter = new HashMap<>();
|
||||
|
||||
// display honorific
|
||||
private String honorific;
|
||||
@ -65,7 +66,7 @@ public class JobsPlayer {
|
||||
// player online status
|
||||
private volatile boolean isOnline = false;
|
||||
|
||||
private final HashMap<CurrencyType, Integer> limits = new HashMap<>();
|
||||
private final Map<CurrencyType, Integer> limits = new HashMap<>();
|
||||
|
||||
private int userid = -1;
|
||||
|
||||
@ -74,18 +75,18 @@ public class JobsPlayer {
|
||||
// save lock
|
||||
// public final Object saveLock = new Object();
|
||||
|
||||
private HashMap<String, Log> logList = new HashMap<>();
|
||||
private Map<String, Log> logList = new HashMap<>();
|
||||
|
||||
private Long seen = System.currentTimeMillis();
|
||||
|
||||
private HashMap<String, Boolean> permissionsCache;
|
||||
private Map<String, Boolean> permissionsCache;
|
||||
private Long lastPermissionUpdate = -1L;
|
||||
|
||||
private final HashMap<String, HashMap<String, QuestProgression>> qProgression = new HashMap<>();
|
||||
private final Map<String, Map<String, QuestProgression>> qProgression = new HashMap<>();
|
||||
private int doneQuests = 0;
|
||||
private int skippedQuests = 0;
|
||||
|
||||
private final HashMap<UUID, HashMap<Job, Long>> leftTimes = new HashMap<>();
|
||||
private final Map<UUID, Map<Job, Long>> leftTimes = new HashMap<>();
|
||||
|
||||
private PlayerPoints pointsData;
|
||||
|
||||
@ -272,7 +273,7 @@ public class JobsPlayer {
|
||||
}
|
||||
}
|
||||
|
||||
public HashMap<String, Log> getLog() {
|
||||
public Map<String, Log> getLog() {
|
||||
return logList;
|
||||
}
|
||||
|
||||
@ -316,60 +317,60 @@ public class JobsPlayer {
|
||||
* @return amount of boost
|
||||
*/
|
||||
public double getBoost(String JobName, CurrencyType type, boolean force) {
|
||||
double Boost = 0D;
|
||||
double boost = 0D;
|
||||
|
||||
if (!isOnline() || type == null)
|
||||
return Boost;
|
||||
return boost;
|
||||
|
||||
long time = System.currentTimeMillis();
|
||||
|
||||
if (boostCounter.containsKey(JobName)) {
|
||||
ArrayList<BoostCounter> counterList = boostCounter.get(JobName);
|
||||
List<BoostCounter> counterList = boostCounter.get(JobName);
|
||||
for (BoostCounter counter : counterList) {
|
||||
if (counter.getType() != type)
|
||||
continue;
|
||||
|
||||
if (force || time - counter.getTime() > 1000 * 60) {
|
||||
Boost = getPlayerBoostNew(JobName, type);
|
||||
counter.setBoost(Boost);
|
||||
boost = getPlayerBoostNew(JobName, type);
|
||||
counter.setBoost(boost);
|
||||
counter.setTime(time);
|
||||
return Boost;
|
||||
return boost;
|
||||
}
|
||||
|
||||
return counter.getBoost();
|
||||
}
|
||||
|
||||
Boost = getPlayerBoostNew(JobName, type);
|
||||
counterList.add(new BoostCounter(type, Boost, time));
|
||||
return Boost;
|
||||
boost = getPlayerBoostNew(JobName, type);
|
||||
counterList.add(new BoostCounter(type, boost, time));
|
||||
return boost;
|
||||
}
|
||||
|
||||
Boost = getPlayerBoostNew(JobName, type);
|
||||
boost = getPlayerBoostNew(JobName, type);
|
||||
|
||||
ArrayList<BoostCounter> counterList = new ArrayList<>();
|
||||
counterList.add(new BoostCounter(type, Boost, time));
|
||||
List<BoostCounter> counterList = new ArrayList<>();
|
||||
counterList.add(new BoostCounter(type, boost, time));
|
||||
|
||||
boostCounter.put(JobName, counterList);
|
||||
return Boost;
|
||||
return boost;
|
||||
}
|
||||
|
||||
private Double getPlayerBoostNew(String JobName, CurrencyType type) {
|
||||
Double v1 = Jobs.getPermissionManager().getMaxPermission(this, "jobs.boost." + JobName + "." + type.getName(), true, false);
|
||||
Double Boost = v1;
|
||||
private Double getPlayerBoostNew(String jobName, CurrencyType type) {
|
||||
Double v1 = Jobs.getPermissionManager().getMaxPermission(this, "jobs.boost." + jobName + "." + type.getName(), true, false);
|
||||
Double boost = v1;
|
||||
|
||||
v1 = Jobs.getPermissionManager().getMaxPermission(this, "jobs.boost." + JobName + ".all", false, false);
|
||||
if (v1 != 0d && (v1 > Boost || v1 < Boost))
|
||||
Boost = v1;
|
||||
v1 = Jobs.getPermissionManager().getMaxPermission(this, "jobs.boost." + jobName + ".all", false, false);
|
||||
if (v1 != 0d && (v1 > boost || v1 < boost))
|
||||
boost = v1;
|
||||
|
||||
v1 = Jobs.getPermissionManager().getMaxPermission(this, "jobs.boost.all.all", false, false);
|
||||
if (v1 != 0d && (v1 > Boost || v1 < Boost))
|
||||
Boost = v1;
|
||||
if (v1 != 0d && (v1 > boost || v1 < boost))
|
||||
boost = v1;
|
||||
|
||||
v1 = Jobs.getPermissionManager().getMaxPermission(this, "jobs.boost.all." + type.getName(), false, false);
|
||||
if (v1 != 0d && (v1 > Boost || v1 < Boost))
|
||||
Boost = v1;
|
||||
if (v1 != 0d && (v1 > boost || v1 < boost))
|
||||
boost = v1;
|
||||
|
||||
return Boost;
|
||||
return boost;
|
||||
}
|
||||
|
||||
public int getPlayerMaxQuest(String jobName) {
|
||||
@ -395,9 +396,9 @@ public class JobsPlayer {
|
||||
* Reloads limit for this player.
|
||||
*/
|
||||
public void reload(CurrencyType type) {
|
||||
int TotalLevel = getTotalLevels();
|
||||
int totalLevel = getTotalLevels();
|
||||
Parser eq = Jobs.getGCManager().getLimit(type).getMaxEquation();
|
||||
eq.setVariable("totallevel", TotalLevel);
|
||||
eq.setVariable("totallevel", totalLevel);
|
||||
maxJobsEquation = Jobs.getPlayerManager().getMaxJobs(this);
|
||||
limits.put(type, (int) eq.getValue());
|
||||
setSaved(false);
|
||||
@ -530,13 +531,10 @@ public class JobsPlayer {
|
||||
if (level < 1)
|
||||
level = 1;
|
||||
|
||||
Job job = jp.getJob();
|
||||
int maxLevel = getMaxJobLevelAllowed(job);
|
||||
if (jp.getLevel() == maxLevel) {
|
||||
if (Jobs.getGCManager().fixAtMaxLevel)
|
||||
level = jp.getLevel();
|
||||
else {
|
||||
level = jp.getLevel();
|
||||
if (jp.getLevel() == getMaxJobLevelAllowed(jp.getJob())) {
|
||||
level = jp.getLevel();
|
||||
|
||||
if (!Jobs.getGCManager().fixAtMaxLevel) {
|
||||
level = (int) (level - (level * (Jobs.getGCManager().levelLossPercentageFromMax / 100.0)));
|
||||
if (level < 1)
|
||||
level = 1;
|
||||
@ -556,9 +554,7 @@ public class JobsPlayer {
|
||||
exp = max.doubleValue();
|
||||
|
||||
if (exp > 0) {
|
||||
Job job = jp.getJob();
|
||||
int maxLevel = getMaxJobLevelAllowed(job);
|
||||
if (jp.getLevel() == maxLevel) {
|
||||
if (jp.getLevel() == getMaxJobLevelAllowed(jp.getJob())) {
|
||||
if (!Jobs.getGCManager().fixAtMaxLevel)
|
||||
exp = (exp - (exp * (Jobs.getGCManager().levelLossPercentageFromMax / 100.0)));
|
||||
} else
|
||||
@ -753,8 +749,7 @@ public class JobsPlayer {
|
||||
}
|
||||
|
||||
private static void processesChat(DisplayMethod method, StringBuilder builder, int level, Title title, Job job) {
|
||||
|
||||
String levelS = level < 0 ? "" : String.valueOf(level);
|
||||
String levelS = level < 0 ? "" : Integer.toString(level);
|
||||
switch (method) {
|
||||
case FULL:
|
||||
processesTitle(builder, title, levelS);
|
||||
@ -893,11 +888,11 @@ public class JobsPlayer {
|
||||
this.seen = seen;
|
||||
}
|
||||
|
||||
public HashMap<String, Boolean> getPermissionsCache() {
|
||||
public Map<String, Boolean> getPermissionsCache() {
|
||||
return permissionsCache;
|
||||
}
|
||||
|
||||
public void setPermissionsCache(HashMap<String, Boolean> permissionsCache) {
|
||||
public void setPermissionsCache(Map<String, Boolean> permissionsCache) {
|
||||
this.permissionsCache = permissionsCache;
|
||||
}
|
||||
|
||||
@ -952,7 +947,7 @@ public class JobsPlayer {
|
||||
}
|
||||
|
||||
public boolean inDailyQuest(Job job, String questName) {
|
||||
HashMap<String, QuestProgression> qpl = qProgression.get(job.getName());
|
||||
Map<String, QuestProgression> qpl = qProgression.get(job.getName());
|
||||
if (qpl == null)
|
||||
return false;
|
||||
|
||||
@ -969,7 +964,7 @@ public class JobsPlayer {
|
||||
if (!isInJob(job))
|
||||
return ls;
|
||||
|
||||
HashMap<String, QuestProgression> qpl = qProgression.get(job.getName());
|
||||
Map<String, QuestProgression> qpl = qProgression.get(job.getName());
|
||||
if (qpl == null)
|
||||
return ls;
|
||||
|
||||
@ -977,7 +972,7 @@ public class JobsPlayer {
|
||||
if (prog.isEnded() || prog.getQuest() == null)
|
||||
continue;
|
||||
|
||||
for (HashMap<String, QuestObjective> oneAction : prog.getQuest().getObjectives().values()) {
|
||||
for (Map<String, QuestObjective> oneAction : prog.getQuest().getObjectives().values()) {
|
||||
for (QuestObjective oneObjective : oneAction.values()) {
|
||||
if (type == null || type.name().equals(oneObjective.getAction().name())) {
|
||||
ls.add(prog.getQuest().getConfigName().toLowerCase());
|
||||
@ -1002,9 +997,7 @@ public class JobsPlayer {
|
||||
|
||||
Job job = oneQ.getQuest().getJob();
|
||||
getNewQuests(job);
|
||||
if (qProgression.containsKey(job.getName())) {
|
||||
qProgression.remove(job.getName());
|
||||
}
|
||||
qProgression.remove(job.getName());
|
||||
}
|
||||
}
|
||||
|
||||
@ -1017,11 +1010,11 @@ public class JobsPlayer {
|
||||
}
|
||||
|
||||
public void getNewQuests(Job job) {
|
||||
java.util.Optional.ofNullable(qProgression.get(job.getName())).ifPresent(HashMap::clear);
|
||||
java.util.Optional.ofNullable(qProgression.get(job.getName())).ifPresent(Map::clear);
|
||||
}
|
||||
|
||||
public void replaceQuest(Quest quest) {
|
||||
HashMap<String, QuestProgression> orprog = qProgression.get(quest.getJob().getName());
|
||||
Map<String, QuestProgression> orProg = qProgression.get(quest.getJob().getName());
|
||||
|
||||
Quest q = quest.getJob().getNextQuest(getQuestNameList(quest.getJob(), null), getJobProgression(quest.getJob()).getLevel());
|
||||
if (q == null) {
|
||||
@ -1037,7 +1030,7 @@ public class JobsPlayer {
|
||||
if (q == null)
|
||||
return;
|
||||
|
||||
HashMap<String, QuestProgression> prog = qProgression.get(q.getJob().getName());
|
||||
Map<String, QuestProgression> prog = qProgression.get(q.getJob().getName());
|
||||
if (prog == null) {
|
||||
prog = new HashMap<>();
|
||||
qProgression.put(q.getJob().getName(), prog);
|
||||
@ -1052,9 +1045,10 @@ public class JobsPlayer {
|
||||
if (q.getJob() != quest.getJob() && prog.size() >= q.getJob().getMaxDailyQuests())
|
||||
return;
|
||||
|
||||
if (orprog != null) {
|
||||
orprog.remove(quest.getConfigName().toLowerCase());
|
||||
if (orProg != null) {
|
||||
orProg.remove(quest.getConfigName().toLowerCase());
|
||||
}
|
||||
|
||||
prog.put(q.getConfigName().toLowerCase(), new QuestProgression(q));
|
||||
skippedQuests++;
|
||||
}
|
||||
@ -1075,12 +1069,13 @@ public class JobsPlayer {
|
||||
if (!isInJob(job))
|
||||
return new ArrayList<>();
|
||||
|
||||
HashMap<String, QuestProgression> g = new HashMap<>();
|
||||
Map<String, QuestProgression> g = new HashMap<>();
|
||||
|
||||
if (qProgression.get(job.getName()) != null)
|
||||
g = new HashMap<>(qProgression.get(job.getName()));
|
||||
Map<String, QuestProgression> qProg = qProgression.get(job.getName());
|
||||
if (qProg != null)
|
||||
g = new HashMap<>(qProg);
|
||||
|
||||
HashMap<String, QuestProgression> tmp = new HashMap<>();
|
||||
Map<String, QuestProgression> tmp = new HashMap<>();
|
||||
for (Entry<String, QuestProgression> one : (new HashMap<String, QuestProgression>(g)).entrySet()) {
|
||||
QuestProgression qp = one.getValue();
|
||||
|
||||
@ -1134,7 +1129,7 @@ public class JobsPlayer {
|
||||
continue;
|
||||
}
|
||||
|
||||
HashMap<String, QuestObjective> old = q.getObjectives().get(type);
|
||||
Map<String, QuestObjective> old = q.getObjectives().get(type);
|
||||
if (old != null)
|
||||
for (QuestObjective one : old.values()) {
|
||||
if (type.name().equals(one.getAction().name())) {
|
||||
@ -1160,7 +1155,7 @@ public class JobsPlayer {
|
||||
|
||||
prog += q.getJob().getName() + ":" + q.getConfigName() + ":" + one.getValidUntil() + ":";
|
||||
|
||||
for (HashMap<String, QuestObjective> oneA : q.getObjectives().values()) {
|
||||
for (Map<String, QuestObjective> oneA : q.getObjectives().values()) {
|
||||
for (Entry<String, QuestObjective> oneO : oneA.entrySet()) {
|
||||
prog += oneO.getValue().getAction().toString() + ";" + oneO.getKey() + ";" + one.getAmountDone(oneO.getValue()) + ":;:";
|
||||
}
|
||||
@ -1176,8 +1171,7 @@ public class JobsPlayer {
|
||||
if (qprog == null || qprog.isEmpty())
|
||||
return;
|
||||
|
||||
String[] byJob = qprog.split(";:;");
|
||||
for (String one : byJob) {
|
||||
for (String one : qprog.split(";:;")) {
|
||||
try {
|
||||
String jname = one.split(":")[0];
|
||||
Job job = Jobs.getJob(jname);
|
||||
@ -1185,17 +1179,19 @@ public class JobsPlayer {
|
||||
continue;
|
||||
|
||||
one = one.substring(jname.length() + 1);
|
||||
|
||||
String qname = one.split(":")[0];
|
||||
Quest quest = job.getQuest(qname);
|
||||
if (quest == null)
|
||||
continue;
|
||||
|
||||
one = one.substring(qname.length() + 1);
|
||||
|
||||
String longS = one.split(":")[0];
|
||||
Long validUntil = Long.parseLong(longS);
|
||||
long validUntil = Long.parseLong(longS);
|
||||
one = one.substring(longS.length() + 1);
|
||||
|
||||
HashMap<String, QuestProgression> currentProgression = qProgression.get(job.getName());
|
||||
Map<String, QuestProgression> currentProgression = qProgression.get(job.getName());
|
||||
|
||||
if (currentProgression == null) {
|
||||
currentProgression = new HashMap<>();
|
||||
@ -1218,7 +1214,7 @@ public class JobsPlayer {
|
||||
oneA = oneA.substring(prog.length() + 1);
|
||||
|
||||
String target = oneA.split(";")[0];
|
||||
HashMap<String, QuestObjective> old = quest.getObjectives().get(action);
|
||||
Map<String, QuestObjective> old = quest.getObjectives().get(action);
|
||||
if (old == null)
|
||||
continue;
|
||||
|
||||
@ -1227,15 +1223,13 @@ public class JobsPlayer {
|
||||
continue;
|
||||
|
||||
oneA = oneA.substring(target.length() + 1);
|
||||
String doneS = oneA.split(";")[0];
|
||||
int done = Integer.parseInt(doneS);
|
||||
qp.setAmountDone(obj, done);
|
||||
|
||||
qp.setAmountDone(obj, Integer.parseInt(oneA.split(";")[0]));
|
||||
}
|
||||
|
||||
if (qp.isCompleted())
|
||||
qp.setGivenReward(true);
|
||||
|
||||
} catch (Throwable e) {
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
@ -1329,7 +1323,7 @@ public class JobsPlayer {
|
||||
if (maxV == 0D && type == BlockTypes.SMOKER)
|
||||
maxV = (double) Jobs.getGCManager().SmokersMaxDefault;
|
||||
|
||||
if (maxV == 0 && type == BlockTypes.BREWING_STAND)
|
||||
if (maxV == 0D && type == BlockTypes.BREWING_STAND)
|
||||
maxV = (double) Jobs.getGCManager().getBrewingStandsMaxDefault();
|
||||
|
||||
return maxV.intValue();
|
||||
@ -1343,7 +1337,7 @@ public class JobsPlayer {
|
||||
this.skippedQuests = skippedQuests;
|
||||
}
|
||||
|
||||
public HashMap<UUID, HashMap<Job, Long>> getLeftTimes() {
|
||||
public Map<UUID, Map<Job, Long>> getLeftTimes() {
|
||||
return leftTimes;
|
||||
}
|
||||
|
||||
@ -1352,7 +1346,7 @@ public class JobsPlayer {
|
||||
if (!leftTimes.containsKey(uuid))
|
||||
return false;
|
||||
|
||||
HashMap<Job, Long> map = leftTimes.get(uuid);
|
||||
Map<Job, Long> map = leftTimes.get(uuid);
|
||||
return map.containsKey(job) && map.get(job).longValue() < System.currentTimeMillis();
|
||||
}
|
||||
|
||||
@ -1371,7 +1365,7 @@ public class JobsPlayer {
|
||||
|
||||
cal.set(Calendar.HOUR_OF_DAY, cal.get(Calendar.HOUR_OF_DAY) + hour);
|
||||
|
||||
HashMap<Job, Long> map = new HashMap<>();
|
||||
Map<Job, Long> map = new HashMap<>();
|
||||
map.put(job, cal.getTimeInMillis());
|
||||
leftTimes.put(uuid, map);
|
||||
}
|
||||
|
@ -1,13 +1,15 @@
|
||||
package com.gamingmesh.jobs.container;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import com.gamingmesh.jobs.stuff.TimeManage;
|
||||
|
||||
public final class Log {
|
||||
|
||||
private String action;
|
||||
private int day;
|
||||
private HashMap<String, LogAmounts> amountMap = new HashMap<>();
|
||||
private Map<String, LogAmounts> amountMap = new HashMap<>();
|
||||
|
||||
public Log(String action) {
|
||||
this.action = action;
|
||||
@ -18,19 +20,19 @@ public final class Log {
|
||||
return action;
|
||||
}
|
||||
|
||||
public void add(String item, HashMap<CurrencyType, Double> amounts) {
|
||||
LogAmounts LAmount = amountMap.getOrDefault(item, new LogAmounts(item));
|
||||
LAmount.addCount();
|
||||
LAmount.add(amounts);
|
||||
this.amountMap.put(item, LAmount);
|
||||
public void add(String item, Map<CurrencyType, Double> amounts) {
|
||||
LogAmounts logAmount = amountMap.getOrDefault(item, new LogAmounts(item));
|
||||
logAmount.addCount();
|
||||
logAmount.add(amounts);
|
||||
this.amountMap.put(item, logAmount);
|
||||
}
|
||||
|
||||
public void add(String item, int count, HashMap<CurrencyType, Double> amounts) {
|
||||
LogAmounts LAmount = amountMap.getOrDefault(item, new LogAmounts(item));
|
||||
LAmount.setCount(count);
|
||||
LAmount.add(amounts);
|
||||
LAmount.setNewEntry(false);
|
||||
this.amountMap.put(item, LAmount);
|
||||
public void add(String item, int count, Map<CurrencyType, Double> amounts) {
|
||||
LogAmounts logAmount = amountMap.getOrDefault(item, new LogAmounts(item));
|
||||
logAmount.setCount(count);
|
||||
logAmount.add(amounts);
|
||||
logAmount.setNewEntry(false);
|
||||
this.amountMap.put(item, logAmount);
|
||||
}
|
||||
|
||||
public void setDate() {
|
||||
@ -41,19 +43,15 @@ public final class Log {
|
||||
return day;
|
||||
}
|
||||
|
||||
public HashMap<String, LogAmounts> getAmountList() {
|
||||
public Map<String, LogAmounts> getAmountList() {
|
||||
return amountMap;
|
||||
}
|
||||
|
||||
public int getCount(String item) {
|
||||
if (this.amountMap.containsKey(item))
|
||||
return this.amountMap.get(item).getCount();
|
||||
return 0;
|
||||
return amountMap.containsKey(item) ? amountMap.get(item).getCount() : 0;
|
||||
}
|
||||
|
||||
public double get(String item, CurrencyType type) {
|
||||
if (this.amountMap.containsKey(item))
|
||||
return this.amountMap.get(item).get(type);
|
||||
return 0;
|
||||
return amountMap.containsKey(item) ? amountMap.get(item).get(type) : 0;
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
package com.gamingmesh.jobs.container;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
public final class LogAmounts {
|
||||
@ -11,7 +12,7 @@ public final class LogAmounts {
|
||||
private String item;
|
||||
private int count = 0;
|
||||
|
||||
private HashMap<CurrencyType, Double> amounts = new HashMap<>();
|
||||
private Map<CurrencyType, Double> amounts = new HashMap<>();
|
||||
|
||||
private boolean newEntry = true;
|
||||
|
||||
@ -31,7 +32,7 @@ public final class LogAmounts {
|
||||
return item;
|
||||
}
|
||||
|
||||
public void add(HashMap<CurrencyType, Double> amounts) {
|
||||
public void add(Map<CurrencyType, Double> amounts) {
|
||||
for (Entry<CurrencyType, Double> one : amounts.entrySet()) {
|
||||
add(one.getKey(), one.getValue());
|
||||
}
|
||||
|
@ -1779,10 +1779,10 @@ public abstract class JobsDAO {
|
||||
}
|
||||
|
||||
public PlayerInfo loadPlayerData(UUID uuid) {
|
||||
PlayerInfo pInfo = null;
|
||||
JobsConnection conn = getConnection();
|
||||
if (conn == null)
|
||||
return pInfo;
|
||||
return null;
|
||||
PlayerInfo pInfo = null;
|
||||
PreparedStatement prest = null;
|
||||
ResultSet res = null;
|
||||
try {
|
||||
|
@ -24,7 +24,6 @@ import java.util.List;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.configuration.file.FileConfiguration;
|
||||
|
||||
import com.gamingmesh.jobs.Jobs;
|
||||
@ -32,13 +31,10 @@ import com.gamingmesh.jobs.CMILib.CMIChatColor;
|
||||
import com.gamingmesh.jobs.config.YmlMaker;
|
||||
|
||||
public class Language {
|
||||
public FileConfiguration enlocale;
|
||||
public FileConfiguration customlocale;
|
||||
private Jobs plugin;
|
||||
|
||||
public Language(Jobs plugin) {
|
||||
this.plugin = plugin;
|
||||
}
|
||||
public FileConfiguration enlocale, customlocale;
|
||||
|
||||
private final Pattern patern = Pattern.compile("([ ]?[\\/][n][$|\\s])");
|
||||
|
||||
/**
|
||||
* Reloads the config
|
||||
@ -68,11 +64,10 @@ public class Language {
|
||||
msg = enlocale.isString(key) ? CMIChatColor.translate(enlocale.getString(key)) : missing;
|
||||
else
|
||||
msg = customlocale.isString(key) ? CMIChatColor.translate(customlocale.getString(key)) : missing;
|
||||
} catch (Throwable e) {
|
||||
} catch (Exception e) {
|
||||
Jobs.consoleMsg("&e[Jobs] &2Can't read language file for: " + key);
|
||||
Bukkit.getServer().getPluginManager().disablePlugin(plugin);
|
||||
e.printStackTrace();
|
||||
throw e;
|
||||
Jobs.consoleMsg(e.getLocalizedMessage());
|
||||
return "";
|
||||
}
|
||||
|
||||
if (msg.isEmpty() || msg.equals(missing)) {
|
||||
@ -81,20 +76,19 @@ public class Language {
|
||||
|
||||
List<String> ls = null;
|
||||
if (customlocale != null && customlocale.isList(key))
|
||||
ls = ColorsArray(customlocale.getStringList(key), true);
|
||||
ls = colorsArray(customlocale.getStringList(key), true);
|
||||
else if (enlocale.isList(key))
|
||||
ls = !enlocale.getStringList(key).isEmpty() ? ColorsArray(enlocale.getStringList(key), true) : Arrays.asList(missing);
|
||||
ls = !enlocale.getStringList(key).isEmpty() ? colorsArray(enlocale.getStringList(key), true) : Arrays.asList(missing);
|
||||
if (ls != null)
|
||||
for (String one : ls) {
|
||||
if (!msg.isEmpty())
|
||||
msg += "\n";
|
||||
msg += one;
|
||||
}
|
||||
} catch (Throwable e) {
|
||||
} catch (Exception e) {
|
||||
Jobs.consoleMsg("&e[Jobs] &2Can't read language file for: " + key);
|
||||
Bukkit.getServer().getPluginManager().disablePlugin(plugin);
|
||||
e.printStackTrace();
|
||||
throw e;
|
||||
Jobs.consoleMsg(e.getLocalizedMessage());
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
@ -118,9 +112,9 @@ public class Language {
|
||||
|
||||
List<String> ls;
|
||||
if (customlocale.isList(key))
|
||||
ls = ColorsArray(customlocale.getStringList(key), true);
|
||||
ls = colorsArray(customlocale.getStringList(key), true);
|
||||
else
|
||||
ls = !enlocale.getStringList(key).isEmpty() ? ColorsArray(enlocale.getStringList(key), true) : Arrays.asList(missing);
|
||||
ls = !enlocale.getStringList(key).isEmpty() ? colorsArray(enlocale.getStringList(key), true) : Arrays.asList(missing);
|
||||
|
||||
if (variables != null && variables.length > 0)
|
||||
for (int i = 0; i < ls.size(); i++) {
|
||||
@ -128,15 +122,14 @@ public class Language {
|
||||
for (int y = 0; y < variables.length; y += 2) {
|
||||
msg = msg.replace(String.valueOf(variables[y]), String.valueOf(variables[y + 1]));
|
||||
}
|
||||
msg = filterNewLine(msg);
|
||||
ls.set(i, CMIChatColor.translate(msg));
|
||||
|
||||
ls.set(i, CMIChatColor.translate(filterNewLine(msg)));
|
||||
}
|
||||
|
||||
return ls;
|
||||
}
|
||||
|
||||
public String filterNewLine(String msg) {
|
||||
Pattern patern = Pattern.compile("([ ]?[\\/][n][$|\\s])");
|
||||
Matcher match = patern.matcher(msg);
|
||||
while (match.find()) {
|
||||
msg = msg.replace(match.group(0), "\n");
|
||||
@ -144,7 +137,7 @@ public class Language {
|
||||
return msg;
|
||||
}
|
||||
|
||||
public List<String> ColorsArray(List<String> text, boolean colorize) {
|
||||
public List<String> colorsArray(List<String> text, boolean colorize) {
|
||||
List<String> temp = new ArrayList<>();
|
||||
for (String part : text) {
|
||||
if (colorize)
|
||||
|
@ -196,13 +196,13 @@ public class JobsListener implements Listener {
|
||||
return;
|
||||
|
||||
Sign sign = (Sign) block.getState();
|
||||
String FirstLine = plugin.getComplement().getLine(sign, 0);
|
||||
|
||||
if (!CMIChatColor.stripColor(FirstLine).equalsIgnoreCase(CMIChatColor.stripColor(Jobs.getLanguage().getMessage("signs.topline"))))
|
||||
if (!CMIChatColor.stripColor(plugin.getComplement().getLine(sign, 0)).equalsIgnoreCase(
|
||||
CMIChatColor.stripColor(Jobs.getLanguage().getMessage("signs.topline"))))
|
||||
return;
|
||||
|
||||
String command = CMIChatColor.stripColor(plugin.getComplement().getLine(sign, 1));
|
||||
for (String key : Jobs.getGCManager().keys) {
|
||||
for (String key : Jobs.getLanguageManager().signKeys) {
|
||||
if (command.equalsIgnoreCase(CMIChatColor.stripColor(Jobs.getLanguage().getMessage("signs.secondline." + key)))) {
|
||||
command = key;
|
||||
break;
|
||||
@ -224,8 +224,8 @@ public class JobsListener implements Listener {
|
||||
|
||||
Player player = event.getPlayer();
|
||||
Sign sign = (Sign) block.getState();
|
||||
String firstLine = plugin.getComplement().getLine(sign, 0);
|
||||
if (firstLine.contains(Jobs.getLanguage().getMessage("signs.topline")) && !player.hasPermission("jobs.command.signs")) {
|
||||
if (plugin.getComplement().getLine(sign, 0).contains(Jobs.getLanguage().getMessage("signs.topline"))
|
||||
&& !player.hasPermission("jobs.command.signs")) {
|
||||
event.setCancelled(true);
|
||||
player.sendMessage(Jobs.getLanguage().getMessage("signs.cantdestroy"));
|
||||
return;
|
||||
@ -270,8 +270,7 @@ public class JobsListener implements Listener {
|
||||
return;
|
||||
}
|
||||
|
||||
String jobname = CMIChatColor.stripColor(plugin.getComplement().getLine(sign, 2)).toLowerCase();
|
||||
final Job job = Jobs.getJob(jobname);
|
||||
final Job job = Jobs.getJob(CMIChatColor.stripColor(plugin.getComplement().getLine(sign, 2)).toLowerCase());
|
||||
if (type == SignTopType.toplist && job == null) {
|
||||
player.sendMessage(Jobs.getLanguage().getMessage("command.top.error.nojob"));
|
||||
return;
|
||||
@ -294,8 +293,7 @@ public class JobsListener implements Listener {
|
||||
|
||||
jobsSign signInfo = new jobsSign();
|
||||
|
||||
Location loc = sign.getLocation();
|
||||
signInfo.setLoc(loc);
|
||||
signInfo.setLoc(sign.getLocation());
|
||||
signInfo.setNumber(number);
|
||||
if (job != null)
|
||||
signInfo.setJobName(job.getName());
|
||||
@ -331,7 +329,7 @@ public class JobsListener implements Listener {
|
||||
}
|
||||
|
||||
String command = CMIChatColor.stripColor(plugin.getComplement().getLine(event, 1)).toLowerCase();
|
||||
for (String key : Jobs.getGCManager().keys) {
|
||||
for (String key : Jobs.getLanguageManager().signKeys) {
|
||||
if (command.equalsIgnoreCase(CMIChatColor.stripColor(Jobs.getLanguage().getMessage("signs.secondline." + key)))) {
|
||||
plugin.getComplement().setLine(event, 1, convert(Jobs.getLanguage().getMessage("signs.secondline." + key)));
|
||||
break;
|
||||
@ -346,8 +344,10 @@ public class JobsListener implements Listener {
|
||||
plugin.getComplement().setLine(event, 2, convert(color + job.getName()));
|
||||
}
|
||||
|
||||
private final Pattern pattern = Pattern.compile("&([0-9a-fk-or])");
|
||||
|
||||
private String convert(String line) {
|
||||
return Pattern.compile("&([0-9a-fk-or])").matcher(CMIChatColor.translate(line)).replaceAll("\u00a7$1");
|
||||
return pattern.matcher(CMIChatColor.translate(line)).replaceAll("\u00a7$1");
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
||||
@ -425,15 +425,13 @@ public class JobsListener implements Listener {
|
||||
}
|
||||
}
|
||||
|
||||
boolean foundEnc = false;
|
||||
for (Entry<Enchantment, Integer> oneE : enchants.entrySet()) {
|
||||
if (oneItem.getenchants().containsKey(oneE.getKey()) && oneItem.getenchants().get(oneE.getKey()) <= oneE.getValue()) {
|
||||
foundEnc = true;
|
||||
break;
|
||||
if (oneItem.getEnchants().containsKey(oneE.getKey()) && oneItem.getEnchants().get(oneE.getKey()) <= oneE.getValue()) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return foundEnc;
|
||||
return false;
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
|
@ -25,9 +25,7 @@ public class v1_10 implements NMS {
|
||||
|
||||
@Override
|
||||
public List<Block> getPistonRetractBlocks(BlockPistonRetractEvent event) {
|
||||
List<Block> blocks = new ArrayList<>();
|
||||
blocks.addAll(event.getBlocks());
|
||||
return blocks;
|
||||
return new ArrayList<>(event.getBlocks());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -19,9 +19,7 @@ public class v1_11 implements NMS {
|
||||
|
||||
@Override
|
||||
public List<Block> getPistonRetractBlocks(BlockPistonRetractEvent event) {
|
||||
List<Block> blocks = new ArrayList<>();
|
||||
blocks.addAll(event.getBlocks());
|
||||
return blocks;
|
||||
return new ArrayList<>(event.getBlocks());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -20,9 +20,7 @@ public class v1_12 implements NMS {
|
||||
|
||||
@Override
|
||||
public List<Block> getPistonRetractBlocks(BlockPistonRetractEvent event) {
|
||||
List<Block> blocks = new ArrayList<>();
|
||||
blocks.addAll(event.getBlocks());
|
||||
return blocks;
|
||||
return new ArrayList<>(event.getBlocks());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -20,9 +20,7 @@ public class v1_13 implements NMS {
|
||||
|
||||
@Override
|
||||
public List<Block> getPistonRetractBlocks(BlockPistonRetractEvent event) {
|
||||
List<Block> blocks = new ArrayList<>();
|
||||
blocks.addAll(event.getBlocks());
|
||||
return blocks;
|
||||
return new ArrayList<>(event.getBlocks());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -20,9 +20,7 @@ public class v1_14 implements NMS {
|
||||
|
||||
@Override
|
||||
public List<Block> getPistonRetractBlocks(BlockPistonRetractEvent event) {
|
||||
List<Block> blocks = new ArrayList<>();
|
||||
blocks.addAll(event.getBlocks());
|
||||
return blocks;
|
||||
return new ArrayList<>(event.getBlocks());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -20,9 +20,7 @@ public class v1_15 implements NMS {
|
||||
|
||||
@Override
|
||||
public List<Block> getPistonRetractBlocks(BlockPistonRetractEvent event) {
|
||||
List<Block> blocks = new ArrayList<>();
|
||||
blocks.addAll(event.getBlocks());
|
||||
return blocks;
|
||||
return new ArrayList<>(event.getBlocks());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -20,9 +20,7 @@ public class v1_16 implements NMS {
|
||||
|
||||
@Override
|
||||
public List<Block> getPistonRetractBlocks(BlockPistonRetractEvent event) {
|
||||
List<Block> blocks = new ArrayList<>();
|
||||
blocks.addAll(event.getBlocks());
|
||||
return blocks;
|
||||
return new ArrayList<>(event.getBlocks());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -25,9 +25,7 @@ public class v1_8 implements NMS {
|
||||
|
||||
@Override
|
||||
public List<Block> getPistonRetractBlocks(BlockPistonRetractEvent event) {
|
||||
List<Block> blocks = new ArrayList<>();
|
||||
blocks.addAll(event.getBlocks());
|
||||
return blocks;
|
||||
return new ArrayList<>(event.getBlocks());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -25,9 +25,7 @@ public class v1_9 implements NMS {
|
||||
|
||||
@Override
|
||||
public List<Block> getPistonRetractBlocks(BlockPistonRetractEvent event) {
|
||||
List<Block> blocks = new ArrayList<>();
|
||||
blocks.addAll(event.getBlocks());
|
||||
return blocks;
|
||||
return new ArrayList<>(event.getBlocks());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -1,8 +1,6 @@
|
||||
package com.gamingmesh.jobs.stuff;
|
||||
|
||||
import java.lang.reflect.Constructor;
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map.Entry;
|
||||
@ -13,7 +11,6 @@ import org.bukkit.Bukkit;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.scoreboard.DisplaySlot;
|
||||
import org.bukkit.scoreboard.Objective;
|
||||
import org.bukkit.scoreboard.Scoreboard;
|
||||
|
||||
import com.gamingmesh.jobs.Jobs;
|
||||
import com.gamingmesh.jobs.CMILib.CMIChatColor;
|
||||
@ -25,20 +22,20 @@ public class CMIScoreboardManager {
|
||||
|
||||
private ConcurrentHashMap<UUID, ScoreboardInfo> timerMap = new ConcurrentHashMap<>();
|
||||
|
||||
private void RunScheduler() {
|
||||
Iterator<Entry<UUID, ScoreboardInfo>> MeinMapIter = timerMap.entrySet().iterator();
|
||||
while (MeinMapIter.hasNext()) {
|
||||
Entry<UUID, ScoreboardInfo> Map = MeinMapIter.next();
|
||||
private void runScheduler() {
|
||||
Iterator<Entry<UUID, ScoreboardInfo>> meinMapIter = timerMap.entrySet().iterator();
|
||||
while (meinMapIter.hasNext()) {
|
||||
Entry<UUID, ScoreboardInfo> map = meinMapIter.next();
|
||||
|
||||
if (System.currentTimeMillis() > Map.getValue().getTime() + (Jobs.getGCManager().ToplistInScoreboardInterval * 1000)) {
|
||||
Player player = Bukkit.getPlayer(Map.getKey());
|
||||
if (System.currentTimeMillis() > map.getValue().getTime() + (Jobs.getGCManager().ToplistInScoreboardInterval * 1000)) {
|
||||
Player player = Bukkit.getPlayer(map.getKey());
|
||||
if (player != null) {
|
||||
removeScoreBoard(player);
|
||||
player.getScoreboard().clearSlot(DisplaySlot.SIDEBAR);
|
||||
|
||||
if (Map.getValue().getObj() != null) {
|
||||
if (map.getValue().getObj() != null) {
|
||||
try {
|
||||
Objective obj = player.getScoreboard().getObjective(Map.getValue().getObj().getName());
|
||||
Objective obj = player.getScoreboard().getObjective(map.getValue().getObj().getName());
|
||||
if (obj != null)
|
||||
obj.setDisplaySlot(DisplaySlot.SIDEBAR);
|
||||
} catch (IllegalStateException e) {
|
||||
@ -46,47 +43,92 @@ public class CMIScoreboardManager {
|
||||
}
|
||||
}
|
||||
|
||||
timerMap.remove(Map.getKey());
|
||||
timerMap.remove(map.getKey());
|
||||
}
|
||||
}
|
||||
|
||||
if (timerMap.size() > 0)
|
||||
Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(Jobs.getInstance(), this::RunScheduler, 20L);
|
||||
Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(Jobs.getInstance(), this::runScheduler, 20L);
|
||||
}
|
||||
|
||||
public void addNew(Player player) {
|
||||
Scoreboard scoreBoard = player.getScoreboard();
|
||||
timerMap.put(player.getUniqueId(), new ScoreboardInfo(scoreBoard, DisplaySlot.SIDEBAR));
|
||||
RunScheduler();
|
||||
timerMap.put(player.getUniqueId(), new ScoreboardInfo(player.getScoreboard(), DisplaySlot.SIDEBAR));
|
||||
runScheduler();
|
||||
}
|
||||
|
||||
private final String objName = "CMIScoreboard";
|
||||
|
||||
public void removeScoreBoard(Player player) {
|
||||
try {
|
||||
|
||||
Class<?> boardClass = getNMSClass("Scoreboard");
|
||||
Object boards = boardClass.getConstructor().newInstance();
|
||||
|
||||
if (Version.isCurrentEqualOrHigher(Version.v1_13_R1)) {
|
||||
Class<?> p0 = getNMSClass("PacketPlayOutScoreboardObjective");
|
||||
Constructor<?> p00 = p0.getConstructor();
|
||||
Object pp1 = p00.newInstance();
|
||||
Object pp1 = getNMSClass("PacketPlayOutScoreboardObjective").getConstructor().newInstance();
|
||||
setField(pp1, "a", player.getName());
|
||||
setField(pp1, "d", 1);
|
||||
sendPacket(player, pp1);
|
||||
} else {
|
||||
Method m = boards.getClass().getMethod("registerObjective", String.class, getNMSClass("IScoreboardCriteria"));
|
||||
Object boards = getNMSClass("Scoreboard").getConstructor().newInstance();
|
||||
|
||||
Class<?> IScoreboardCriterias = getNMSClass("ScoreboardBaseCriteria");
|
||||
Constructor<?> IScoreboardCriteriasConst = IScoreboardCriterias.getConstructor(String.class);
|
||||
Object IScoreboardCriteria = IScoreboardCriteriasConst.newInstance("JobsDummy");
|
||||
Object obj = boards.getClass().getMethod("registerObjective", String.class,
|
||||
getNMSClass("IScoreboardCriteria")).invoke(boards, objName,
|
||||
getNMSClass("ScoreboardBaseCriteria").getConstructor(String.class).newInstance("JobsDummy"));
|
||||
sendPacket(player, getNMSClass("PacketPlayOutScoreboardObjective").getConstructor(obj.getClass(), int.class).newInstance(obj, 1));
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
Object obj = m.invoke(boards, objName, IScoreboardCriteria);
|
||||
Class<?> p1 = getNMSClass("PacketPlayOutScoreboardObjective");
|
||||
Constructor<?> p11 = p1.getConstructor(obj.getClass(), int.class);
|
||||
Object pp1 = p11.newInstance(obj, 1);
|
||||
public void setScoreBoard(Player player, String displayName, List<String> lines) {
|
||||
removeScoreBoard(player);
|
||||
|
||||
try {
|
||||
if (Version.isCurrentEqualOrHigher(Version.v1_13_R1)) {
|
||||
Object pp1 = getNMSClass("PacketPlayOutScoreboardObjective").getConstructor().newInstance();
|
||||
setField(pp1, "a", player.getName());
|
||||
setField(pp1, "d", 0);
|
||||
setField(pp1, "b", getNMSClass("ChatComponentText").getConstructor(String.class).newInstance(CMIChatColor.translate(displayName)));
|
||||
setField(pp1, "c", getNMSClass("IScoreboardCriteria$EnumScoreboardHealthDisplay").getEnumConstants()[1]);
|
||||
sendPacket(player, pp1);
|
||||
|
||||
Object d0 = getNMSClass("PacketPlayOutScoreboardDisplayObjective").getConstructor().newInstance();
|
||||
setField(d0, "a", 1);
|
||||
setField(d0, "b", player.getName());
|
||||
sendPacket(player, d0);
|
||||
|
||||
for (int i = 0; i < 15; i++) {
|
||||
if (i >= lines.size())
|
||||
break;
|
||||
Object PacketPlayOutScoreboardScore = getNMSClass("PacketPlayOutScoreboardScore").getConstructor().newInstance();
|
||||
|
||||
setField(PacketPlayOutScoreboardScore, "a", CMIChatColor.translate(lines.get(i)));
|
||||
setField(PacketPlayOutScoreboardScore, "b", player.getName());
|
||||
setField(PacketPlayOutScoreboardScore, "c", 15 - i);
|
||||
setField(PacketPlayOutScoreboardScore, "d", getNMSClass("ScoreboardServer$Action").getEnumConstants()[0]);
|
||||
sendPacket(player, PacketPlayOutScoreboardScore);
|
||||
}
|
||||
} else {
|
||||
Object boards = getNMSClass("Scoreboard").getConstructor().newInstance();
|
||||
Object obj = boards.getClass().getMethod("registerObjective", String.class, getNMSClass("IScoreboardCriteria"))
|
||||
.invoke(boards, objName, getNMSClass("ScoreboardBaseCriteria").getConstructor(String.class).newInstance("JobsDummy"));
|
||||
|
||||
obj.getClass().getMethod("setDisplayName", String.class).invoke(obj, CMIChatColor.translate(displayName));
|
||||
|
||||
sendPacket(player, getNMSClass("PacketPlayOutScoreboardObjective").getConstructor(obj.getClass(), int.class).newInstance(obj, 1));
|
||||
sendPacket(player, getNMSClass("PacketPlayOutScoreboardObjective").getConstructor(obj.getClass(), int.class).newInstance(obj, 0));
|
||||
|
||||
sendPacket(player, getNMSClass("PacketPlayOutScoreboardDisplayObjective").getConstructor(int.class,
|
||||
getNMSClass("ScoreboardObjective")).newInstance(1, obj));
|
||||
|
||||
for (int i = 0; i < 15; i++) {
|
||||
if (i >= lines.size())
|
||||
break;
|
||||
|
||||
Object packet2 = getNMSClass("ScoreboardScore").getConstructor(getNMSClass("Scoreboard"),
|
||||
getNMSClass("ScoreboardObjective"), String.class).newInstance(boards, obj, CMIChatColor.translate(lines.get(i)));
|
||||
packet2.getClass().getMethod("setScore", int.class).invoke(packet2, 15 - i);
|
||||
|
||||
sendPacket(player, getNMSClass("PacketPlayOutScoreboardScore").getConstructor(getNMSClass("ScoreboardScore")).newInstance(packet2));
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
@ -103,101 +145,9 @@ public class CMIScoreboardManager {
|
||||
}
|
||||
}
|
||||
|
||||
public void setScoreBoard(Player player, String displayName, List<String> lines) {
|
||||
removeScoreBoard(player);
|
||||
try {
|
||||
Class<?> boardClass = getNMSClass("Scoreboard");
|
||||
Object boards = boardClass.getConstructor().newInstance();
|
||||
if (Version.isCurrentEqualOrHigher(Version.v1_13_R1)) {
|
||||
Class<?> enums = getNMSClass("IScoreboardCriteria$EnumScoreboardHealthDisplay");
|
||||
|
||||
Class<?> p0 = getNMSClass("PacketPlayOutScoreboardObjective");
|
||||
Constructor<?> p00 = p0.getConstructor();
|
||||
Object pp1 = p00.newInstance();
|
||||
setField(pp1, "a", player.getName());
|
||||
setField(pp1, "d", 0);
|
||||
Object chatComponentText = getNMSClass("ChatComponentText").getConstructor(String.class).newInstance(CMIChatColor.translate(displayName));
|
||||
setField(pp1, "b", chatComponentText);
|
||||
setField(pp1, "c", enums.getEnumConstants()[1]);
|
||||
sendPacket(player, pp1);
|
||||
|
||||
Object d0 = getNMSClass("PacketPlayOutScoreboardDisplayObjective").getConstructor().newInstance();
|
||||
setField(d0, "a", 1);
|
||||
setField(d0, "b", player.getName());
|
||||
sendPacket(player, d0);
|
||||
|
||||
for (int i = 0; i < 15; i++) {
|
||||
if (i >= lines.size())
|
||||
break;
|
||||
String ln = CMIChatColor.translate(lines.get(i));
|
||||
Class<?> PacketPlayOutScoreboardScoreClass = getNMSClass("PacketPlayOutScoreboardScore");
|
||||
Constructor<?> PacketPlayOutScoreboardScoreConstructor = PacketPlayOutScoreboardScoreClass.getConstructor();
|
||||
Object PacketPlayOutScoreboardScore = PacketPlayOutScoreboardScoreConstructor.newInstance();
|
||||
Class<?> aenums = getNMSClass("ScoreboardServer$Action");
|
||||
|
||||
setField(PacketPlayOutScoreboardScore, "a", ln);
|
||||
setField(PacketPlayOutScoreboardScore, "b", player.getName());
|
||||
setField(PacketPlayOutScoreboardScore, "c", 15 - i);
|
||||
setField(PacketPlayOutScoreboardScore, "d", aenums.getEnumConstants()[0]);
|
||||
sendPacket(player, PacketPlayOutScoreboardScore);
|
||||
}
|
||||
} else {
|
||||
|
||||
Method m = boards.getClass().getMethod("registerObjective", String.class, getNMSClass("IScoreboardCriteria"));
|
||||
|
||||
Class<?> IScoreboardCriterias = getNMSClass("ScoreboardBaseCriteria");
|
||||
Constructor<?> IScoreboardCriteriasConst = IScoreboardCriterias.getConstructor(String.class);
|
||||
Object IScoreboardCriteria = IScoreboardCriteriasConst.newInstance("JobsDummy");
|
||||
|
||||
Object obj = m.invoke(boards, objName, IScoreboardCriteria);
|
||||
|
||||
Method mm = obj.getClass().getMethod("setDisplayName", String.class);
|
||||
mm.invoke(obj, CMIChatColor.translate(displayName));
|
||||
|
||||
Class<?> p1 = getNMSClass("PacketPlayOutScoreboardObjective");
|
||||
Constructor<?> p11 = p1.getConstructor(obj.getClass(), int.class);
|
||||
Object pp1 = p11.newInstance(obj, 1);
|
||||
sendPacket(player, pp1);
|
||||
|
||||
Class<?> p2 = getNMSClass("PacketPlayOutScoreboardObjective");
|
||||
Constructor<?> p12 = p2.getConstructor(obj.getClass(), int.class);
|
||||
Object pp2 = p12.newInstance(obj, 0);
|
||||
sendPacket(player, pp2);
|
||||
|
||||
Class<?> packetClass = getNMSClass("PacketPlayOutScoreboardDisplayObjective");
|
||||
Constructor<?> packetConstructor = packetClass.getConstructor(int.class, getNMSClass("ScoreboardObjective"));
|
||||
Object packet = packetConstructor.newInstance(1, obj);
|
||||
sendPacket(player, packet);
|
||||
|
||||
for (int i = 0; i < 15; i++) {
|
||||
if (i >= lines.size())
|
||||
break;
|
||||
|
||||
String ln = CMIChatColor.translate(lines.get(i));
|
||||
Class<?> ScoreboardScoreClass = getNMSClass("ScoreboardScore");
|
||||
Constructor<?> packetConstructor2 = ScoreboardScoreClass.getConstructor(getNMSClass("Scoreboard"), getNMSClass("ScoreboardObjective"), String.class);
|
||||
Object packet2 = packetConstructor2.newInstance(boards, obj, ln);
|
||||
Method mc = packet2.getClass().getMethod("setScore", int.class);
|
||||
mc.invoke(packet2, 15 - i);
|
||||
|
||||
Class<?> PacketPlayOutScoreboardScoreClass = getNMSClass("PacketPlayOutScoreboardScore");
|
||||
Constructor<?> PacketPlayOutScoreboardScoreConstructor = PacketPlayOutScoreboardScoreClass.getConstructor(getNMSClass("ScoreboardScore"));
|
||||
Object PacketPlayOutScoreboardScore = PacketPlayOutScoreboardScoreConstructor.newInstance(packet2);
|
||||
|
||||
sendPacket(player, PacketPlayOutScoreboardScore);
|
||||
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
private static void sendPacket(Player player, Object packet) {
|
||||
Method sendPacket;
|
||||
try {
|
||||
sendPacket = getNMSClass("PlayerConnection").getMethod("sendPacket", getNMSClass("Packet"));
|
||||
sendPacket.invoke(getConnection(player), packet);
|
||||
getNMSClass("PlayerConnection").getMethod("sendPacket", getNMSClass("Packet")).invoke(getConnection(player), packet);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
@ -208,10 +158,7 @@ public class CMIScoreboardManager {
|
||||
}
|
||||
|
||||
private static Object getConnection(Player player) throws Exception {
|
||||
Method getHandle = player.getClass().getMethod("getHandle");
|
||||
Object nmsPlayer = getHandle.invoke(player);
|
||||
Field conField = nmsPlayer.getClass().getField("playerConnection");
|
||||
Object con = conField.get(nmsPlayer);
|
||||
return con;
|
||||
Object nmsPlayer = player.getClass().getMethod("getHandle").invoke(player);
|
||||
return nmsPlayer.getClass().getField("playerConnection").get(nmsPlayer);
|
||||
}
|
||||
}
|
||||
|
@ -16,11 +16,15 @@ import com.gamingmesh.jobs.CMILib.CMIChatColor;
|
||||
import com.gamingmesh.jobs.CMILib.CMIMaterial;
|
||||
|
||||
public class GiveItem {
|
||||
public static void GiveItemForPlayer(Player player, int id, int meta, int qty, String name, List<String> lore,
|
||||
|
||||
public static void giveItemForPlayer(Player player, int id, int meta, int qty, String name, List<String> lore,
|
||||
HashMap<Enchantment, Integer> enchants) {
|
||||
ItemStack itemStack = CMIMaterial.get(id, meta).newItemStack();
|
||||
itemStack.setAmount(qty);
|
||||
ItemMeta itemMeta = itemStack.getItemMeta();
|
||||
if (itemMeta == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (lore != null && !lore.isEmpty()) {
|
||||
List<String> translatedLore = new ArrayList<>();
|
||||
@ -48,10 +52,10 @@ public class GiveItem {
|
||||
Jobs.getInstance().getComplement().setDisplayName(itemMeta, CMIChatColor.translate(name));
|
||||
|
||||
itemStack.setItemMeta(itemMeta);
|
||||
GiveItemForPlayer(player, itemStack);
|
||||
giveItemForPlayer(player, itemStack);
|
||||
}
|
||||
|
||||
public static void GiveItemForPlayer(Player player, ItemStack item) {
|
||||
public static void giveItemForPlayer(Player player, ItemStack item) {
|
||||
player.getInventory().addItem(item);
|
||||
player.updateInventory();
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
package com.gamingmesh.jobs.stuff;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import com.gamingmesh.jobs.Jobs;
|
||||
import com.gamingmesh.jobs.container.ActionInfo;
|
||||
@ -10,26 +10,25 @@ import com.gamingmesh.jobs.container.Log;
|
||||
|
||||
public class Loging {
|
||||
|
||||
public void recordToLog(JobsPlayer jPlayer, ActionInfo info, HashMap<CurrencyType, Double> amounts) {
|
||||
public void recordToLog(JobsPlayer jPlayer, ActionInfo info, Map<CurrencyType, Double> amounts) {
|
||||
recordToLog(jPlayer, info.getType().getName(), info.getNameWithSub(), amounts);
|
||||
}
|
||||
|
||||
public void recordToLog(JobsPlayer jPlayer, String ActionName, String item, HashMap<CurrencyType, Double> amounts) {
|
||||
HashMap<String, Log> logList = jPlayer.getLog();
|
||||
public void recordToLog(JobsPlayer jPlayer, String actionName, String item, Map<CurrencyType, Double> amounts) {
|
||||
Map<String, Log> logList = jPlayer.getLog();
|
||||
Log l = logList.values().stream().findFirst().orElse(null);
|
||||
if (l != null && TimeManage.timeInInt() != l.getDate()) {
|
||||
Jobs.getJobsDAO().saveLog(jPlayer);
|
||||
jPlayer.getLog().clear();
|
||||
}
|
||||
|
||||
Log log = logList.getOrDefault(ActionName, new Log(ActionName));
|
||||
Log log = logList.getOrDefault(actionName, new Log(actionName));
|
||||
log.add(item, amounts);
|
||||
logList.put(ActionName, log);
|
||||
logList.put(actionName, log);
|
||||
}
|
||||
|
||||
public void loadToLog(JobsPlayer jPlayer, String ActionName, String item, int count, HashMap<CurrencyType, Double> amounts) {
|
||||
Log log = jPlayer.getLog().getOrDefault(ActionName, new Log(ActionName));
|
||||
log.add(item, count, amounts);
|
||||
public void loadToLog(JobsPlayer jPlayer, String actionName, String item, int count, Map<CurrencyType, Double> amounts) {
|
||||
jPlayer.getLog().getOrDefault(actionName, new Log(actionName)).add(item, count, amounts);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -9,7 +9,6 @@ import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.TabCompleter;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.metadata.MetadataValue;
|
||||
import org.bukkit.util.StringUtil;
|
||||
|
||||
import com.gamingmesh.jobs.ItemBoostManager;
|
||||
@ -29,25 +28,24 @@ public class TabComplete implements TabCompleter {
|
||||
List<String> completionList = new ArrayList<>();
|
||||
|
||||
if (args.length == 1) {
|
||||
String PartOfCommand = args[0];
|
||||
List<String> temp = new ArrayList<>();
|
||||
|
||||
Jobs.getCommandManager().getCommands(sender).forEach(temp::add);
|
||||
StringUtil.copyPartialMatches(PartOfCommand, temp, completionList);
|
||||
temp.addAll(Jobs.getCommandManager().getCommands(sender));
|
||||
StringUtil.copyPartialMatches(args[0], temp, completionList);
|
||||
}
|
||||
if (args.length > 1)
|
||||
for (int i = 1; i <= args.length; i++)
|
||||
if (args.length == i + 1) {
|
||||
String PartOfCommand = args[i];
|
||||
String partOfCommand = args[i];
|
||||
|
||||
if (!Jobs.getGCManager().getCommandArgs().containsKey(args[0].toLowerCase()))
|
||||
break;
|
||||
|
||||
List<String> ArgsList = Jobs.getGCManager().getCommandArgs().get(args[0].toLowerCase());
|
||||
if (ArgsList.size() < i)
|
||||
List<String> argsList = Jobs.getGCManager().getCommandArgs().get(args[0].toLowerCase());
|
||||
if (argsList.size() < i)
|
||||
continue;
|
||||
|
||||
String arg = ArgsList.get(i - 1);
|
||||
String arg = argsList.get(i - 1);
|
||||
List<String> t2 = new ArrayList<>();
|
||||
|
||||
if (arg.contains("%%"))
|
||||
@ -61,7 +59,7 @@ public class TabComplete implements TabCompleter {
|
||||
for (String ar : t2) {
|
||||
switch (ar) {
|
||||
case "[scheduleName]":
|
||||
Jobs.getScheduleManager().getConf().getConfig().getConfigurationSection("Boost").getKeys(false).forEach(temp::add);
|
||||
temp.addAll(Jobs.getScheduleManager().getConf().getConfig().getConfigurationSection("Boost").getKeys(false));
|
||||
break;
|
||||
case "[time]":
|
||||
temp.add("1hour10minute20s");
|
||||
@ -82,15 +80,11 @@ public class TabComplete implements TabCompleter {
|
||||
}
|
||||
break;
|
||||
case "[playername]":
|
||||
pl: for (Player player : Bukkit.getOnlinePlayers()) {
|
||||
for (Player player : Bukkit.getOnlinePlayers()) {
|
||||
// ignore hidden players
|
||||
if (Jobs.getGCManager().FilterHiddenPlayerFromTabComplete && player.hasMetadata("vanished")) {
|
||||
// TODO add essentials & cmi support
|
||||
for (MetadataValue meta : player.getMetadata("vanished")) {
|
||||
if (meta.asBoolean()) {
|
||||
continue pl;
|
||||
}
|
||||
}
|
||||
if (Jobs.getGCManager().FilterHiddenPlayerFromTabComplete && (player.hasMetadata("vanished")
|
||||
|| (sender instanceof Player && ((Player) sender).canSee(player)))) {
|
||||
continue;
|
||||
}
|
||||
|
||||
temp.add(player.getName());
|
||||
@ -127,8 +121,7 @@ public class TabComplete implements TabCompleter {
|
||||
break;
|
||||
case "[oldplayerjob]":
|
||||
if (sender instanceof Player) {
|
||||
onePlayerJob = Jobs.getPlayerManager().getJobsPlayer((Player) sender);
|
||||
if (onePlayerJob != null)
|
||||
if ((onePlayerJob = Jobs.getPlayerManager().getJobsPlayer((Player) sender)) != null)
|
||||
for (JobProgression oneOldJob : onePlayerJob.getJobProgression()) {
|
||||
temp.add(oneOldJob.getJob().getName());
|
||||
}
|
||||
@ -140,7 +133,7 @@ public class TabComplete implements TabCompleter {
|
||||
}
|
||||
}
|
||||
|
||||
StringUtil.copyPartialMatches(PartOfCommand, temp, completionList);
|
||||
StringUtil.copyPartialMatches(partOfCommand, temp, completionList);
|
||||
}
|
||||
|
||||
Collections.sort(completionList);
|
||||
|
@ -1,4 +1,3 @@
|
||||
|
||||
package com.gamingmesh.jobs.stuff;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
|
@ -80,7 +80,8 @@ public class Util {
|
||||
}
|
||||
|
||||
public static String firstToUpperCase(String name) {
|
||||
return name.toLowerCase().replace('_', ' ').substring(0, 1).toUpperCase() + name.toLowerCase().replace('_', ' ').substring(1);
|
||||
name = name.toLowerCase().replace('_', ' ');
|
||||
return name.substring(0, 1).toUpperCase() + name.substring(1);
|
||||
}
|
||||
|
||||
public static HashMap<UUID, String> getJobsEditorMap() {
|
||||
@ -109,7 +110,7 @@ public class Util {
|
||||
if (distance < 1)
|
||||
distance = 1;
|
||||
|
||||
ArrayList<Block> blocks = new ArrayList<>();
|
||||
List<Block> blocks = new ArrayList<>();
|
||||
|
||||
try {
|
||||
Block bl = player.getTargetBlock(null, distance);
|
||||
@ -208,10 +209,6 @@ public class Util {
|
||||
return getFilesFromPackage(pckgname, null, "class");
|
||||
}
|
||||
|
||||
public static List<String> getFilesFromPackage(String pckgname, String cleaner) throws ClassNotFoundException {
|
||||
return getFilesFromPackage(pckgname, cleaner, "class");
|
||||
}
|
||||
|
||||
public static List<String> getFilesFromPackage(String pckgname, String cleaner, String fileType) throws ClassNotFoundException {
|
||||
List<String> result = new ArrayList<>();
|
||||
try {
|
||||
@ -234,8 +231,7 @@ public class Util {
|
||||
jarFile = new JarFile(jarPath);
|
||||
Enumeration<JarEntry> en = jarFile.entries();
|
||||
while (en.hasMoreElements()) {
|
||||
JarEntry entry = en.nextElement();
|
||||
String entryName = entry.getName();
|
||||
String entryName = en.nextElement().getName();
|
||||
|
||||
packageName = packageName.replace('.', '/');
|
||||
|
||||
|
@ -13,7 +13,7 @@ public class blockLoc {
|
||||
private World w;
|
||||
|
||||
public blockLoc(String loc) {
|
||||
this.fromString(loc);
|
||||
fromString(loc);
|
||||
}
|
||||
|
||||
public blockLoc(Location loc) {
|
||||
@ -77,17 +77,14 @@ public class blockLoc {
|
||||
}
|
||||
|
||||
public Block getBlock() {
|
||||
Location loc = this.getLocation();
|
||||
|
||||
if (loc == null)
|
||||
return null;
|
||||
|
||||
return loc.getBlock();
|
||||
Location loc = getLocation();
|
||||
return loc == null ? null : loc.getBlock();
|
||||
}
|
||||
|
||||
public Location getLocation() {
|
||||
if (worldName == null && this.w == null)
|
||||
if (worldName == null && w == null)
|
||||
return null;
|
||||
|
||||
World w = this.w == null ? Bukkit.getWorld(worldName) : this.w;
|
||||
if (w == null)
|
||||
return null;
|
||||
|
Loading…
Reference in New Issue
Block a user