1
0
mirror of https://github.com/Zrips/Jobs.git synced 2025-01-02 14:29:07 +01:00

2nd improvements

This commit is contained in:
montlikadani 2021-04-28 21:10:34 +02:00
parent dbc0c8330a
commit c8b4eaa479
16 changed files with 86 additions and 78 deletions

View File

@ -87,8 +87,10 @@ public class ChatFilterRule {
public Matcher getMatcher(String msg) {
for (Pattern one : pattern) {
if (one.matcher(msg).find()) {
return one.matcher(msg);
Matcher matcher = one.matcher(msg);
if (matcher.find()) {
return matcher;
}
}
return null;

View File

@ -197,7 +197,8 @@ public class Placeholder {
if (isComplex()) {
String name = getName();
int i = 0;
for (String one : getName().split("_")) {
for (String one : name.split("_")) {
if (!one.startsWith("$"))
continue;
@ -409,7 +410,8 @@ public class Placeholder {
JobsPlayer user = uuid == null ? null : Jobs.getPlayerManager().getJobsPlayer(uuid);
// Placeholders by JobsPlayer object
if (user != null) {
NumberFormat format;
NumberFormat format = NumberFormat.getInstance(Locale.ENGLISH);
switch (placeHolder) {
case user_dailyquests_pending:
Integer pendingQuests = (int) user.getQuestProgressions().stream().filter(q -> !q.isCompleted()).count();
@ -451,7 +453,6 @@ public class Placeholder {
case user_points_fixed:
return Integer.toString((int) user.getPointsData().getCurrentPoints());
case user_total_points:
format = NumberFormat.getInstance(Locale.ENGLISH);
return format.format(user.getPointsData().getTotalPoints());
case user_issaved:
return convert(user.isSaved());
@ -511,10 +512,8 @@ public class Placeholder {
case user_jlevel_$1:
return j == null ? "0" : Integer.toString(j.getLevel());
case user_jexp_$1:
format = NumberFormat.getInstance(Locale.ENGLISH);
return j == null ? "0" : format.format(j.getExperience());
case user_jmaxexp_$1:
format = NumberFormat.getInstance(Locale.ENGLISH);
return j == null ? "0" : format.format(j.getMaxExperience());
case user_jexpunf_$1:
return j == null ? "0" : Double.toString(j.getExperience());

View File

@ -7,9 +7,11 @@ public class SignInfo {
private final List<jobsSign> allSigns = new ArrayList<>();
public void setAllSigns(List<jobsSign> AllSigns) {
public void setAllSigns(List<jobsSign> allSigns) {
this.allSigns.clear();
this.allSigns.addAll(AllSigns == null ? new ArrayList<>() : AllSigns);
if (allSigns != null)
this.allSigns.addAll(allSigns);
}
public List<jobsSign> getAllSigns() {

View File

@ -81,19 +81,21 @@ public class SignUtil {
signsByLocation.clear();
File file = new File(Jobs.getFolder(), "Signs.yml");
YamlConfiguration f = YamlConfiguration.loadConfiguration(file);
if (!f.isConfigurationSection("Signs"))
ConfigurationSection confCategory = YamlConfiguration.loadConfiguration(file).getConfigurationSection("Signs");
if (confCategory == null)
return;
ConfigurationSection confCategory = f.getConfigurationSection("Signs");
List<String> categoriesList = new ArrayList<>(confCategory.getKeys(false));
if (categoriesList.isEmpty())
return;
for (String category : categoriesList) {
ConfigurationSection nameSection = confCategory.getConfigurationSection(category);
if (nameSection == null)
continue;
jobsSign newTemp = new jobsSign();
if (nameSection.isString("World")) {
newTemp.setWorldName(nameSection.getString("World"));
newTemp.setX((int) nameSection.getDouble("X"));
@ -177,9 +179,9 @@ public class SignUtil {
if (type == null)
type = SignTopType.toplist;
String jobNameOrType = jobsSign.getIdentifier(job, type);
String jobNameOrType = jobsSign.getIdentifier(job, type).toLowerCase();
Map<String, jobsSign> signs = signsByType.get(jobNameOrType.toLowerCase());
Map<String, jobsSign> signs = signsByType.get(jobNameOrType);
if (signs == null || signs.isEmpty())
return false;
@ -209,7 +211,7 @@ public class SignUtil {
Block block = loc.getBlock();
if (!(block.getState() instanceof Sign)) {
if (!jobNameOrType.isEmpty()) {
Map<String, jobsSign> tt = signsByType.get(jobNameOrType.toLowerCase());
Map<String, jobsSign> tt = signsByType.get(jobNameOrType);
if (tt != null) {
tt.remove(jSign.locToBlockString());
}
@ -243,7 +245,7 @@ public class SignUtil {
String playerName = pl.getPlayerInfo().getName();
if (playerName.length() > 15) {
// We need to split 10 char of name, because of sign rows
playerName = playerName.split("(?<=\\G.{10})")[0] + "~";
playerName = playerName.split("(?<=\\G.{10})", 2)[0] + "~";
}
String line = "";
@ -273,7 +275,7 @@ public class SignUtil {
TopList pl = playerList.get(jSign.getNumber() - 1);
String playerName = pl.getPlayerInfo().getName();
if (playerName.length() > 15) {
playerName = playerName.split("(?<=\\G.{10})")[0] + "~";
playerName = playerName.split("(?<=\\G.{10})", 2)[0] + "~";
}
int no = jSign.getNumber() + number + 1;
@ -283,7 +285,7 @@ public class SignUtil {
switch (type) {
case toplist:
case gtoplist:
plugin.getComplement().setLine(sign, 2, Jobs.getLanguage().getMessage("signs.SpecialList.level", "[number]", no, "[player]", playerName, "[level]", pl.getLevel(), "[job]", signJobName));
plugin.getComplement().setLine(sign, 2, translateSignLine("signs.SpecialList.level", no, playerName, pl.getLevel(), signJobName));
break;
case questtoplist:
plugin.getComplement().setLine(sign, 2, Jobs.getLanguage().getMessage("signs.SpecialList.quests", "[number]", no, "[player]", playerName, "[quests]", pl.getLevel(), "[job]", signJobName));

View File

@ -97,7 +97,7 @@ public class jobsSign {
if (!string.contains(";"))
return;
String[] split = string.replace(',', '.').split(";");
String[] split = string.replace(',', '.').split(";", 4);
int x = 0, y = 0, z = 0;

View File

@ -22,14 +22,13 @@ public class leave implements Cmd {
}
Player pSender = (Player) sender;
String jobName = args[0];
Job job = Jobs.getJob(jobName);
Job job = Jobs.getJob(args[0]);
if (job == null) {
pSender.sendMessage(Jobs.getLanguage().getMessage("general.error.job"));
return true;
}
if (Jobs.getGCManager().UsePerPermissionForLeaving && !pSender.hasPermission("jobs.command.leave." + jobName.toLowerCase())) {
if (Jobs.getGCManager().UsePerPermissionForLeaving && !pSender.hasPermission("jobs.command.leave." + args[0].toLowerCase())) {
pSender.sendMessage(Jobs.getLanguage().getMessage("general.error.permission"));
return true;
}

View File

@ -21,17 +21,18 @@ public class quests implements Cmd {
@Override
public boolean perform(Jobs plugin, final CommandSender sender, String[] args) {
JobsPlayer jPlayer = null;
boolean isPlayer = sender instanceof Player;
if (args.length >= 1 && args[0].equals("next") && (!(args[0].equalsIgnoreCase("stop") || args[0].equalsIgnoreCase("start")))) {
if (args.length >= 1 && isPlayer && args[0].equalsIgnoreCase("next")) {
jPlayer = Jobs.getPlayerManager().getJobsPlayer((Player) sender);
jPlayer.resetQuests();
} else {
if (args.length >= 1 && (!(args[0].equalsIgnoreCase("stop") || args[0].equalsIgnoreCase("start")))) {
if (args.length >= 1 && !args[0].equalsIgnoreCase("stop") && !args[0].equalsIgnoreCase("start")) {
if (!Jobs.hasPermission(sender, "jobs.command.admin.quests", true))
return true;
jPlayer = Jobs.getPlayerManager().getJobsPlayer(args[0]);
} else if (sender instanceof Player)
} else if (isPlayer)
jPlayer = Jobs.getPlayerManager().getJobsPlayer((Player) sender);
}
@ -51,6 +52,7 @@ public class quests implements Cmd {
if (args.length >= 1) {
Boolean stopped = null;
String cmd = args[args.length == 1 ? 0 : 1];
if (cmd.equalsIgnoreCase("stop") && Jobs.hasPermission(sender, "jobs.command.admin.quests.stop", false)) {
stopped = true;
} else if (cmd.equalsIgnoreCase("start") && Jobs.hasPermission(sender, "jobs.command.admin.quests.start", false)) {
@ -58,10 +60,8 @@ public class quests implements Cmd {
}
if (stopped != null) {
for (JobProgression jobProg : jPlayer.getJobProgression()) {
for (QuestProgression q : jPlayer.getQuestProgressions(jobProg.getJob())) {
q.getQuest().setStopped(stopped);
}
for (QuestProgression q : jPlayer.getQuestProgressions()) {
q.getQuest().setStopped(stopped);
}
sender.sendMessage(Jobs.getLanguage().getMessage("command.quests.status.changed", "%status%",
@ -72,7 +72,8 @@ public class quests implements Cmd {
}
sender.sendMessage(Jobs.getLanguage().getMessage("command.quests.toplineseparator", "[playerName]", jPlayer.getName(), "[questsDone]", jPlayer.getDoneQuests()));
if (!(sender instanceof Player)) {
if (!isPlayer) {
return true;
}
@ -128,6 +129,7 @@ public class quests implements Cmd {
rm.addText(msg).addHover(hover).addCommand("jobs skipquest " + jobProg.getJob().getName() + " " + q.getQuest().getConfigName() + " " + jPlayer.getName());
} else
rm.addText(msg).addHover(hover);
rm.show(sender);
}
}

View File

@ -926,7 +926,6 @@ public class JobsPlayer {
* @return true if yes
*/
public boolean canGetPaid(ActionInfo info) {
List<JobProgression> progression = getJobProgression();
int numjobs = progression.size();
if (numjobs == 0) {
@ -1013,7 +1012,9 @@ public class JobsPlayer {
}
public void resetQuests() {
getJobProgression().forEach(one -> resetQuests(one.getJob()));
for (JobProgression prog : progression) {
resetQuests(prog.getJob());
}
}
public void getNewQuests() {
@ -1029,7 +1030,7 @@ public class JobsPlayer {
Quest q = quest.getJob().getNextQuest(getQuestNameList(quest.getJob(), null), getJobProgression(quest.getJob()).getLevel());
if (q == null) {
for (JobProgression one : this.getJobProgression()) {
for (JobProgression one : progression) {
if (one.getJob().isSame(quest.getJob()))
continue;
q = one.getJob().getNextQuest(getQuestNameList(one.getJob(), null), getJobProgression(one.getJob()).getLevel());
@ -1066,7 +1067,7 @@ public class JobsPlayer {
public List<QuestProgression> getQuestProgressions() {
List<QuestProgression> g = new ArrayList<>();
for (JobProgression one : getJobProgression()) {
for (JobProgression one : progression) {
g.addAll(getQuestProgressions(one.getJob()));
}
return g;

View File

@ -238,8 +238,8 @@ public class BufferedEconomy {
* @param payment {@link BufferedPayment}
*/
public void showPayment(BufferedPayment payment) {
if (payment.getOfflinePlayer() == null || !payment.getOfflinePlayer().isOnline() || !payment.containsPayment()
|| Jobs.getGCManager().aBarSilentMode)
if (Jobs.getGCManager().aBarSilentMode || payment.getOfflinePlayer() == null || !payment.getOfflinePlayer().isOnline()
|| !payment.containsPayment())
return;
UUID playerUUID = payment.getOfflinePlayer().getUniqueId();

View File

@ -45,8 +45,12 @@ public class PaymentData {
return payments.get(type).isReseted();
}
public Double getAmount(CurrencyType type) {
return !payments.containsKey(type) ? 0D : (int) (payments.get(type).getAmount() * 100) / 100D;
public double getAmount(CurrencyType type) {
if (type == null)
return 0D;
LimitsData data = payments.get(type);
return data == null ? 0D : (int) (data.getAmount() * 100) / 100D;
}
public Double getAmountBylimit(CurrencyType type, int limit) {

View File

@ -94,11 +94,13 @@ public class JobsListener implements Listener {
}
private boolean isInteractOk(Player player) {
if (!interactDelay.containsKey(player.getUniqueId())) {
Long delay = interactDelay.get(player.getUniqueId());
if (delay == null) {
interactDelay.put(player.getUniqueId(), System.currentTimeMillis());
return true;
}
long time = System.currentTimeMillis() - interactDelay.get(player.getUniqueId());
long time = System.currentTimeMillis() - delay;
interactDelay.put(player.getUniqueId(), System.currentTimeMillis());
return time > 100;
}
@ -124,8 +126,8 @@ public class JobsListener implements Listener {
if (player.getGameMode() == GameMode.CREATIVE)
event.setCancelled(true);
Block block = event.getClickedBlock();
Location loc = block.getLocation();
Location loc = event.getClickedBlock().getLocation();
if (event.getAction() == Action.LEFT_CLICK_BLOCK) {
Jobs.getSelectionManager().placeLoc1(player, loc);
player.sendMessage(Jobs.getLanguage().getMessage("command.area.output.selected1", "%x%", loc.getBlockX(), "%y%", loc.getBlockY(), "%z%", loc.getBlockZ()));
@ -424,7 +426,9 @@ public class JobsListener implements Listener {
}
for (Entry<Enchantment, Integer> oneE : enchants.entrySet()) {
if (oneItem.getEnchants().containsKey(oneE.getKey()) && oneItem.getEnchants().get(oneE.getKey()) <= oneE.getValue()) {
Integer value = oneItem.getEnchants().get(oneE.getKey());
if (value != null && value <= oneE.getValue()) {
return true;
}
}
@ -565,7 +569,7 @@ public class JobsListener implements Listener {
ItemStack item = event.getItem();
ArmorTypes type = ArmorTypes.matchType(item);
if (ArmorTypes.matchType(item) == null)
if (type == null)
return;
Location loc = event.getBlock().getLocation();

View File

@ -360,10 +360,8 @@ public class JobsPaymentListener implements Listener {
return;
ItemStack contents = event.getContents().getIngredient();
if (contents == null)
return;
Jobs.action(jPlayer, new ItemActionInfo(contents, ActionType.BREW));
if (contents != null)
Jobs.action(jPlayer, new ItemActionInfo(contents, ActionType.BREW));
}
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
@ -619,10 +617,10 @@ public class JobsPaymentListener implements Listener {
if (s == null)
continue;
if (CMIMaterial.isDye(s.getType()))
CMIMaterial mat = CMIMaterial.get(s);
if (mat.isDye())
dyeStack.add(s);
CMIMaterial mat = CMIMaterial.get(s);
if (mat != CMIMaterial.NONE && mat != CMIMaterial.AIR) {
y++;
@ -965,13 +963,15 @@ public class JobsPaymentListener implements Listener {
Enchantment enchant = oneEnchant.getKey();
if (enchant == null)
continue;
String enchantName = null;
try {
enchantName = enchant.getKey().getKey().toLowerCase().replace("_", "").replace("minecraft:", "");
} catch (Throwable e) {
CMIEnchantment ench = CMIEnchantment.get(enchant);
enchantName = ench == null ? null : ench.toString();
if (ench != null)
enchantName = ench.toString();
}
if (enchantName != null)
@ -986,13 +986,10 @@ public class JobsPaymentListener implements Listener {
if (!Jobs.getGCManager().PreventHopperFillUps)
return;
String type = event.getDestination().getType().toString();
if (!type.equalsIgnoreCase("FURNACE") && !type.equalsIgnoreCase("SMOKER") && !type.equalsIgnoreCase("BLAST_FURNACE"))
return;
if (event.getItem().getType() == Material.AIR)
return;
String type = event.getDestination().getType().toString();
Block block = null;
switch (type.toLowerCase()) {
@ -1008,7 +1005,7 @@ public class JobsPaymentListener implements Listener {
block = ((org.bukkit.block.BlastFurnace) event.getDestination().getHolder()).getBlock();
break;
default:
break;
return;
}
if (block == null || !Jobs.getGCManager().canPerformActionInWorld(block.getWorld()))
@ -1020,10 +1017,10 @@ public class JobsPaymentListener implements Listener {
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onInventoryMoveItemEventToBrewingStand(InventoryMoveItemEvent event) {
if (event.getDestination().getType() != InventoryType.BREWING)
if (!Jobs.getGCManager().PreventBrewingStandFillUps || event.getDestination().getType() != InventoryType.BREWING)
return;
if (!Jobs.getGCManager().PreventBrewingStandFillUps || event.getItem().getType() == Material.AIR)
if (event.getItem().getType() == Material.AIR)
return;
final BrewingStand stand = (BrewingStand) event.getDestination().getHolder();
@ -1227,11 +1224,10 @@ public class JobsPaymentListener implements Listener {
if (jDamager == null)
return;
if (lVictim instanceof Player && !lVictim.hasMetadata("NPC")) {
Player VPlayer = (Player) lVictim;
if (jDamager.getName().equalsIgnoreCase(VPlayer.getName()))
return;
}
boolean notNpc = lVictim instanceof Player && !lVictim.hasMetadata("NPC");
if (notNpc && jDamager.getName().equalsIgnoreCase(((Player) lVictim).getName()))
return;
if (Jobs.getGCManager().payForStackedEntities) {
if (JobsHook.WildStacker.isEnabled() && HookManager.getWildStackerHandler().isStackedEntity(lVictim)) {
@ -1252,7 +1248,7 @@ public class JobsPaymentListener implements Listener {
Jobs.action(jDamager, new EntityActionInfo(lVictim, ActionType.KILL), e.getDamager(), lVictim);
// Payment for killing player with particular job, except NPC's
if (lVictim instanceof Player && !lVictim.hasMetadata("NPC")) {
if (notNpc) {
JobsPlayer jPlayer = Jobs.getPlayerManager().getJobsPlayer((Player) lVictim);
if (jPlayer == null)
return;
@ -1368,13 +1364,14 @@ public class JobsPaymentListener implements Listener {
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onArmorstandBreak(EntityDeathEvent event) {
Entity ent = event.getEntity();
if (!ent.getType().toString().equalsIgnoreCase("ARMOR_STAND"))
return;
if (!(event.getEntity().getLastDamageCause() instanceof EntityDamageByEntityEvent))
if (!(ent.getLastDamageCause() instanceof EntityDamageByEntityEvent))
return;
EntityDamageByEntityEvent e = (EntityDamageByEntityEvent) event.getEntity().getLastDamageCause();
EntityDamageByEntityEvent e = (EntityDamageByEntityEvent) ent.getLastDamageCause();
//extra check for Citizens 2 sentry kills
if (!(e.getDamager() instanceof Player))
@ -1480,11 +1477,7 @@ public class JobsPaymentListener implements Listener {
if (Jobs.getGCManager().disablePaymentIfRiding && player.isInsideVehicle())
return;
JobsPlayer jPlayer = Jobs.getPlayerManager().getJobsPlayer(player);
if (jPlayer == null)
return;
Jobs.action(jPlayer, new ItemActionInfo(Jobs.getNms().getItemInMainHand(player), ActionType.EAT));
Jobs.action(Jobs.getPlayerManager().getJobsPlayer(player), new ItemActionInfo(Jobs.getNms().getItemInMainHand(player), ActionType.EAT));
}
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)

View File

@ -32,10 +32,10 @@ public class TabComplete implements TabCompleter {
for (int i = 1; i <= args.length; i++) {
if (args.length == i + 1) {
if (!Jobs.getGCManager().getCommandArgs().containsKey(first))
List<String> argsList = Jobs.getGCManager().getCommandArgs().get(first);
if (argsList == null)
break;
List<String> argsList = Jobs.getGCManager().getCommandArgs().get(first);
if (argsList.size() < i)
continue;

View File

@ -64,8 +64,7 @@ public class Util {
name = name.replaceAll("[_|.|-]", "");
for (World one : Bukkit.getWorlds()) {
String n = one.getName().replaceAll("[_|.|-]", "");
if (n.equalsIgnoreCase(name))
if (one.getName().replaceAll("[_|.|-]", "").equalsIgnoreCase(name))
return one;
}

View File

@ -52,7 +52,8 @@ public class blockLoc {
public boolean fromString(String loc) {
if (!loc.contains(":"))
return false;
String[] split = loc.split(":");
String[] split = loc.split(":", 4);
if (split.length == 0) {
return false;
}

View File

@ -32,7 +32,7 @@ public class Complement2 implements Complement {
} catch (NoSuchMethodError e) {
}
return dName == null ? null : serialize(dName);
return dName == null ? "" : serialize(dName);
}
@Override