1
0
mirror of https://github.com/Zrips/Jobs.git synced 2024-12-30 21:07:48 +01:00
This commit is contained in:
Zrips 2023-04-21 14:11:25 +03:00
commit d0f13db51d
2 changed files with 17 additions and 4 deletions

View File

@ -1415,15 +1415,27 @@ public final class Jobs extends JavaPlugin {
return 9 * level - 158; return 9 * level - 158;
} }
public static void perform(JobsPlayer jPlayer, ActionInfo info, BufferedPayment payment, Job job) { public static void perform(JobsPlayer jPlayer, ActionInfo info, BufferedPayment payment, Job job, Block block, Entity ent, LivingEntity victim) {
double expPayment = payment.get(CurrencyType.EXP); double expPayment = payment.get(CurrencyType.EXP);
JobsPrePaymentEvent jobsPrePaymentEvent = new JobsPrePaymentEvent(jPlayer.getPlayer(), noneJob, payment.get(CurrencyType.MONEY),
payment.get(CurrencyType.POINTS), block, ent, victim, info);
Bukkit.getServer().getPluginManager().callEvent(jobsPrePaymentEvent);
// If event is canceled, don't do anything
if (jobsPrePaymentEvent.isCancelled())
return;
payment.set(CurrencyType.MONEY, jobsPrePaymentEvent.getAmount());
payment.set(CurrencyType.POINTS, jobsPrePaymentEvent.getPoints());
JobsExpGainEvent jobsExpGainEvent = new JobsExpGainEvent(payment.getOfflinePlayer(), job, expPayment); JobsExpGainEvent jobsExpGainEvent = new JobsExpGainEvent(payment.getOfflinePlayer(), job, expPayment);
Bukkit.getServer().getPluginManager().callEvent(jobsExpGainEvent); Bukkit.getServer().getPluginManager().callEvent(jobsExpGainEvent);
// If event is canceled, don't do anything // If event is canceled, don't do anything
if (jobsExpGainEvent.isCancelled()) if (jobsExpGainEvent.isCancelled())
return; return;
payment.set(CurrencyType.EXP, jobsExpGainEvent.getExp());
boolean limited = true; boolean limited = true;
for (CurrencyType one : CurrencyType.values()) { for (CurrencyType one : CurrencyType.values()) {
if (jPlayer.isUnderLimit(one, payment.get(one))) { if (jPlayer.isUnderLimit(one, payment.get(one))) {

View File

@ -444,7 +444,7 @@ public final class JobsPaymentListener implements Listener {
if (fp != null) { if (fp != null) {
if (fp.getTime() > System.currentTimeMillis() && (fp.getInfo().getName().equalsIgnoreCase(bInfo.getName()) || if (fp.getTime() > System.currentTimeMillis() && (fp.getInfo().getName().equalsIgnoreCase(bInfo.getName()) ||
fp.getInfo().getNameWithSub().equalsIgnoreCase(bInfo.getNameWithSub()))) { fp.getInfo().getNameWithSub().equalsIgnoreCase(bInfo.getNameWithSub()))) {
Jobs.perform(fp.getPlayer(), fp.getInfo(), fp.getPayment(), fp.getJob()); Jobs.perform(fp.getPlayer(), fp.getInfo(), fp.getPayment(), fp.getJob(), block, null, null);
return; return;
} }
Jobs.FASTPAYMENT.remove(player.getUniqueId()); Jobs.FASTPAYMENT.remove(player.getUniqueId());
@ -485,7 +485,8 @@ public final class JobsPaymentListener implements Listener {
return; return;
// A tool should not trigger a BlockPlaceEvent (fixes stripping logs bug #940) // A tool should not trigger a BlockPlaceEvent (fixes stripping logs bug #940)
if (CMIMaterial.get(event.getItemInHand().getType()).isTool()) // Allow this to trigger with a hoe so players can get paid for farmland.
if (CMIMaterial.get(event.getItemInHand().getType()).isTool() && !event.getItemInHand().getType().toString().endsWith("_HOE"))
return; return;
Block block = event.getBlock(); Block block = event.getBlock();
@ -1971,7 +1972,7 @@ public final class JobsPaymentListener implements Listener {
if (fp.getTime() > System.currentTimeMillis() - 50L && (fp.getInfo().getName().equalsIgnoreCase(bInfo.getName()) || if (fp.getTime() > System.currentTimeMillis() - 50L && (fp.getInfo().getName().equalsIgnoreCase(bInfo.getName()) ||
fp.getInfo().getNameWithSub().equalsIgnoreCase(bInfo.getNameWithSub()))) { fp.getInfo().getNameWithSub().equalsIgnoreCase(bInfo.getNameWithSub()))) {
Jobs.perform(fp.getPlayer(), fp.getInfo(), fp.getPayment(), fp.getJob()); Jobs.perform(fp.getPlayer(), fp.getInfo(), fp.getPayment(), fp.getJob(), block, null, null);
breakCache.put(CMILocation.toString(block.getLocation(), ":", true, true), uuid); breakCache.put(CMILocation.toString(block.getLocation(), ":", true, true), uuid);
fp.setTime(System.currentTimeMillis() + 45); fp.setTime(System.currentTimeMillis() + 45);
} }