improve messaging
This commit is contained in:
parent
38639979d6
commit
20b5b724c5
@ -66,10 +66,11 @@ public class OptVillagersRadius implements VillagerOptimizerCommand, TabComplete
|
||||
int specifiedRadius = Integer.parseInt(args[0]);
|
||||
|
||||
if (specifiedRadius > maxRadius) {
|
||||
final String maxRadiusStr = Integer.toString(maxRadius);
|
||||
VillagerOptimizer.getLang(player.locale()).command_radius_limit_exceed.forEach(line -> player.sendMessage(line
|
||||
.replaceText(TextReplacementConfig.builder().matchLiteral("%distance%").replacement(maxRadiusStr).build())
|
||||
));
|
||||
final TextReplacementConfig limit = TextReplacementConfig.builder()
|
||||
.matchLiteral("%distance%")
|
||||
.replacement(Integer.toString(maxRadius))
|
||||
.build();
|
||||
VillagerOptimizer.getLang(player.locale()).command_radius_limit_exceed.forEach(line -> player.sendMessage(line.replaceText(limit)));
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -95,26 +96,34 @@ public class OptVillagersRadius implements VillagerOptimizerCommand, TabComplete
|
||||
}
|
||||
|
||||
if (successCount <= 0 && failCount <= 0) {
|
||||
final String radius = Integer.toString(specifiedRadius);
|
||||
VillagerOptimizer.getLang(player.locale()).command_no_villagers_nearby.forEach(line -> player.sendMessage(line
|
||||
.replaceText(TextReplacementConfig.builder().matchLiteral("%radius%").replacement(radius).build())
|
||||
));
|
||||
final TextReplacementConfig radius = TextReplacementConfig.builder()
|
||||
.matchLiteral("%radius%")
|
||||
.replacement(Integer.toString(specifiedRadius))
|
||||
.build();
|
||||
VillagerOptimizer.getLang(player.locale()).command_no_villagers_nearby.forEach(line -> player.sendMessage(line.replaceText(radius)));
|
||||
return true;
|
||||
}
|
||||
|
||||
if (successCount > 0) {
|
||||
final String success = Integer.toString(successCount);
|
||||
final String radius = Integer.toString(specifiedRadius);
|
||||
final TextReplacementConfig success_amount = TextReplacementConfig.builder()
|
||||
.matchLiteral("%amount%")
|
||||
.replacement(Integer.toString(successCount))
|
||||
.build();
|
||||
final TextReplacementConfig radius = TextReplacementConfig.builder()
|
||||
.matchLiteral("%radius%")
|
||||
.replacement(Integer.toString(specifiedRadius))
|
||||
.build();
|
||||
VillagerOptimizer.getLang(player.locale()).command_optimize_success.forEach(line -> player.sendMessage(line
|
||||
.replaceText(TextReplacementConfig.builder().matchLiteral("%amount%").replacement(success).build())
|
||||
.replaceText(TextReplacementConfig.builder().matchLiteral("%radius%").replacement(radius).build())
|
||||
.replaceText(success_amount)
|
||||
.replaceText(radius)
|
||||
));
|
||||
}
|
||||
if (failCount > 0) {
|
||||
final String alreadyOptimized = Integer.toString(failCount);
|
||||
VillagerOptimizer.getLang(player.locale()).command_optimize_fail.forEach(line -> player.sendMessage(line
|
||||
.replaceText(TextReplacementConfig.builder().matchLiteral("%amount%").replacement(alreadyOptimized).build())
|
||||
));
|
||||
final TextReplacementConfig alreadyOptimized = TextReplacementConfig.builder()
|
||||
.matchLiteral("%amount%")
|
||||
.replacement(Integer.toString(failCount))
|
||||
.build();
|
||||
VillagerOptimizer.getLang(player.locale()).command_optimize_fail.forEach(line -> player.sendMessage(line.replaceText(alreadyOptimized)));
|
||||
}
|
||||
} catch (NumberFormatException e) {
|
||||
VillagerOptimizer.getLang(player.locale()).command_radius_invalid.forEach(player::sendMessage);
|
||||
|
@ -60,10 +60,11 @@ public class UnOptVillagersRadius implements VillagerOptimizerCommand, TabComple
|
||||
int specifiedRadius = Integer.parseInt(args[0]);
|
||||
|
||||
if (specifiedRadius > maxRadius) {
|
||||
final String maxRadiusStr = Integer.toString(maxRadius);
|
||||
VillagerOptimizer.getLang(player.locale()).command_radius_limit_exceed.forEach(line -> player.sendMessage(line
|
||||
.replaceText(TextReplacementConfig.builder().matchLiteral("%distance%").replacement(maxRadiusStr).build())
|
||||
));
|
||||
final TextReplacementConfig limit = TextReplacementConfig.builder()
|
||||
.matchLiteral("%distance%")
|
||||
.replacement(Integer.toString(maxRadius))
|
||||
.build();
|
||||
VillagerOptimizer.getLang(player.locale()).command_radius_limit_exceed.forEach(line -> player.sendMessage(line.replaceText(limit)));
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -85,16 +86,23 @@ public class UnOptVillagersRadius implements VillagerOptimizerCommand, TabComple
|
||||
}
|
||||
|
||||
if (successCount <= 0) {
|
||||
final String radius = Integer.toString(specifiedRadius);
|
||||
VillagerOptimizer.getLang(player.locale()).command_no_villagers_nearby.forEach(line -> player.sendMessage(line
|
||||
.replaceText(TextReplacementConfig.builder().matchLiteral("%radius%").replacement(radius).build())
|
||||
));
|
||||
final TextReplacementConfig radius = TextReplacementConfig.builder()
|
||||
.matchLiteral("%radius%")
|
||||
.replacement(Integer.toString(specifiedRadius))
|
||||
.build();
|
||||
VillagerOptimizer.getLang(player.locale()).command_no_villagers_nearby.forEach(line -> player.sendMessage(line.replaceText(radius)));
|
||||
} else {
|
||||
final String successfullyUnoptimized = Integer.toString(successCount);
|
||||
final String radius = Integer.toString(specifiedRadius);
|
||||
final TextReplacementConfig success_amount = TextReplacementConfig.builder()
|
||||
.matchLiteral("%amount%")
|
||||
.replacement(Integer.toString(successCount))
|
||||
.build();
|
||||
final TextReplacementConfig radius = TextReplacementConfig.builder()
|
||||
.matchLiteral("%radius%")
|
||||
.replacement(Integer.toString(specifiedRadius))
|
||||
.build();
|
||||
VillagerOptimizer.getLang(player.locale()).command_unoptimize_success.forEach(line -> player.sendMessage(line
|
||||
.replaceText(TextReplacementConfig.builder().matchLiteral("%amount%").replacement(successfullyUnoptimized).build())
|
||||
.replaceText(TextReplacementConfig.builder().matchLiteral("%radius%").replacement(radius).build())
|
||||
.replaceText(success_amount)
|
||||
.replaceText(radius)
|
||||
));
|
||||
}
|
||||
} catch (NumberFormatException e) {
|
||||
|
@ -79,10 +79,11 @@ public class LevelVillagers implements VillagerOptimizerModule, Listener {
|
||||
} else {
|
||||
if (shouldNotify) {
|
||||
Player player = (Player) event.getPlayer();
|
||||
final String timeLeft = CommonUtil.formatTime(wVillager.getLevelCooldownMillis(cooldown));
|
||||
VillagerOptimizer.getLang(player.locale()).villager_leveling_up.forEach(line -> player.sendMessage(line
|
||||
.replaceText(TextReplacementConfig.builder().matchLiteral("%time%").replacement(timeLeft).build())
|
||||
));
|
||||
final TextReplacementConfig timeLeft = TextReplacementConfig.builder()
|
||||
.matchLiteral("%time%")
|
||||
.replacement(CommonUtil.formatTime(wVillager.getLevelCooldownMillis(cooldown)))
|
||||
.build();
|
||||
VillagerOptimizer.getLang(player.locale()).villager_leveling_up.forEach(line -> player.sendMessage(line.replaceText(timeLeft)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -19,10 +19,6 @@ import org.bukkit.event.player.PlayerInteractEntityEvent;
|
||||
|
||||
public class RestockTrades implements VillagerOptimizerModule, Listener {
|
||||
|
||||
/*
|
||||
* TODO: Disable notify message for cooldown bypassers
|
||||
* */
|
||||
|
||||
private final VillagerCache villagerCache;
|
||||
private final long restock_delay_millis;
|
||||
private final boolean shouldLog, notifyPlayer;
|
||||
@ -65,14 +61,17 @@ public class RestockTrades implements VillagerOptimizerModule, Listener {
|
||||
if (!wVillager.isOptimized()) return;
|
||||
Player player = event.getPlayer();
|
||||
|
||||
if (wVillager.canRestock(restock_delay_millis) || player.hasPermission(Permissions.Bypass.RESTOCK_COOLDOWN.get())) {
|
||||
final boolean player_bypassing = player.hasPermission(Permissions.Bypass.RESTOCK_COOLDOWN.get());
|
||||
|
||||
if (wVillager.canRestock(restock_delay_millis) || player_bypassing) {
|
||||
wVillager.restock();
|
||||
wVillager.saveRestockTime();
|
||||
if (notifyPlayer) {
|
||||
final String timeLeft = CommonUtil.formatTime(wVillager.getRestockCooldownMillis(restock_delay_millis));
|
||||
VillagerOptimizer.getLang(player.locale()).trades_restocked.forEach(line -> player.sendMessage(line
|
||||
.replaceText(TextReplacementConfig.builder().matchLiteral("%time%").replacement(timeLeft).build()))
|
||||
);
|
||||
if (notifyPlayer && !player_bypassing) {
|
||||
final TextReplacementConfig timeLeft = TextReplacementConfig.builder()
|
||||
.matchLiteral("%time%")
|
||||
.replacement(CommonUtil.formatTime(wVillager.getRestockCooldownMillis(restock_delay_millis)))
|
||||
.build();
|
||||
VillagerOptimizer.getLang(player.locale()).trades_restocked.forEach(line -> player.sendMessage(line.replaceText(timeLeft)));
|
||||
}
|
||||
if (shouldLog)
|
||||
VillagerOptimizer.getLog().info("Restocked optimized villager at "+ wVillager.villager().getLocation());
|
||||
|
@ -115,11 +115,17 @@ public class OptimizeByBlock implements VillagerOptimizerModule, Listener {
|
||||
closestOptimizableVillager.setOptimization(OptimizationType.BLOCK);
|
||||
closestOptimizableVillager.saveOptimizeTime();
|
||||
if (shouldNotifyPlayer) {
|
||||
final String vilProfession = closestOptimizableVillager.villager().getProfession().toString().toLowerCase();
|
||||
final String placedType = placed.getType().toString().toLowerCase();
|
||||
final TextReplacementConfig vilProfession = TextReplacementConfig.builder()
|
||||
.matchLiteral("%vil_profession%")
|
||||
.replacement(closestOptimizableVillager.villager().getProfession().toString().toLowerCase())
|
||||
.build();
|
||||
final TextReplacementConfig placedMaterial = TextReplacementConfig.builder()
|
||||
.matchLiteral("%blocktype%")
|
||||
.replacement(placed.getType().toString().toLowerCase())
|
||||
.build();
|
||||
VillagerOptimizer.getLang(player.locale()).block_optimize_success.forEach(line -> player.sendMessage(line
|
||||
.replaceText(TextReplacementConfig.builder().matchLiteral("%vil_profession%").replacement(vilProfession).build())
|
||||
.replaceText(TextReplacementConfig.builder().matchLiteral("%blocktype%").replacement(placedType).build())
|
||||
.replaceText(vilProfession)
|
||||
.replaceText(placedMaterial)
|
||||
));
|
||||
}
|
||||
if (shouldLog)
|
||||
@ -127,9 +133,11 @@ public class OptimizeByBlock implements VillagerOptimizerModule, Listener {
|
||||
} else {
|
||||
closestOptimizableVillager.villager().shakeHead();
|
||||
if (shouldNotifyPlayer) {
|
||||
final String timeLeft = CommonUtil.formatTime(closestOptimizableVillager.getOptimizeCooldownMillis(cooldown));
|
||||
VillagerOptimizer.getLang(player.locale()).block_on_optimize_cooldown.forEach(line -> player.sendMessage(line
|
||||
.replaceText(TextReplacementConfig.builder().matchLiteral("%time%").replacement(timeLeft).build())));
|
||||
final TextReplacementConfig timeLeft = TextReplacementConfig.builder()
|
||||
.matchLiteral("%time%")
|
||||
.replacement(CommonUtil.formatTime(closestOptimizableVillager.getOptimizeCooldownMillis(cooldown)))
|
||||
.build();
|
||||
VillagerOptimizer.getLang(player.locale()).block_on_optimize_cooldown.forEach(line -> player.sendMessage(line.replaceText(timeLeft)));
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -163,11 +171,17 @@ public class OptimizeByBlock implements VillagerOptimizerModule, Listener {
|
||||
|
||||
closestOptimizedVillager.setOptimization(OptimizationType.NONE);
|
||||
if (shouldNotifyPlayer) {
|
||||
final String vilProfession = closestOptimizedVillager.villager().getProfession().toString().toLowerCase();
|
||||
final String brokenType = broken.getType().toString().toLowerCase();
|
||||
final TextReplacementConfig vilProfession = TextReplacementConfig.builder()
|
||||
.matchLiteral("%vil_profession%")
|
||||
.replacement(closestOptimizedVillager.villager().getProfession().toString().toLowerCase())
|
||||
.build();
|
||||
final TextReplacementConfig brokenMaterial = TextReplacementConfig.builder()
|
||||
.matchLiteral("%blocktype%")
|
||||
.replacement(broken.getType().toString().toLowerCase())
|
||||
.build();
|
||||
VillagerOptimizer.getLang(player.locale()).block_unoptimize_success.forEach(line -> player.sendMessage(line
|
||||
.replaceText(TextReplacementConfig.builder().matchLiteral("%vil_profession%").replacement(vilProfession).build())
|
||||
.replaceText(TextReplacementConfig.builder().matchLiteral("%blocktype%").replacement(brokenType).build())
|
||||
.replaceText(vilProfession)
|
||||
.replaceText(brokenMaterial)
|
||||
));
|
||||
}
|
||||
if (shouldLog)
|
||||
|
@ -69,7 +69,7 @@ public class OptimizeByNametag implements VillagerOptimizerModule, Listener {
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||
private void onPlayerNameEntity(PlayerInteractEntityEvent event) {
|
||||
private void onPlayerInteractEntity(PlayerInteractEntityEvent event) {
|
||||
if (!event.getRightClicked().getType().equals(EntityType.VILLAGER)) return;
|
||||
Player player = event.getPlayer();
|
||||
if (!player.hasPermission(Permissions.Optimize.NAMETAG.get())) return;
|
||||
@ -105,9 +105,11 @@ public class OptimizeByNametag implements VillagerOptimizerModule, Listener {
|
||||
event.setCancelled(true);
|
||||
villager.shakeHead();
|
||||
if (shouldNotifyPlayer) {
|
||||
final String time = CommonUtil.formatTime(wVillager.getOptimizeCooldownMillis(cooldown));
|
||||
VillagerOptimizer.getLang(player.locale()).nametag_on_optimize_cooldown.forEach(line -> player.sendMessage(line
|
||||
.replaceText(TextReplacementConfig.builder().matchLiteral("%time%").replacement(time).build())));
|
||||
final TextReplacementConfig timeLeft = TextReplacementConfig.builder()
|
||||
.matchLiteral("%time%")
|
||||
.replacement(CommonUtil.formatTime(wVillager.getOptimizeCooldownMillis(cooldown)))
|
||||
.build();
|
||||
VillagerOptimizer.getLang(player.locale()).nametag_on_optimize_cooldown.forEach(line -> player.sendMessage(line.replaceText(timeLeft)));
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
@ -99,11 +99,17 @@ public class OptimizeByWorkstation implements VillagerOptimizerModule, Listener
|
||||
closestOptimizableVillager.setOptimization(OptimizationType.WORKSTATION);
|
||||
closestOptimizableVillager.saveOptimizeTime();
|
||||
if (shouldNotifyPlayer) {
|
||||
final String vilProfession = closestOptimizableVillager.villager().getProfession().toString().toLowerCase();
|
||||
final String workstation = placed.getType().toString().toLowerCase();
|
||||
final TextReplacementConfig vilProfession = TextReplacementConfig.builder()
|
||||
.matchLiteral("%vil_profession%")
|
||||
.replacement(closestOptimizableVillager.villager().getProfession().toString().toLowerCase())
|
||||
.build();
|
||||
final TextReplacementConfig placedWorkstation = TextReplacementConfig.builder()
|
||||
.matchLiteral("%workstation%")
|
||||
.replacement(placed.getType().toString().toLowerCase())
|
||||
.build();
|
||||
VillagerOptimizer.getLang(player.locale()).workstation_optimize_success.forEach(line -> player.sendMessage(line
|
||||
.replaceText(TextReplacementConfig.builder().matchLiteral("%vil_profession%").replacement(vilProfession).build())
|
||||
.replaceText(TextReplacementConfig.builder().matchLiteral("%workstation%").replacement(workstation).build())
|
||||
.replaceText(vilProfession)
|
||||
.replaceText(placedWorkstation)
|
||||
));
|
||||
}
|
||||
if (shouldLog)
|
||||
@ -111,9 +117,12 @@ public class OptimizeByWorkstation implements VillagerOptimizerModule, Listener
|
||||
} else {
|
||||
closestOptimizableVillager.villager().shakeHead();
|
||||
if (shouldNotifyPlayer) {
|
||||
final String timeLeft = CommonUtil.formatTime(closestOptimizableVillager.getOptimizeCooldownMillis(cooldown));
|
||||
final TextReplacementConfig timeLeft = TextReplacementConfig.builder()
|
||||
.matchLiteral("%time%")
|
||||
.replacement(CommonUtil.formatTime(closestOptimizableVillager.getOptimizeCooldownMillis(cooldown)))
|
||||
.build();
|
||||
VillagerOptimizer.getLang(player.locale()).nametag_on_optimize_cooldown.forEach(line -> player.sendMessage(line
|
||||
.replaceText(TextReplacementConfig.builder().matchLiteral("%time%").replacement(timeLeft).build())
|
||||
.replaceText(timeLeft)
|
||||
));
|
||||
}
|
||||
}
|
||||
@ -150,11 +159,17 @@ public class OptimizeByWorkstation implements VillagerOptimizerModule, Listener
|
||||
|
||||
closestOptimizedVillager.setOptimization(OptimizationType.NONE);
|
||||
if (shouldNotifyPlayer) {
|
||||
final String vilProfession = closestOptimizedVillager.villager().getProfession().toString().toLowerCase();
|
||||
final String workstation = broken.getType().toString().toLowerCase();
|
||||
final TextReplacementConfig vilProfession = TextReplacementConfig.builder()
|
||||
.matchLiteral("%vil_profession%")
|
||||
.replacement(closestOptimizedVillager.villager().getProfession().toString().toLowerCase())
|
||||
.build();
|
||||
final TextReplacementConfig brokenWorkstation = TextReplacementConfig.builder()
|
||||
.matchLiteral("%workstation%")
|
||||
.replacement(broken.getType().toString().toLowerCase())
|
||||
.build();
|
||||
VillagerOptimizer.getLang(player.locale()).workstation_unoptimize_success.forEach(line -> player.sendMessage(line
|
||||
.replaceText(TextReplacementConfig.builder().matchLiteral("%vil_profession%").replacement(vilProfession).build())
|
||||
.replaceText(TextReplacementConfig.builder().matchLiteral("%workstation%").replacement(workstation).build())
|
||||
.replaceText(vilProfession)
|
||||
.replaceText(brokenWorkstation)
|
||||
));
|
||||
}
|
||||
if (shouldLog)
|
||||
|
Loading…
x
Reference in New Issue
Block a user