dont delegate to method
This commit is contained in:
parent
e14c212dff
commit
5c6bba5c2d
@ -123,24 +123,18 @@ public class OptimizeByWorkstation implements VillagerOptimizerModule, Listener
|
|||||||
if (toOptimize == null) return;
|
if (toOptimize == null) return;
|
||||||
WrappedVillager finalToOptimize = toOptimize;
|
WrappedVillager finalToOptimize = toOptimize;
|
||||||
|
|
||||||
pending_optimizations.put(placed.getLocation(), scheduler.runAtLocationLater(workstationLoc,
|
pending_optimizations.put(placed.getLocation(), scheduler.runAtLocationLater(workstationLoc, () -> {
|
||||||
() -> optimize(finalToOptimize, player, placed, event.isAsynchronous()),
|
if (finalToOptimize.canOptimize(cooldown_millis) || player.hasPermission(Bypass.WORKSTATION_COOLDOWN.get())) {
|
||||||
toOptimize.canLooseProfession() ? resettable_delay_millis : delay_millis,
|
VillagerOptimizeEvent optimizeEvent = new VillagerOptimizeEvent(finalToOptimize, OptimizationType.WORKSTATION, player, event.isAsynchronous());
|
||||||
TimeUnit.MILLISECONDS));
|
|
||||||
}
|
|
||||||
|
|
||||||
private void optimize(WrappedVillager toOptimize, Player player, Block placed, boolean async) {
|
|
||||||
if (toOptimize.canOptimize(cooldown_millis) || player.hasPermission(Bypass.WORKSTATION_COOLDOWN.get())) {
|
|
||||||
VillagerOptimizeEvent optimizeEvent = new VillagerOptimizeEvent(toOptimize, OptimizationType.WORKSTATION, player, async);
|
|
||||||
if (!optimizeEvent.callEvent()) return;
|
if (!optimizeEvent.callEvent()) return;
|
||||||
|
|
||||||
toOptimize.setOptimizationType(optimizeEvent.getOptimizationType());
|
finalToOptimize.setOptimizationType(optimizeEvent.getOptimizationType());
|
||||||
toOptimize.saveOptimizeTime();
|
finalToOptimize.saveOptimizeTime();
|
||||||
|
|
||||||
if (notify_player) {
|
if (notify_player) {
|
||||||
final TextReplacementConfig vilProfession = TextReplacementConfig.builder()
|
final TextReplacementConfig vilProfession = TextReplacementConfig.builder()
|
||||||
.matchLiteral("%vil_profession%")
|
.matchLiteral("%vil_profession%")
|
||||||
.replacement(toOptimize.villager().getProfession().toString().toLowerCase())
|
.replacement(finalToOptimize.villager().getProfession().toString().toLowerCase())
|
||||||
.build();
|
.build();
|
||||||
final TextReplacementConfig placedWorkstation = TextReplacementConfig.builder()
|
final TextReplacementConfig placedWorkstation = TextReplacementConfig.builder()
|
||||||
.matchLiteral("%workstation%")
|
.matchLiteral("%workstation%")
|
||||||
@ -156,17 +150,18 @@ public class OptimizeByWorkstation implements VillagerOptimizerModule, Listener
|
|||||||
VillagerOptimizer.getLog().info(player.getName() + " optimized a villager using workstation: '" +
|
VillagerOptimizer.getLog().info(player.getName() + " optimized a villager using workstation: '" +
|
||||||
placed.getType().toString().toLowerCase() + "'");
|
placed.getType().toString().toLowerCase() + "'");
|
||||||
} else {
|
} else {
|
||||||
CommonUtil.shakeHead(toOptimize.villager());
|
CommonUtil.shakeHead(finalToOptimize.villager());
|
||||||
if (notify_player) {
|
if (notify_player) {
|
||||||
final TextReplacementConfig timeLeft = TextReplacementConfig.builder()
|
final TextReplacementConfig timeLeft = TextReplacementConfig.builder()
|
||||||
.matchLiteral("%time%")
|
.matchLiteral("%time%")
|
||||||
.replacement(CommonUtil.formatTime(toOptimize.getOptimizeCooldownMillis(cooldown_millis)))
|
.replacement(CommonUtil.formatTime(finalToOptimize.getOptimizeCooldownMillis(cooldown_millis)))
|
||||||
.build();
|
.build();
|
||||||
VillagerOptimizer.getLang(player.locale()).nametag_on_optimize_cooldown.forEach(line -> player.sendMessage(line
|
VillagerOptimizer.getLang(player.locale()).nametag_on_optimize_cooldown.forEach(line -> player.sendMessage(line
|
||||||
.replaceText(timeLeft)
|
.replaceText(timeLeft)
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}, toOptimize.canLooseProfession() ? resettable_delay_millis : delay_millis, TimeUnit.MILLISECONDS));
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user