Skip to content

Commit 9824ab2

Browse files
committed
Update to 1.21.10
1 parent 7e052ac commit 9824ab2

File tree

14 files changed

+171
-196
lines changed

14 files changed

+171
-196
lines changed

blockbot-api/src/main/java/io/github/quiltservertools/blockbotapi/sender/PlayerMessageSender.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ public class PlayerMessageSender extends MessageSender {
88
private final ServerPlayerEntity player;
99

1010
public PlayerMessageSender(ServerPlayerEntity player, MessageType type) {
11-
super(player.getName(), player.getDisplayName(), type, player.getServer().getRegistryManager());
11+
super(player.getName(), player.getDisplayName(), type, player.getEntityWorld().getServer().getRegistryManager());
1212
this.profile = player.getGameProfile();
1313
this.player = player;
1414
}

build.gradle.kts

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ plugins {
44
java
55
id("maven-publish")
66
id("fabric-loom") version "1.11.+"
7-
kotlin("jvm") version "2.1.10"
7+
kotlin("jvm") version "2.2.20"
88
id("io.github.goooler.shadow") version "8.1.7"
9-
kotlin("plugin.serialization") version "2.1.10"
9+
kotlin("plugin.serialization") version "2.2.20"
1010
id("me.modmuss50.mod-publish-plugin") version "0.8.4"
1111
id("org.jetbrains.changelog") version "2.+"
1212
}
@@ -41,7 +41,10 @@ allprojects {
4141
url = uri("https://maven.fabricmc.net/")
4242
}
4343
maven("https://api.modrinth.com/maven")
44-
maven("https://oss.sonatype.org/content/repositories/snapshots")
44+
maven("https://snapshots-repo.kordex.dev")
45+
maven("https://releases-repo.kordex.dev")
46+
maven("https://repo.kordex.dev/snapshots")
47+
maven("https://mirror-repo.kordex.dev")
4548
}
4649

