Optimized chat message system
This commit is contained in:
@ -49,41 +49,39 @@ public abstract class PlayerManagerMixin {
|
|||||||
|
|
||||||
@Inject(method = {"broadcast(Lnet/minecraft/network/message/SignedMessage;Lnet/minecraft/server/network/ServerPlayerEntity;Lnet/minecraft/network/message/MessageType$Parameters;)V"}, at = {@At("HEAD")}, cancellable = true)
|
@Inject(method = {"broadcast(Lnet/minecraft/network/message/SignedMessage;Lnet/minecraft/server/network/ServerPlayerEntity;Lnet/minecraft/network/message/MessageType$Parameters;)V"}, at = {@At("HEAD")}, cancellable = true)
|
||||||
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) {
|
||||||
String rawMessage = message.getContent().getString().trim();
|
String rawMessage = message.getContent().getString().trim();
|
||||||
if (sender != null && ConfigManager.getConfig().chatCalcEnabled) {
|
boolean isCalcEnabled = ConfigManager.getConfig().chatCalcEnabled;
|
||||||
|
boolean isMsgEnabled = ConfigManager.getConfig().chatMessageEnabled;
|
||||||
|
|
||||||
|
String processedMessage = rawMessage;
|
||||||
|
|
||||||
|
if (isCalcEnabled) {
|
||||||
String expression = rawMessage.endsWith("=") ? rawMessage.substring(0, rawMessage.length() - 1).trim() : rawMessage;
|
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;
|
StringBuilder sb = new StringBuilder(rawMessage).append("§6");
|
||||||
rawMessage += "§6";
|
|
||||||
if (rawMessage.contains(" ")) rawMessage += " ";
|
if (rawMessage.contains(" ")) sb.append(" ");
|
||||||
if (!old.trim().endsWith("=")) rawMessage += "=";
|
if (!rawMessage.endsWith("=")) sb.append("=");
|
||||||
if (rawMessage.contains(" ")) rawMessage += " ";
|
if (rawMessage.contains(" ")) sb.append(" ");
|
||||||
rawMessage += (result.endsWith(".0")) ? result.substring(0, result.length() - 2) : result;
|
|
||||||
} catch (Exception e) {
|
sb.append(result.endsWith(".0") ? result.substring(0, result.length() - 2) : result);
|
||||||
}
|
processedMessage = sb.toString();
|
||||||
|
} catch (Exception ignored) {}
|
||||||
}
|
}
|
||||||
Text text = Text.literal(String.format(ConfigManager.getConfig().chatMessage, sender.getName().getString(), rawMessage));
|
|
||||||
sender.getServer().getPlayerManager().broadcast(text, false);
|
if (isMsgEnabled) {
|
||||||
|
String formatted = String.format(ConfigManager.getConfig().chatMessage, sender.getName().getString(), processedMessage);
|
||||||
|
sender.getServer().getPlayerManager().broadcast(Text.literal(formatted), false);
|
||||||
|
} else if (isCalcEnabled) {
|
||||||
|
String formatted = "<" + sender.getName().getString() + "> " + processedMessage;
|
||||||
|
sender.getServer().getPlayerManager().broadcast(Text.literal(formatted), false);
|
||||||
|
}
|
||||||
|
|
||||||
ci.cancel();
|
ci.cancel();
|
||||||
} else if (sender != null && ConfigManager.getConfig().chatCalcEnabled) {
|
|
||||||
String rawMessage = message.getContent().getString().trim();
|
|
||||||
String expression = rawMessage.endsWith("=") ? rawMessage.substring(0, rawMessage.length() - 1).trim() : rawMessage;
|
|
||||||
try {
|
|
||||||
String result = String.valueOf(evaluateExpression(expression));
|
|
||||||
String old = rawMessage;
|
|
||||||
rawMessage += "§6";
|
|
||||||
if (rawMessage.contains(" ")) rawMessage += " ";
|
|
||||||
if (!old.trim().endsWith("=")) rawMessage += "=";
|
|
||||||
if (rawMessage.contains(" ")) rawMessage += " ";
|
|
||||||
rawMessage += (result.endsWith(".0")) ? result.substring(0, result.length() - 2) : result;
|
|
||||||
Text formattedMessage = Text.literal("<" + sender.getName().getString() + "> " + rawMessage);
|
|
||||||
sender.getServer().getPlayerManager().broadcast(formattedMessage, false);
|
|
||||||
ci.cancel();
|
|
||||||
} catch (Exception e) {
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private double evaluateExpression(String expression) {
|
private double evaluateExpression(String expression) {
|
||||||
|
Reference in New Issue
Block a user