get variables once instead of for each line
This commit is contained in:
parent
1338bc3d29
commit
edf396cdab
@ -120,16 +120,18 @@ public class BlockOptimization implements VillagerOptimizerModule, Listener {
|
|||||||
final Location entityLegs = interacted.getLocation();
|
final Location entityLegs = interacted.getLocation();
|
||||||
|
|
||||||
if (
|
if (
|
||||||
config.blocks_that_disable.contains(entityLegs.getBlock().getType()) // for slabs and sink in blocks
|
config.blocks_that_disable.contains(entityLegs.getBlock().getType()) // check for blocks inside the entity's legs because of slabs and sink-in blocks
|
||||||
|| config.blocks_that_disable.contains(entityLegs.clone().subtract(0,1,0).getBlock().getType())
|
|| config.blocks_that_disable.contains(entityLegs.clone().subtract(0,1,0).getBlock().getType())
|
||||||
) {
|
) {
|
||||||
if (!wVillager.isOptimized()) {
|
if (!wVillager.isOptimized()) {
|
||||||
if (wVillager.setOptimization(OptimizationType.BLOCK)) {
|
if (wVillager.setOptimization(OptimizationType.BLOCK)) {
|
||||||
if (shouldNotifyPlayer) {
|
if (shouldNotifyPlayer) {
|
||||||
Player player = event.getPlayer();
|
Player player = event.getPlayer();
|
||||||
|
final String vilType = wVillager.villager().getProfession().toString().toLowerCase();
|
||||||
|
final String blockType = entityLegs.getBlock().getType().toString().toLowerCase();
|
||||||
VillagerOptimizer.getLang(player.locale()).block_optimize_success.forEach(line -> player.sendMessage(line
|
VillagerOptimizer.getLang(player.locale()).block_optimize_success.forEach(line -> player.sendMessage(line
|
||||||
.replaceText(TextReplacementConfig.builder().matchLiteral("%villagertype%").replacement(wVillager.villager().getProfession().toString().toLowerCase()).build())
|
.replaceText(TextReplacementConfig.builder().matchLiteral("%villagertype%").replacement(vilType).build())
|
||||||
.replaceText(TextReplacementConfig.builder().matchLiteral("%blocktype%").replacement(entityLegs.getBlock().getType().toString().toLowerCase()).build())
|
.replaceText(TextReplacementConfig.builder().matchLiteral("%blocktype%").replacement(blockType).build())
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
if (shouldLog)
|
if (shouldLog)
|
||||||
@ -137,8 +139,10 @@ public class BlockOptimization implements VillagerOptimizerModule, Listener {
|
|||||||
} else {
|
} else {
|
||||||
if (shouldNotifyPlayer) {
|
if (shouldNotifyPlayer) {
|
||||||
Player player = event.getPlayer();
|
Player player = event.getPlayer();
|
||||||
|
final long optimizeCoolDown = wVillager.getOptimizeCooldown();
|
||||||
VillagerOptimizer.getLang(player.locale()).block_on_optimize_cooldown.forEach(line -> player.sendMessage(line
|
VillagerOptimizer.getLang(player.locale()).block_on_optimize_cooldown.forEach(line -> player.sendMessage(line
|
||||||
.replaceText(TextReplacementConfig.builder().matchLiteral("%time%").replacement(CommonUtils.formatTime(wVillager.getOptimizeCooldown())).build())));
|
.replaceText(TextReplacementConfig.builder().matchLiteral("%time%").replacement(CommonUtils.formatTime(optimizeCoolDown)).build()))
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -147,9 +151,11 @@ public class BlockOptimization implements VillagerOptimizerModule, Listener {
|
|||||||
wVillager.setOptimization(OptimizationType.OFF);
|
wVillager.setOptimization(OptimizationType.OFF);
|
||||||
if (shouldNotifyPlayer) {
|
if (shouldNotifyPlayer) {
|
||||||
Player player = event.getPlayer();
|
Player player = event.getPlayer();
|
||||||
|
final String vilType = wVillager.villager().getProfession().toString().toLowerCase();
|
||||||
|
final String blockType = entityLegs.getBlock().getType().toString().toLowerCase();
|
||||||
VillagerOptimizer.getLang(player.locale()).block_unoptimize_success.forEach(line -> player.sendMessage(line
|
VillagerOptimizer.getLang(player.locale()).block_unoptimize_success.forEach(line -> player.sendMessage(line
|
||||||
.replaceText(TextReplacementConfig.builder().matchLiteral("%villagertype%").replacement(wVillager.villager().getProfession().toString().toLowerCase()).build())
|
.replaceText(TextReplacementConfig.builder().matchLiteral("%villagertype%").replacement(vilType).build())
|
||||||
.replaceText(TextReplacementConfig.builder().matchLiteral("%blocktype%").replacement(entityLegs.getBlock().getType().toString().toLowerCase()).build())
|
.replaceText(TextReplacementConfig.builder().matchLiteral("%blocktype%").replacement(blockType).build())
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
if (shouldLog)
|
if (shouldLog)
|
||||||
|
@ -6,7 +6,6 @@ import me.xginko.villageroptimizer.config.Config;
|
|||||||
import me.xginko.villageroptimizer.enums.OptimizationType;
|
import me.xginko.villageroptimizer.enums.OptimizationType;
|
||||||
import me.xginko.villageroptimizer.models.WrappedVillager;
|
import me.xginko.villageroptimizer.models.WrappedVillager;
|
||||||
import me.xginko.villageroptimizer.utils.CommonUtils;
|
import me.xginko.villageroptimizer.utils.CommonUtils;
|
||||||
import net.kyori.adventure.text.Component;
|
|
||||||
import net.kyori.adventure.text.TextReplacementConfig;
|
import net.kyori.adventure.text.TextReplacementConfig;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.block.Block;
|
import org.bukkit.block.Block;
|
||||||
@ -85,18 +84,22 @@ public class WorkstationOptimization implements VillagerOptimizerModule, Listene
|
|||||||
if (closest.setOptimization(OptimizationType.WORKSTATION)) {
|
if (closest.setOptimization(OptimizationType.WORKSTATION)) {
|
||||||
if (shouldNotifyPlayer) {
|
if (shouldNotifyPlayer) {
|
||||||
Player player = event.getPlayer();
|
Player player = event.getPlayer();
|
||||||
for (Component line : VillagerOptimizer.getLang(player.locale()).workstation_unoptimize_success) player.sendMessage(line
|
final String vilType = closest.villager().getProfession().toString().toLowerCase();
|
||||||
.replaceText(TextReplacementConfig.builder().matchLiteral("%villagertype%").replacement(closest.villager().getProfession().toString().toLowerCase()).build())
|
final String workstation = placed.getType().toString().toLowerCase();
|
||||||
.replaceText(TextReplacementConfig.builder().matchLiteral("%workstation%").replacement(placed.getType().toString().toLowerCase()).build())
|
VillagerOptimizer.getLang(player.locale()).workstation_unoptimize_success.forEach(line -> player.sendMessage(line
|
||||||
);
|
.replaceText(TextReplacementConfig.builder().matchLiteral("%villagertype%").replacement(vilType).build())
|
||||||
|
.replaceText(TextReplacementConfig.builder().matchLiteral("%workstation%").replacement(workstation).build())
|
||||||
|
));
|
||||||
}
|
}
|
||||||
if (shouldLog)
|
if (shouldLog)
|
||||||
VillagerOptimizer.getLog().info(event.getPlayer().getName() + " optimized a villager using workstation: '" + placed.getType().toString().toLowerCase() + "'");
|
VillagerOptimizer.getLog().info(event.getPlayer().getName() + " optimized a villager using workstation: '" + placed.getType().toString().toLowerCase() + "'");
|
||||||
} else {
|
} else {
|
||||||
if (shouldNotifyPlayer) {
|
if (shouldNotifyPlayer) {
|
||||||
Player player = event.getPlayer();
|
Player player = event.getPlayer();
|
||||||
for (Component line : VillagerOptimizer.getLang(player.locale()).nametag_on_optimize_cooldown) player.sendMessage(line
|
final long optimizeCoolDown = closest.getOptimizeCooldown();
|
||||||
.replaceText(TextReplacementConfig.builder().matchLiteral("%time%").replacement(CommonUtils.formatTime(closest.getOptimizeCooldown())).build()));
|
VillagerOptimizer.getLang(player.locale()).nametag_on_optimize_cooldown.forEach(line -> player.sendMessage(line
|
||||||
|
.replaceText(TextReplacementConfig.builder().matchLiteral("%time%").replacement(CommonUtils.formatTime(optimizeCoolDown)).build())
|
||||||
|
));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -125,10 +128,12 @@ public class WorkstationOptimization implements VillagerOptimizerModule, Listene
|
|||||||
if (closest != null && closest.getOptimizationType().equals(OptimizationType.WORKSTATION)) {
|
if (closest != null && closest.getOptimizationType().equals(OptimizationType.WORKSTATION)) {
|
||||||
if (shouldNotifyPlayer) {
|
if (shouldNotifyPlayer) {
|
||||||
Player player = event.getPlayer();
|
Player player = event.getPlayer();
|
||||||
for (Component line : VillagerOptimizer.getLang(player.locale()).workstation_unoptimize_success) player.sendMessage(line
|
final String vilType = closest.villager().getProfession().toString().toLowerCase();
|
||||||
.replaceText(TextReplacementConfig.builder().matchLiteral("%villagertype%").replacement(closest.villager().getProfession().toString().toLowerCase()).build())
|
final String workstation = placed.getType().toString().toLowerCase();
|
||||||
.replaceText(TextReplacementConfig.builder().matchLiteral("%workstation%").replacement(placed.getType().toString().toLowerCase()).build())
|
VillagerOptimizer.getLang(player.locale()).workstation_unoptimize_success.forEach(line -> player.sendMessage(line
|
||||||
);
|
.replaceText(TextReplacementConfig.builder().matchLiteral("%villagertype%").replacement(vilType).build())
|
||||||
|
.replaceText(TextReplacementConfig.builder().matchLiteral("%workstation%").replacement(workstation).build())
|
||||||
|
));
|
||||||
}
|
}
|
||||||
if (shouldLog)
|
if (shouldLog)
|
||||||
VillagerOptimizer.getLog().info(event.getPlayer().getName() + " unoptimized a villager by breaking workstation: '" + placed.getType().toString().toLowerCase() + "'");
|
VillagerOptimizer.getLog().info(event.getPlayer().getName() + " unoptimized a villager by breaking workstation: '" + placed.getType().toString().toLowerCase() + "'");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user