From 27fdd17086e08ae5bc50bcd7f313f54617638406 Mon Sep 17 00:00:00 2001 From: Kevinthegreat <92656833+kevinthegreat1@users.noreply.github.com> Date: Mon, 1 Jan 2024 15:40:18 +0800 Subject: Enforce character limit --- .../skyblocker/utils/scheduler/MessageScheduler.java | 20 +++++++++++++------- .../hysky/skyblocker/utils/scheduler/Scheduler.java | 2 +- 2 files changed, 14 insertions(+), 8 deletions(-) (limited to 'src/main/java/de/hysky/skyblocker/utils') diff --git a/src/main/java/de/hysky/skyblocker/utils/scheduler/MessageScheduler.java b/src/main/java/de/hysky/skyblocker/utils/scheduler/MessageScheduler.java index a67d8da0..43194938 100644 --- a/src/main/java/de/hysky/skyblocker/utils/scheduler/MessageScheduler.java +++ b/src/main/java/de/hysky/skyblocker/utils/scheduler/MessageScheduler.java @@ -1,6 +1,8 @@ package de.hysky.skyblocker.utils.scheduler; import net.minecraft.client.MinecraftClient; +import net.minecraft.util.StringHelper; +import org.apache.commons.lang3.StringUtils; /** * A scheduler for sending chat messages or commands. Use the instance in {@link #INSTANCE}. Do not instantiate this class. @@ -34,13 +36,17 @@ public class MessageScheduler extends Scheduler { } private void sendMessage(String message) { - if (MinecraftClient.getInstance().player != null) { - if (message.startsWith("/")) { - MinecraftClient.getInstance().player.networkHandler.sendCommand(message.substring(1)); - } else { - MinecraftClient.getInstance().inGameHud.getChatHud().addToMessageHistory(message); - MinecraftClient.getInstance().player.networkHandler.sendChatMessage(message); - } + MinecraftClient client = MinecraftClient.getInstance(); + if (client.player == null) { + Scheduler.LOGGER.error("[Skyblocker Message Scheduler] Tried to send a message while player is null: {}", message); + return; + } + message = StringHelper.truncateChat(StringUtils.normalizeSpace(message.trim())); + if (message.startsWith("/")) { + client.player.networkHandler.sendCommand(message.substring(1)); + } else { + client.inGameHud.getChatHud().addToMessageHistory(message); + client.player.networkHandler.sendChatMessage(message); } } diff --git a/src/main/java/de/hysky/skyblocker/utils/scheduler/Scheduler.java b/src/main/java/de/hysky/skyblocker/utils/scheduler/Scheduler.java index 139ac05e..2f5375fe 100644 --- a/src/main/java/de/hysky/skyblocker/utils/scheduler/Scheduler.java +++ b/src/main/java/de/hysky/skyblocker/utils/scheduler/Scheduler.java @@ -20,7 +20,7 @@ import java.util.function.Supplier; * A scheduler for running tasks at a later time. Tasks will be run synchronously on the main client thread. Use the instance stored in {@link #INSTANCE}. Do not instantiate this class. */ public class Scheduler { - private static final Logger LOGGER = LoggerFactory.getLogger(Scheduler.class); + protected static final Logger LOGGER = LoggerFactory.getLogger(Scheduler.class); public static final Scheduler INSTANCE = new Scheduler(); private int currentTick = 0; private final AbstractInt2ObjectMap> tasks = new Int2ObjectOpenHashMap<>(); -- cgit