Added color to Chat Calc answer & made optional to add an equals sign

This commit is contained in:
2025-04-12 16:19:36 +02:00
parent 9325e24c5c
commit 4b5b697883

View File

@ -51,10 +51,14 @@ public abstract class PlayerManagerMixin {
private void onBroadcast(SignedMessage message, ServerPlayerEntity sender, MessageType.Parameters parameters, CallbackInfo ci) { private void onBroadcast(SignedMessage message, ServerPlayerEntity sender, MessageType.Parameters parameters, CallbackInfo ci) {
if (sender != null && ConfigManager.getConfig().chatMessageEnabled) { if (sender != null && ConfigManager.getConfig().chatMessageEnabled) {
String rawMessage = message.getContent().getString().trim(); String rawMessage = message.getContent().getString().trim();
if (sender != null && ConfigManager.getConfig().chatCalcEnabled && rawMessage.endsWith("=")) { if (sender != null && ConfigManager.getConfig().chatCalcEnabled) {
String expression = rawMessage.substring(0, rawMessage.length() - 1).trim(); String expression = rawMessage.endsWith("=") ? rawMessage.substring(0, rawMessage.length() - 1).trim() : rawMessage;
try { try {
String result = String.valueOf(evaluateExpression(expression)); String result = String.valueOf(evaluateExpression(expression));
String old = rawMessage;
rawMessage += "§6";
if (rawMessage.contains(" ")) rawMessage += " ";
if (!old.trim().endsWith("=")) rawMessage += "=";
if (rawMessage.contains(" ")) rawMessage += " "; if (rawMessage.contains(" ")) rawMessage += " ";
rawMessage += (result.endsWith(".0")) ? result.substring(0, result.length() - 2) : result; rawMessage += (result.endsWith(".0")) ? result.substring(0, result.length() - 2) : result;
} catch (Exception e) { } catch (Exception e) {
@ -65,10 +69,13 @@ public abstract class PlayerManagerMixin {
ci.cancel(); ci.cancel();
} else if (sender != null && ConfigManager.getConfig().chatCalcEnabled) { } else if (sender != null && ConfigManager.getConfig().chatCalcEnabled) {
String rawMessage = message.getContent().getString().trim(); String rawMessage = message.getContent().getString().trim();
if (rawMessage.endsWith("=")) { String expression = rawMessage.endsWith("=") ? rawMessage.substring(0, rawMessage.length() - 1).trim() : rawMessage;
String expression = rawMessage.substring(0, rawMessage.length() - 1).trim();
try { try {
String result = String.valueOf(evaluateExpression(expression)); String result = String.valueOf(evaluateExpression(expression));
String old = rawMessage;
rawMessage += "§6";
if (rawMessage.contains(" ")) rawMessage += " ";
if (!old.trim().endsWith("=")) rawMessage += "=";
if (rawMessage.contains(" ")) rawMessage += " "; if (rawMessage.contains(" ")) rawMessage += " ";
rawMessage += (result.endsWith(".0")) ? result.substring(0, result.length() - 2) : result; rawMessage += (result.endsWith(".0")) ? result.substring(0, result.length() - 2) : result;
Text formattedMessage = Text.literal("<" + sender.getName().getString() + "> " + rawMessage); Text formattedMessage = Text.literal("<" + sender.getName().getString() + "> " + rawMessage);
@ -78,7 +85,6 @@ public abstract class PlayerManagerMixin {
} }
} }
} }
}
private double evaluateExpression(String expression) { private double evaluateExpression(String expression) {
return evaluate(expression.replaceAll("\\s", ""), new int[]{0}); return evaluate(expression.replaceAll("\\s", ""), new int[]{0});