4750
// Declare dependencies
@@ -92,8 +95,8 @@ allprojects {
9295
repositories {
9396
mavenCentral()
9497
maven("https://maven.nucleoid.xyz/")
95-
maven("https://s01.oss.sonatype.org/content/repositories/snapshots/")
9698
maven("https://snapshots-repo.kordex.dev")
99+
maven("https://repo.kord.dev/snapshots")
97100
}
98101

99102
dependencies {
@@ -157,12 +160,6 @@ tasks {
157160
input.set(shadowJar.get().archiveFile)
158161
}
159162

160-
compileKotlin {
161-
kotlinOptions {
162-
jvmTarget = "21"
163-
}
164-
}
165-
166163
shadowJar {
167164
from("LICENSE")
168165

libs.versions.toml

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,23 @@
11
[versions]
2-
minecraft = "1.21.7"
3-
curseforge-minecraft="1.21.7"
4-
fabric-loader = "0.16.14"
5-
yarn-mappings = "1.21.7+build.6"
2+
minecraft = "1.21.10"
3+
curseforge-minecraft="1.21.10"
4+
fabric-loader = "0.17.2"
5+
yarn-mappings = "1.21.10+build.1"
66

7-
fabric-api = "0.129.0+1.21.7"
7+
fabric-api = "0.134.1+1.21.10"
88

99
# Kotlin
10-
fabric-kotlin = "1.13.4+kotlin.2.2.0"
10+
fabric-kotlin = "1.13.6+kotlin.2.2.20"
1111

1212
# Discord
13-
kord-extensions = "2.3.1-SNAPSHOT"
13+
kord-extensions = "2.3.6-SNAPSHOT"
1414
mc-discord-reserializer = "4.3.0"
1515
emoji-java = "5.1.1"
16-
adventure-gson = "4.23.0"
16+
adventure-gson = "4.24.0"
1717

18-
placeholder-api = "2.7.1+1.21.6"
18+
placeholder-api = "2.8.0+1.21.9"
1919
permission-api = "0.4.1"
20-
vanish-api = "1.5.20+1.21.7"
20+
vanish-api = "1.6.1+1.21.9-rc1"
2121
konf = "1.1.2"
2222

2323
[libraries]
Lines changed: 8 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,29 @@
11
package io.github.quiltservertools.blockbotdiscord.mixin;
22

3-
import com.mojang.authlib.GameProfile;
3+
import com.llamalad7.mixinextras.injector.ModifyReturnValue;
4+
import com.llamalad7.mixinextras.sugar.Local;
45
import io.github.quiltservertools.blockbotdiscord.extensions.linking.LinkingExtensionKt;
56
import net.minecraft.server.MinecraftServer;
7+
import net.minecraft.server.PlayerConfigEntry;
68
import net.minecraft.server.PlayerManager;
7-
import net.minecraft.server.Whitelist;
89
import net.minecraft.text.Text;
910
import org.spongepowered.asm.mixin.Final;
1011
import org.spongepowered.asm.mixin.Mixin;
1112
import org.spongepowered.asm.mixin.Shadow;
1213
import org.spongepowered.asm.mixin.injection.At;
13-
import org.spongepowered.asm.mixin.injection.Inject;
14-
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
15-
16-
import java.net.SocketAddress;
1714

1815
@Mixin(PlayerManager.class)
1916
public abstract class PlayerManagerMixin {
2017
@Shadow
2118
@Final
2219
private MinecraftServer server;
2320

24-
@Shadow
25-
private boolean whitelistEnabled;
26-
27-
@Shadow
28-
@Final
29-
private Whitelist whitelist;
30-
31-
@Inject(method = "checkCanJoin", at = @At("HEAD"), cancellable = true)
32-
private void enforceAccountLinking(SocketAddress address, GameProfile profile, CallbackInfoReturnable<Text> cir) {
33-
if (whitelistEnabled && whitelist.isAllowed(profile)) return;
34-
35-
var message = LinkingExtensionKt.canJoin(profile, server);
21+
@ModifyReturnValue(method = "checkCanJoin", at = @At("RETURN"))
22+
private Text enforceAccountLinking(Text original, @Local(argsOnly = true) PlayerConfigEntry playerConfigEntry) {
23+
var message = LinkingExtensionKt.canJoin(playerConfigEntry, server);
3624
if (message != null) {
37-
cir.setReturnValue(message);
25+
return message;
3826
}
27+
return original;
3928
}
4029
}

src/main/kotlin/io/github/quiltservertools/blockbotdiscord/config/ChatRelaySpec.kt

Lines changed: 32 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@ import com.mojang.authlib.GameProfile
44
import com.uchuhimo.konf.Config
55
import com.uchuhimo.konf.ConfigSpec
66
import dev.kord.core.entity.Message
7+
import eu.pb4.placeholders.api.ParserContext
78
import eu.pb4.placeholders.api.PlaceholderContext
8-
import eu.pb4.placeholders.api.Placeholders
9-
import eu.pb4.placeholders.api.TextParserUtils
109
import io.github.quiltservertools.blockbotapi.sender.MessageSender
1110
import io.github.quiltservertools.blockbotapi.sender.PlayerMessageSender
11+
import io.github.quiltservertools.blockbotdiscord.utility.formatText
1212
import io.github.quiltservertools.blockbotdiscord.utility.getTextures
1313
import io.github.quiltservertools.blockbotdiscord.utility.literal
1414
import io.github.quiltservertools.blockbotdiscord.utility.summary
@@ -77,10 +77,12 @@ fun Config.formatWebhookAnnouncement(sender: MessageSender, message: String): St
7777
formatDiscordRelayMessage(sender, message, config[ChatRelaySpec.DiscordWebhookFormatSpec.announcementFormat])
7878

7979
fun Config.formatWebhookAuthor(sender: MessageSender): String =
80-
formatDiscordRelayMessage(sender, "", config[ChatRelaySpec.DiscordWebhookFormatSpec.authorFormat], mapOf(
81-
"sender" to sender.name,
82-
"sender_display" to sender.displayName
83-
))
80+
formatDiscordRelayMessage(
81+
sender, "", config[ChatRelaySpec.DiscordWebhookFormatSpec.authorFormat], mapOf(
82+
"sender" to sender.name,
83+
"sender_display" to sender.displayName
84+
)
85+
)
8486

8587
fun Config.formatPlayerJoinMessage(player: ServerPlayerEntity): String =
8688
formatDiscordRelayMessage(player, config[ChatRelaySpec.DiscordMessageFormatSpec.playerJoin]).string
@@ -115,85 +117,57 @@ private fun formatDiscordRelayMessage(
115117
"message" to message.literal()
116118
)
117119
): String {
118-
var parsedText = Placeholders.parseText(
119-
format.literal(),
120-
Placeholders.ALT_PLACEHOLDER_PATTERN_CUSTOM,
121-
placeholders
122-
)
123-
if (sender is PlayerMessageSender) parsedText = Placeholders.parseText(
124-
parsedText,
125-
PlaceholderContext.of(sender.player)
126-
)
127-
return parsedText.string
120+
var context = ParserContext.of()
121+
if (sender is PlayerMessageSender) {
122+
context = PlaceholderContext.of(sender.player).asParserContext()
123+
}
124+
return format.formatText(context, placeholders).string
128125
}
129126

130127
fun formatDiscordRelayMessage(
131128
player: ServerPlayerEntity,
132129
format: String,
133130
placeholders: Map<String, Text> = mapOf()
134-
): Text =
135-
Placeholders.parseText(
136-
Placeholders.parseText(
137-
format.literal(),
138-
Placeholders.ALT_PLACEHOLDER_PATTERN_CUSTOM,
139-
placeholders
140-
),
141-
PlaceholderContext.of(player)
142-
)
131+
): Text = format.formatText(player, placeholders)
143132

144133
fun formatDiscordRelayMessage(
145134
server: MinecraftServer,
146135
format: String,
147136
placeholders: Map<String, Text> = mapOf()
148137
): String =
149-
Placeholders.parseText(
150-
Placeholders.parseText(
151-
format.literal(),
152-
Placeholders.ALT_PLACEHOLDER_PATTERN_CUSTOM,
153-
placeholders
154-
),
155-
PlaceholderContext.of(server)
156-
).string
138+
format.formatText(PlaceholderContext.of(server).asParserContext(), placeholders).string
157139

158140
fun Config.getMinecraftChatRelayMsg(
159141
sender: MutableText,
160142
topRole: MutableText,
161143
message: Text,
162144
server: MinecraftServer
163-
): Text = Placeholders.parseText(
164-
Placeholders.parseText(
165-
TextParserUtils.formatText(this[ChatRelaySpec.MinecraftFormatSpec.messageFormat]),
166-
Placeholders.ALT_PLACEHOLDER_PATTERN_CUSTOM,
167-
mapOf(
168-
"sender" to sender.copy().formatted(Formatting.RESET),
169-
"sender_colored" to sender,
170-
"top_role" to topRole,
171-
"message" to message
172-
)
173-
), PlaceholderContext.of(server)
145+
): Text = this[ChatRelaySpec.MinecraftFormatSpec.messageFormat].formatText(
146+
PlaceholderContext.of(server).asParserContext(),
147+
mapOf(
148+
"sender" to sender.copy().formatted(Formatting.RESET),
149+
"sender_colored" to sender,
150+
"top_role" to topRole,
151+
"message" to message
152+
)
174153
)
175154

176155
fun Config.getReplyMsg(
177156
sender: String,
178157
message: Message,
179158
server: MinecraftServer
180-
): Text = Placeholders.parseText(
181-
Placeholders.parseText(
182-
TextParserUtils.formatText(this[ChatRelaySpec.MinecraftFormatSpec.replyFormat]),
183-
Placeholders.ALT_PLACEHOLDER_PATTERN_CUSTOM,
184-
mapOf(
185-
"sender" to (sender).literal(),
186-
"message" to message.content.literal(),
187-
"summary" to message.summary().literal(),
188-
)
189-
), PlaceholderContext.of(server)
159+
): Text = this[ChatRelaySpec.MinecraftFormatSpec.replyFormat].formatText(
160+
PlaceholderContext.of(server).asParserContext(),
161+
mapOf(
162+
"sender" to (sender).literal(),
163+
"message" to message.content.literal(),
164+
"summary" to message.summary().literal(),
165+
)
190166
)
191167

192168
fun Config.getWebhookChatRelayAvatar(gameProfile: GameProfile): String =
193-
Placeholders.parseText(
194-
this[ChatRelaySpec.WebhookSpec.playerAvatarUrl].literal(),
195-
Placeholders.ALT_PLACEHOLDER_PATTERN_CUSTOM,
196-
mapOf(
169+
this[ChatRelaySpec.WebhookSpec.playerAvatarUrl].formatText(
170+
ParserContext.of(), mapOf(
197171
"uuid" to gameProfile.id.toString().literal(),
198172
"username" to gameProfile.name.literal(),
199173
"texture" to (gameProfile.getTextures()?.literal() ?: Text.empty())
Lines changed: 7 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,11 @@
11
package io.github.quiltservertools.blockbotdiscord.config
22

3-
import com.mojang.authlib.GameProfile
43
import com.uchuhimo.konf.Config
54
import com.uchuhimo.konf.ConfigSpec
6-
import eu.pb4.placeholders.api.PlaceholderContext
7-
import eu.pb4.placeholders.api.Placeholders
8-
import eu.pb4.placeholders.api.TextParserUtils
95
import io.github.quiltservertools.blockbotdiscord.extensions.linking.linkCode
10-
import io.github.quiltservertools.blockbotdiscord.utility.literal
6+
import io.github.quiltservertools.blockbotdiscord.utility.formatText
117
import net.minecraft.server.MinecraftServer
8+
import net.minecraft.server.PlayerConfigEntry
129
import net.minecraft.text.MutableText
1310
import net.minecraft.text.Text
1411

@@ -33,28 +30,16 @@ object LinkingSpec : ConfigSpec() {
3330
}
3431
}
3532

36-
fun Config.formatUnlinkedDisconnectMessage(gameProfile: GameProfile, server: MinecraftServer): MutableText =
33+
fun Config.formatUnlinkedDisconnectMessage(playerConfigEntry: PlayerConfigEntry, server: MinecraftServer): MutableText =
3734
Text.empty().apply {
3835
config[LinkingSpec.unlinkedDisconnectMessage].forEach {
3936
this.append(
40-
formatLine(
41-
it,
42-
server,
43-
gameProfile.linkCode
44-
)
37+
it.replace(
38+
"{code}",
39+
playerConfigEntry.linkCode
40+
).formatText()
4541
)
4642
this.append(Text.literal("\n"))
4743
}
4844
}
4945

50-
private fun formatLine(line: String, server: MinecraftServer, code: String) =
51-
Placeholders.parseText(
52-
Placeholders.parseText(
53-
TextParserUtils.formatText(line),
54-
Placeholders.ALT_PLACEHOLDER_PATTERN_CUSTOM,
55-
mapOf(
56-
"code" to code.literal()
57-
)
58-
),
59-
PlaceholderContext.of(server)
60-
)

src/main/kotlin/io/github/quiltservertools/blockbotdiscord/config/PresenceSpec.kt

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@ package io.github.quiltservertools.blockbotdiscord.config
33
import com.uchuhimo.konf.Config
44
import com.uchuhimo.konf.ConfigSpec
55
import eu.pb4.placeholders.api.PlaceholderContext
6-
import eu.pb4.placeholders.api.Placeholders
7-
import eu.pb4.placeholders.api.TextParserUtils
6+
import io.github.quiltservertools.blockbotdiscord.utility.formatText
87
import net.minecraft.server.MinecraftServer
98

109
object PresenceSpec : ConfigSpec() {
@@ -22,9 +21,4 @@ enum class ActivityType {
2221

2322
fun Config.formatPresenceText(
2423
server: MinecraftServer
25-
): String = Placeholders.parseText(
26-
TextParserUtils.formatText(
27-
this[PresenceSpec.activityText]
28-
),
29-
PlaceholderContext.of(server)
30-
).string
24+
): String = this[PresenceSpec.activityText].formatText(PlaceholderContext.of(server).asParserContext()).string

src/main/kotlin/io/github/quiltservertools/blockbotdiscord/extensions/ConsoleExtension.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ class ConsoleExtension : Extension() {
6262
val serverWorld: ServerWorld? = server.overworld
6363
val source = ServerCommandSource(
6464
server,
65-
if (serverWorld == null) Vec3d.ZERO else Vec3d.of(serverWorld.spawnPos),
65+
Vec3d.ZERO,
6666
Vec2f.ZERO,
6767
serverWorld,
6868
4,

src/main/kotlin/io/github/quiltservertools/blockbotdiscord/extensions/MemberCommandsExtension.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ class MemberCommandsExtension : Extension() {
4545
guild(config.guildId)
4646

4747
action {
48-
val profile = server.userCache?.findByName(arguments.player)?.unwrap()
48+
val profile = server.apiServices.nameToIdCache?.findByName(arguments.player)?.unwrap()
4949
if (profile == null) {
5050
respond {
5151
content = config[MemberCommandsSpec.WhiteListSpec.MessagesSpec.unknownPlayer].replace(

src/main/kotlin/io/github/quiltservertools/blockbotdiscord/extensions/inline/InlineCommandsExtension.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ class InlineCommandsExtension : Extension() {
3535
val output = DiscordCommandOutput(this)
3636
val source = ServerCommandSource(
3737
output,
38-
if (serverWorld == null) Vec3d.ZERO else Vec3d.of(serverWorld.spawnPos),
38+
Vec3d.ZERO,
3939
Vec2f.ZERO,
4040
serverWorld,
4141
config[InlineCommandsSpec.opLevel],

0 commit comments

Comments
 (0)