forked from ChomeNS/chomens-bot-java
STUFF
This commit is contained in:
parent
889f9ed137
commit
b172000ac1
7 changed files with 81 additions and 84 deletions
|
@ -69,14 +69,19 @@ public class ChatPlugin extends Bot.Listener {
|
|||
public void packetReceived (ClientboundSystemChatPacket packet) {
|
||||
final Component component = packet.getContent();
|
||||
|
||||
try {
|
||||
final String key = ((TranslatableComponent) component).key();
|
||||
if (
|
||||
component instanceof TextComponent t_component &&
|
||||
t_component.content().length() > 15_000
|
||||
) return;
|
||||
|
||||
if (component instanceof TranslatableComponent t_component) {
|
||||
final String key = t_component.key();
|
||||
|
||||
if (
|
||||
key.equals("advMode.setCommand.success") ||
|
||||
key.equals("advMode.notAllowed")
|
||||
) return;
|
||||
} catch (ClassCastException ignored) {}
|
||||
}
|
||||
|
||||
PlayerMessage playerMessage = null;
|
||||
|
||||
|
@ -86,20 +91,15 @@ public class ChatPlugin extends Bot.Listener {
|
|||
}
|
||||
|
||||
boolean isCommandSuggestions = false;
|
||||
try {
|
||||
final String id = ((TextComponent) component).content();
|
||||
if (component instanceof TextComponent t_component) {
|
||||
final String id = t_component.content();
|
||||
|
||||
if (id.equals(bot.commandSuggestion.id)) isCommandSuggestions = true;
|
||||
} catch (Exception ignored) {}
|
||||
|
||||
final String string = ComponentUtilities.stringify(component);
|
||||
final String ansi = ComponentUtilities.stringifyAnsi(component);
|
||||
}
|
||||
|
||||
for (Listener listener : listeners) {
|
||||
if (string.length() < 25_000) {
|
||||
if (!isCommandSuggestions) listener.systemMessageReceived(component, string, ansi);
|
||||
listener.systemMessageReceived(component, isCommandSuggestions, string, ansi);
|
||||
}
|
||||
if (!isCommandSuggestions) listener.systemMessageReceived(component);
|
||||
listener.systemMessageReceived(component, isCommandSuggestions);
|
||||
|
||||
if (playerMessage != null) listener.playerMessageReceived(playerMessage);
|
||||
}
|
||||
|
@ -140,13 +140,6 @@ public class ChatPlugin extends Bot.Listener {
|
|||
|
||||
final String translation = getTranslationByChatType(packet.getChatType());
|
||||
|
||||
String string = null;
|
||||
String ansi = null;
|
||||
if (translation != null && unsignedContent != null) {
|
||||
string = ComponentUtilities.stringify(unsignedContent);
|
||||
ansi = ComponentUtilities.stringifyAnsi(unsignedContent);
|
||||
}
|
||||
|
||||
for (Listener listener : listeners) {
|
||||
listener.playerMessageReceived(playerMessage);
|
||||
|
||||
|
@ -163,13 +156,9 @@ public class ChatPlugin extends Bot.Listener {
|
|||
component = component.args(playerMessage.displayName, playerMessage.contents);
|
||||
}
|
||||
|
||||
if (string.length() > 25_000) continue;
|
||||
|
||||
listener.systemMessageReceived(component, string, ansi);
|
||||
listener.systemMessageReceived(component);
|
||||
} else {
|
||||
if (string.length() > 25_000) continue;
|
||||
|
||||
listener.systemMessageReceived(unsignedContent, string, ansi);
|
||||
listener.systemMessageReceived(unsignedContent);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -203,10 +192,8 @@ public class ChatPlugin extends Bot.Listener {
|
|||
translatableComponent = translatableComponent.args(name, content);
|
||||
}
|
||||
|
||||
final String string = ComponentUtilities.stringify(component);
|
||||
final String ansi = ComponentUtilities.stringifyAnsi(component);
|
||||
for (Listener listener : listeners) {
|
||||
listener.systemMessageReceived(translatableComponent, string, ansi);
|
||||
listener.systemMessageReceived(translatableComponent);
|
||||
}
|
||||
|
||||
for (ChatParser parser : chatParsers) {
|
||||
|
@ -225,15 +212,10 @@ public class ChatPlugin extends Bot.Listener {
|
|||
|
||||
final PlayerMessage playerMessage = new PlayerMessage(parsedFromMessage.sender, packet.getName(), parsedFromMessage.contents);
|
||||
|
||||
final String string = ComponentUtilities.stringify(component);
|
||||
final String ansi = ComponentUtilities.stringifyAnsi(component);
|
||||
|
||||
for (Listener listener : listeners) {
|
||||
listener.playerMessageReceived(playerMessage);
|
||||
|
||||
if (string.length() > 25_000) continue;
|
||||
|
||||
listener.systemMessageReceived(component, string, ansi);
|
||||
listener.systemMessageReceived(component);
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
|
@ -349,7 +331,7 @@ public class ChatPlugin extends Bot.Listener {
|
|||
|
||||
public static class Listener {
|
||||
public void playerMessageReceived (PlayerMessage message) {}
|
||||
public void systemMessageReceived (Component component, String string, String ansi) {}
|
||||
public void systemMessageReceived (Component component, boolean isCommandSuggestions, String string, String ansi) {}
|
||||
public void systemMessageReceived (Component component) {}
|
||||
public void systemMessageReceived (Component component, boolean isCommandSuggestions) {}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -22,7 +22,7 @@ public class CommandSpyPlugin extends ChatPlugin.Listener {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void systemMessageReceived(Component component, String string, String ansi) {
|
||||
public void systemMessageReceived(Component component) {
|
||||
TextComponent textComponent;
|
||||
|
||||
try {
|
||||
|
|
|
@ -20,7 +20,7 @@ public class CommandSuggestionPlugin extends ChatPlugin.Listener {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void systemMessageReceived(Component component, boolean isCommandSuggestions, String string, String ansi) {
|
||||
public void systemMessageReceived(Component component, boolean isCommandSuggestions) {
|
||||
if (!isCommandSuggestions) return;
|
||||
|
||||
try {
|
||||
|
|
|
@ -59,7 +59,10 @@ public class DiscordPlugin {
|
|||
|
||||
bot.chat.addListener(new ChatPlugin.Listener() {
|
||||
@Override
|
||||
public void systemMessageReceived (Component component, String string, String ansi) {
|
||||
public void systemMessageReceived (Component component) {
|
||||
final String string = ComponentUtilities.stringify(component);
|
||||
final String ansi = ComponentUtilities.stringifyAnsi(component);
|
||||
|
||||
if (string.length() > 2048) {
|
||||
sendMessage(CodeBlockUtilities.escape(string), channelId);
|
||||
} else {
|
||||
|
|
|
@ -78,8 +78,14 @@ public class LoggerPlugin extends ChatPlugin.Listener {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void systemMessageReceived(Component component, String string, String ansi) {
|
||||
log(ansi, false, logToConsole);
|
||||
public void systemMessageReceived(Component component) {
|
||||
final String string = ComponentUtilities.stringify(component);
|
||||
|
||||
if (logToConsole) {
|
||||
final String ansi = ComponentUtilities.stringifyAnsi(component);
|
||||
|
||||
log(ansi, false, true);
|
||||
}
|
||||
log(string, true, false);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -14,6 +14,7 @@ import com.github.steveice10.packetlib.event.session.DisconnectedEvent;
|
|||
import com.github.steveice10.packetlib.packet.Packet;
|
||||
import land.chipmunk.chayapak.chomens_bot.Bot;
|
||||
import land.chipmunk.chayapak.chomens_bot.Configuration;
|
||||
import land.chipmunk.chayapak.chomens_bot.util.ComponentUtilities;
|
||||
import net.kyori.adventure.text.Component;
|
||||
import org.cloudburstmc.math.vector.Vector3i;
|
||||
|
||||
|
@ -46,7 +47,9 @@ public class SelfCarePlugin extends Bot.Listener {
|
|||
|
||||
bot.chat.addListener(new ChatPlugin.Listener() {
|
||||
@Override
|
||||
public void systemMessageReceived(Component component, String string, String ansi) {
|
||||
public void systemMessageReceived(Component component) {
|
||||
final String string = ComponentUtilities.stringify(component);
|
||||
|
||||
if (string.equals("Successfully enabled CommandSpy")) cspy = true;
|
||||
else if (string.equals("Successfully disabled CommandSpy")) cspy = false;
|
||||
|
||||
|
|
|
@ -3,10 +3,13 @@ package land.chipmunk.chayapak.chomens_bot.util;
|
|||
import com.google.gson.Gson;
|
||||
import com.google.gson.JsonElement;
|
||||
import com.google.gson.JsonObject;
|
||||
import com.google.gson.JsonPrimitive;
|
||||
import land.chipmunk.chayapak.chomens_bot.Main;
|
||||
|
||||
import java.io.*;
|
||||
import java.util.ConcurrentModificationException;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.ScheduledFuture;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
public class PersistentDataUtilities {
|
||||
public static final File file = new File("persistent.json");
|
||||
|
@ -15,8 +18,35 @@ public class PersistentDataUtilities {
|
|||
|
||||
public static JsonObject jsonObject = new JsonObject();
|
||||
|
||||
private static final Map<String, JsonElement> queue = new LinkedHashMap<>();
|
||||
|
||||
private static final ScheduledFuture<?> future;
|
||||
|
||||
static {
|
||||
init();
|
||||
|
||||
future = Main.executor.scheduleAtFixedRate(() -> {
|
||||
if (queue.size() == 0) return;
|
||||
|
||||
final Map.Entry<String, JsonElement> entry = queue.entrySet().iterator().next(); // is this the best way to get the first item of the map?
|
||||
|
||||
final String property = entry.getKey();
|
||||
final JsonElement value = entry.getValue();
|
||||
|
||||
if (jsonObject.has(property)) jsonObject.remove(property);
|
||||
jsonObject.add(property, value);
|
||||
|
||||
write(jsonObject.toString());
|
||||
|
||||
queue.remove(property);
|
||||
}, 0, 100, TimeUnit.MILLISECONDS);
|
||||
|
||||
Runtime.getRuntime().addShutdownHook(new Thread() {
|
||||
@Override
|
||||
public void run() {
|
||||
future.cancel(false);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private static void init () {
|
||||
|
@ -39,63 +69,36 @@ public class PersistentDataUtilities {
|
|||
}
|
||||
}
|
||||
|
||||
private static synchronized void write () {
|
||||
private static synchronized void write (String string) {
|
||||
try {
|
||||
final String stringifiedJsonObject = jsonObject.toString();
|
||||
|
||||
writer.close();
|
||||
|
||||
// ? how do i clear the file contents without making a completely new FileWriter
|
||||
// or is this the only way?
|
||||
writer = new FileWriter(file, false);
|
||||
|
||||
writer.write(stringifiedJsonObject);
|
||||
writer.write(string);
|
||||
writer.flush();
|
||||
} catch (IOException | ConcurrentModificationException ignored) {}
|
||||
} catch (IOException ignored) {}
|
||||
}
|
||||
|
||||
public static synchronized void put (String property, JsonElement value) {
|
||||
Main.executorService.submit(() -> {
|
||||
if (jsonObject.has(property)) jsonObject.remove(property);
|
||||
jsonObject.add(property, value);
|
||||
|
||||
write();
|
||||
});
|
||||
public static void put (String property, JsonElement value) {
|
||||
queue.put(property, value);
|
||||
}
|
||||
|
||||
public static synchronized void put (String property, String value) {
|
||||
Main.executorService.submit(() -> {
|
||||
if (jsonObject.has(property)) jsonObject.remove(property);
|
||||
jsonObject.addProperty(property, value);
|
||||
|
||||
write();
|
||||
});
|
||||
public static void put (String property, String value) {
|
||||
queue.put(property, new JsonPrimitive(value));
|
||||
}
|
||||
|
||||
public static synchronized void put (String property, boolean value) {
|
||||
Main.executorService.submit(() -> {
|
||||
if (jsonObject.has(property)) jsonObject.remove(property);
|
||||
jsonObject.addProperty(property, value);
|
||||
|
||||
write();
|
||||
});
|
||||
public static void put (String property, boolean value) {
|
||||
queue.put(property, new JsonPrimitive(value));
|
||||
}
|
||||
|
||||
public static synchronized void put (String property, int value) {
|
||||
Main.executorService.submit(() -> {
|
||||
if (jsonObject.has(property)) jsonObject.remove(property);
|
||||
jsonObject.addProperty(property, value);
|
||||
|
||||
write();
|
||||
});
|
||||
public static void put (String property, int value) {
|
||||
queue.put(property, new JsonPrimitive(value));
|
||||
}
|
||||
|
||||
public static synchronized void put (String property, char value) {
|
||||
Main.executorService.submit(() -> {
|
||||
if (jsonObject.has(property)) jsonObject.remove(property);
|
||||
jsonObject.addProperty(property, value);
|
||||
|
||||
write();
|
||||
});
|
||||
public static void put (String property, char value) {
|
||||
queue.put(property, new JsonPrimitive(value));
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue