Skip to content

Commit 2d6e1c5

Browse files
committed
Update to InterChat 2.8.0
1 parent c7fc66d commit 2d6e1c5

File tree

4 files changed

+28
-10
lines changed

4 files changed

+28
-10
lines changed

build.gradle.kts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,7 @@ dependencies {
2222
implementation("org.mariadb.jdbc:mariadb-java-client:3.0.8")
2323
implementation("com.zaxxer:HikariCP:5.0.1")
2424
implementation("com.charleskorn.kaml:kaml:0.47.0") // YAML support for kotlinx.serialization
25-
implementation("net.azisaba.interchat:api:2.4.1-SNAPSHOT")
26-
// ByteBuf
27-
implementation("io.netty:netty-buffer:4.1.82.Final")
25+
implementation("net.azisaba.interchat:api:2.8.0-SNAPSHOT")
2826
// Support for minecraft chat components
2927
implementation("net.kyori:adventure-api:$adventureVersion")
3028
implementation("net.kyori:adventure-text-serializer-legacy:$adventureVersion")

src/main/kotlin/net/azisaba/guildchatdiscord/InterChatPacketListener.kt

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,11 @@ import dev.kord.rest.request.RestRequestException
66
import dev.kord.rest.service.RestClient
77
import kotlinx.coroutines.runBlocking
88
import net.azisaba.guildchatdiscord.util.DatabaseManager
9+
import net.azisaba.interchat.api.data.PlayerPosData
10+
import net.azisaba.interchat.api.data.SenderInfo
911
import net.azisaba.interchat.api.guild.GuildMember
1012
import net.azisaba.interchat.api.network.PacketListener
13+
import net.azisaba.interchat.api.network.RedisKeys
1114
import net.azisaba.interchat.api.network.protocol.GuildMessagePacket
1215
import net.azisaba.interchat.api.text.MessageFormatter
1316
import net.azisaba.interchat.api.util.AsyncUtil
@@ -32,12 +35,16 @@ object InterChatPacketListener : PacketListener {
3235
}
3336
val members = guild.members.join()
3437
val nickname = members.stream().filter { it.uuid() == user.id() }.findAny().map(GuildMember::nickname)
38+
val pos = try {
39+
JedisBoxProvider.get()[RedisKeys.azisabaReportPlayerPos(user.id()), PlayerPosData.NETWORK_CODEC, 1000].toWorldPos()
40+
} catch (_: Exception) {
41+
null
42+
}
43+
val senderInfo = SenderInfo(user, packet.server(), nickname.orElse(null), pos)
3544
val formattedText = MessageFormatter.format(
3645
guild.format(),
3746
guild,
38-
packet.server(),
39-
user,
40-
nickname.orElse(null),
47+
senderInfo,
4148
packet.message(),
4249
packet.transliteratedMessage(),
4350
emptyMap(), // TODO: support prefix and suffix

src/main/kotlin/net/azisaba/guildchatdiscord/commands/NickCommand.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ object NickCommand : CommandHandler {
2626
return
2727
}
2828
val oldMember = guild.getMember(uuid).join()
29-
val newMember = GuildMember(oldMember.guildId(), oldMember.uuid(), oldMember.role(), newName)
29+
val newMember = GuildMember(oldMember.guildId(), oldMember.uuid(), oldMember.role(), newName, oldMember.hiddenByMember())
3030
newMember.update()
3131
interaction.respondEphemeral { content = "ニックネームを `$newName` に変更しました。" }
3232
}

src/main/kotlin/net/azisaba/guildchatdiscord/util/DatabaseManager.kt

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,21 @@ package net.azisaba.guildchatdiscord.util
33
import net.azisaba.guildchatdiscord.BotConfig
44
import net.azisaba.interchat.api.util.Functions
55
import net.azisaba.interchat.api.util.QueryExecutor
6+
import net.azisaba.interchat.api.util.SQLThrowableConsumer
67
import org.intellij.lang.annotations.Language
78
import java.sql.PreparedStatement
9+
import java.sql.Statement
810
import java.util.UUID
911

1012
object DatabaseManager {
11-
val interChatQueryExecutor = QueryExecutor { sql, action -> queryInterChat(sql) { stmt -> action.accept(stmt) } }
13+
val interChatQueryExecutor = object : QueryExecutor {
14+
override fun query(sql: String, action: SQLThrowableConsumer<PreparedStatement>) {
15+
}
16+
17+
override fun queryWithGeneratedKeys(sql: String, action: SQLThrowableConsumer<PreparedStatement>) {
18+
queryInterChat(sql, true) { stmt -> action.accept(stmt) }
19+
}
20+
}
1221
val dataSource = BotConfig.instance.database.createDataSource()
1322
private val interChatDataSource = BotConfig.instance.interChatDatabase.createDataSource()
1423

@@ -89,9 +98,13 @@ object DatabaseManager {
8998
interChatDataSource.close()
9099
}
91100

92-
private inline fun queryInterChat(@Language("SQL") sql: String, block: (PreparedStatement) -> Unit) {
101+
private inline fun queryInterChat(@Language("SQL") sql: String, withGeneratedKeys: Boolean = false, block: (PreparedStatement) -> Unit) {
93102
interChatDataSource.connection.use { connection ->
94-
connection.prepareStatement(sql).use(block)
103+
if (withGeneratedKeys) {
104+
connection.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS).use(block)
105+
} else {
106+
connection.prepareStatement(sql).use(block)
107+
}
95108
}
96109
}
97110
}

0 commit comments

Comments
 (0)