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