Introduce chat database integration with message persistence and initialization.

This commit is contained in:
2026-07-18 22:57:55 +02:00
parent 9ebd420874
commit 646bbd4145
8 changed files with 93 additions and 2 deletions
@@ -9,7 +9,8 @@ public enum Databases {
LITE_BANS("litebans"),
DISCORD("discordLink"),
PROXY_PLAYTIME("proxyplaytime"),
VOTING_PLUGIN("votingplugin");
VOTING_PLUGIN("votingplugin"),
CHAT("chat");
private final String internalName;
@@ -0,0 +1,16 @@
package com.alttd.altitudeweb.database.chat;
import lombok.Builder;
import lombok.Getter;
@Builder
@Getter
public class ChatLogDao {
private final String uuid;
private final long timeStamp;
private final String server;
private final String miniMessage;
private final boolean blocked;
}
@@ -0,0 +1,18 @@
package com.alttd.altitudeweb.database.chat;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
public interface ChatLogMapper {
@Select("""
SELECT uuid, time_stamp, server, mini_message, blocked
FROM chat_log
WHERE mini_message IS NOT NULL
AND time_stamp >= #{since}
""")
List<ChatLogDao> getChatLogs(@Param("since") long since);
}
@@ -40,6 +40,7 @@ public class Connection {
InitializeProxyPlaytime.init();
InitializeDiscord.init();
InitializeVotingPlugin.init();
InitializeChat.init();
}
@FunctionalInterface
@@ -0,0 +1,18 @@
package com.alttd.altitudeweb.setup;
import com.alttd.altitudeweb.database.Databases;
import com.alttd.altitudeweb.database.chat.ChatLogMapper;
import com.alttd.altitudeweb.database.votingplugin.VotingPluginUsersMapper;
import lombok.extern.slf4j.Slf4j;
@Slf4j
public class InitializeChat {
protected static void init() {
log.info("Initializing Chat");
Connection.getConnection(Databases.CHAT, (configuration) -> {
configuration.addMapper(ChatLogMapper.class);
}).join();
log.debug("Initialized Chat");
}
}