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

Improve using player uuids in shop gui as items

This commit is contained in:
montlikadani 2021-05-06 10:10:47 +02:00
parent 735137cd04
commit 97050a5de0
4 changed files with 70 additions and 62 deletions

View File

@ -955,8 +955,6 @@ public class ConfigManager {
// Translating unicode
jobFullName = StringEscapeUtils.unescapeJava(jobFullName);
String jobDisplayName = jobSection.getString("displayName");
int maxLevel = jobSection.getInt("max-level");
if (maxLevel < 0)
maxLevel = 0;
@ -1294,35 +1292,6 @@ public class ConfigManager {
continue;
}
List<String> lore = itemSection.getStringList("lore");
for (int a = 0; a < lore.size(); a++) {
lore.set(a, CMIChatColor.translate(lore.get(a)));
}
Map<Enchantment, Integer> enchants = new HashMap<>();
if (itemSection.isList("enchants"))
for (String eachLine : itemSection.getStringList("enchants")) {
if (!eachLine.contains("="))
continue;
String[] split = eachLine.split("=", 2);
Enchantment ench = CMIEnchantment.getEnchantment(split[0]);
if (ench == null)
continue;
int level = -1;
try {
level = Integer.parseInt(split[1]);
} catch (NumberFormatException e) {
}
if (level != -1)
enchants.put(ench, level);
}
String node = itemKey.toLowerCase();
CMIMaterial mat = null;
if (itemSection.isInt("id")) {
@ -1336,11 +1305,40 @@ public class ConfigManager {
continue;
}
List<String> lore = itemSection.getStringList("lore");
for (int a = 0; a < lore.size(); a++) {
lore.set(a, CMIChatColor.translate(lore.get(a)));
}
Map<Enchantment, Integer> enchants = new HashMap<>();
for (String eachLine : itemSection.getStringList("enchants")) {
if (!eachLine.contains("="))
continue;
String[] split = eachLine.split("=", 2);
Enchantment ench = CMIEnchantment.getEnchantment(split[0]);
if (ench == null)
continue;
int level = -1;
try {
level = Integer.parseInt(split[1]);
} catch (NumberFormatException e) {
}
if (level != -1)
enchants.put(ench, level);
}
String node = itemKey.toLowerCase();
jobLimitedItems.put(node, new JobLimitedItems(node, mat, 1, itemSection.getString("name"), lore, enchants, itemSection.getInt("level")));
}
}
Job job = new Job(jobKey, jobDisplayName, jobFullName, jobShortName, description, color, maxExpEquation, displayMethod, maxLevel, vipmaxLevel, maxSlots, jobPermissions, jobCommand,
Job job = new Job(jobKey, jobSection.getString("displayName"), jobFullName, jobShortName, description,
color, maxExpEquation, displayMethod, maxLevel, vipmaxLevel, maxSlots, jobPermissions, jobCommand,
jobConditions, jobItems, jobLimitedItems, jobSection.getStringList("cmd-on-join"),
jobSection.getStringList("cmd-on-leave"), guiItem, guiSlot, bossbar, rejoinCd,
jobSection.getStringList("world-blacklist"));
@ -1355,21 +1353,24 @@ public class ConfigManager {
job.setIgnoreMaxJobs(jobSection.getBoolean("ignore-jobs-max"));
job.setReversedWorldBlacklist(jobSection.getBoolean("reverse-world-blacklist-functionality"));
if (jobSection.isConfigurationSection("Quests")) {
ConfigurationSection qsection = jobSection.getConfigurationSection("Quests");
if (qsection != null) {
List<Quest> quests = new ArrayList<>();
ConfigurationSection qsection = jobSection.getConfigurationSection("Quests");
for (String one : qsection.getKeys(false)) {
try {
ConfigurationSection sqsection = qsection.getConfigurationSection(one);
if (sqsection == null) {
if (sqsection == null)
continue;
}
Quest quest = new Quest(sqsection.getString("Name", one), job);
if (sqsection.isString("Target")) {
ActionType actionType = ActionType.getByName(sqsection.getString("Action"));
if (actionType == null)
continue;
KeyValues kv = getKeyValue(sqsection.getString("Target").toUpperCase(), actionType, jobFullName);
if (kv != null) {
int amount = sqsection.getInt("Amount", 1);
@ -1380,6 +1381,7 @@ public class ConfigManager {
if (sqsection.isList("Objectives")) {
for (String oneObjective : sqsection.getStringList("Objectives")) {
String[] split = oneObjective.split(";", 3);
if (split.length < 2) {
log.warning("Job " + jobKey + " has incorrect quest objective (" + oneObjective + ")!");
continue;
@ -1387,6 +1389,9 @@ public class ConfigManager {
try {
ActionType actionType = ActionType.getByName(split[0]);
if (actionType == null)
continue;
String mats = split[1].toUpperCase();
String[] co = mats.split(",");
@ -1524,16 +1529,14 @@ public class ConfigManager {
subType = keyValue.getSubType(),
meta = keyValue.getMeta();
double income = section.getDouble("income", 0.0);
double income = section.getDouble("income");
income = updateValue(CurrencyType.MONEY, income);
double points = section.getDouble("points", 0.0);
double points = section.getDouble("points");
points = updateValue(CurrencyType.POINTS, points);
double experience = section.getDouble("experience", 0.0);
double experience = section.getDouble("experience");
experience = updateValue(CurrencyType.EXP, experience);
int fromlevel = 1;
if (section.isInt("from-level"))
fromlevel = section.getInt("from-level");
int fromlevel = section.getInt("from-level", 1);
int untilLevel = -1;
if (section.isInt("until-level")) {

View File

@ -198,20 +198,20 @@ public class RestrictedAreaManager {
ConfigurationSection areaSection = conf.getConfigurationSection("restrictedareas");
if (areaSection != null) {
for (String areaKey : areaSection.getKeys(false)) {
double multiplier = conf.getDouble("restrictedareas." + areaKey + ".multiplier");
double multiplier = areaSection.getDouble(areaKey + ".multiplier");
if (conf.isBoolean("restrictedareas." + areaKey + ".WG")) {
if (areaSection.isBoolean(areaKey + ".WG")) {
addNew(new RestrictedArea(areaKey, areaKey, multiplier));
worldGuardArea = true;
} else {
World world = Bukkit.getServer().getWorld(conf.getString("restrictedareas." + areaKey + ".world", ""));
World world = Bukkit.getServer().getWorld(areaSection.getString(areaKey + ".world", ""));
if (world == null)
continue;
Location point1 = new Location(world, conf.getDouble("restrictedareas." + areaKey + ".point1.x"), conf.getDouble("restrictedareas." + areaKey
+ ".point1.y"), conf.getDouble("restrictedareas." + areaKey + ".point1.z"));
Location point1 = new Location(world, areaSection.getDouble(areaKey + ".point1.x"), areaSection.getDouble(areaKey
+ ".point1.y"), areaSection.getDouble(areaKey + ".point1.z"));
Location point2 = new Location(world, conf.getDouble("restrictedareas." + areaKey + ".point2.x"), conf.getDouble("restrictedareas." + areaKey
+ ".point2.y"), conf.getDouble("restrictedareas." + areaKey + ".point2.z"));
Location point2 = new Location(world, areaSection.getDouble(areaKey + ".point2.x"), areaSection.getDouble(areaKey
+ ".point2.y"), areaSection.getDouble(areaKey + ".point2.z"));
addNew(new RestrictedArea(areaKey, new CuboidArea(point1, point2), multiplier));
}
}

View File

@ -5,6 +5,7 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import java.util.Map.Entry;
import org.bukkit.Bukkit;
@ -34,7 +35,6 @@ import com.gamingmesh.jobs.container.Job;
import com.gamingmesh.jobs.container.JobItems;
import com.gamingmesh.jobs.container.JobProgression;
import com.gamingmesh.jobs.container.JobsPlayer;
import com.gamingmesh.jobs.container.PlayerPoints;
import com.gamingmesh.jobs.container.ShopItem;
import com.gamingmesh.jobs.stuff.GiveItem;
@ -110,10 +110,7 @@ public class ShopManager {
JobsPlayer jPlayer = Jobs.getPlayerManager().getJobsPlayer(player);
PlayerPoints pointsInfo = jPlayer.getPointsData();
double points = 0D;
if (pointsInfo != null)
points = (int) (pointsInfo.getCurrentPoints() * 100.0) / 100.0;
double points = (int) (jPlayer.getPointsData().getCurrentPoints() * 100.0) / 100.0;
for (int i = 0; i < ls.size(); i++) {
ShopItem item = ls.get(i);
@ -201,8 +198,13 @@ public class ShopManager {
if (item.isHeadOwner()) {
Jobs.getNms().setSkullOwner(skullMeta, jPlayer.getPlayer());
} else {
Jobs.getNms().setSkullOwner(skullMeta, Bukkit.getOfflinePlayer(item.getCustomHead()));
try {
Jobs.getNms().setSkullOwner(skullMeta, Bukkit.getOfflinePlayer(UUID.fromString(item.getCustomHead())));
} catch (IllegalArgumentException ex) {
Jobs.getNms().setSkullOwner(skullMeta, Bukkit.getOfflinePlayer(item.getCustomHead()));
}
}
guiItem.setItemMeta(skullMeta);
} else
guiItem.setItemMeta(meta);
@ -231,13 +233,14 @@ public class ShopManager {
}
}
if (pointsInfo == null || pointsInfo.getCurrentPoints() < item.getPrice()) {
if (jPlayer.getPointsData().getCurrentPoints() < item.getPrice()) {
player.sendMessage(Jobs.getLanguage().getMessage("command.shop.info.NoPoints"));
return;
}
if (item.getRequiredTotalLevels() != -1 && jPlayer.getTotalLevels() < item.getRequiredTotalLevels()) {
player.sendMessage(Jobs.getLanguage().getMessage("command.shop.info.NoTotalLevel", "%totalLevel%", jPlayer.getTotalLevels()));
int totalLevels = jPlayer.getTotalLevels();
if (item.getRequiredTotalLevels() != -1 && totalLevels < item.getRequiredTotalLevels()) {
player.sendMessage(Jobs.getLanguage().getMessage("command.shop.info.NoTotalLevel", "%totalLevel%", totalLevels));
return;
}
@ -260,7 +263,7 @@ public class ShopManager {
GiveItem.giveItemForPlayer(player, one.getItemStack(player));
}
pointsInfo.takePoints(item.getPrice());
jPlayer.getPointsData().takePoints(item.getPrice());
Jobs.getJobsDAO().savePoints(jPlayer);
player.sendMessage(Jobs.getLanguage().getMessage("command.shop.info.Paid", "%amount%", item.getPrice()));
}
@ -437,8 +440,10 @@ public class ShopManager {
Object potionData = null;
if (itemSection.contains("potion-type")) {
PotionType type = PotionType.valueOf(itemSection.getString("potion-type", "speed").toUpperCase());
if (type == null) {
PotionType type;
try {
type = PotionType.valueOf(itemSection.getString("potion-type", "speed").toUpperCase());
} catch (IllegalArgumentException ex) {
type = PotionType.SPEED;
}

View File

@ -18,7 +18,7 @@ public class Quest {
private Long validUntil = 0L;
private int chance = 100, minLvl = 0;
private Integer maxLvl = null;
private Integer maxLvl;
private final List<String> rewardCmds = new ArrayList<>(), rewards = new ArrayList<>(), area = new ArrayList<>();