Skip to content

Commit 0c5ef27

Browse files
committed
[2.3.7] 1.21.8 & 功能更新 & 修复
* 修复低版本铁砧问题 * 新增Kether mute动作 * 支持禁言不在线/跨服玩家 * 支持为自定义功能添加冷却时间
1 parent f20da41 commit 0c5ef27

File tree

21 files changed

+154
-86
lines changed

21 files changed

+154
-86
lines changed

build.gradle.kts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,6 @@ subprojects {
4040
version {
4141
taboolib = "6.2.3-a372a91"
4242
coroutines = null
43-
// isSkipKotlin = true
44-
// isSkipKotlinRelocate = true
4543
}
4644
}
4745

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
group=me.arasple.mc.trchat
2-
version=2.3.6
2+
version=2.3.7
33
kotlin.incremental=true
44
kotlin.incremental.java=true
55
kotlin.incremental.useClasspathSnapshot=true

plugin/build.gradle.kts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,10 @@ taboolib {
1919
name("Multiverse-Core").with("bukkit").loadafter(true)
2020
name("Geyser-Spigot").with("bukkit").loadafter(true)
2121
}
22+
// version {
23+
// isSkipKotlin = true
24+
// isSkipKotlinRelocate = true
25+
// }
2226
}
2327
relocate("com.eatthepath.uuid.", "${rootProject.group}.library.uuid.")
2428
// relocate("net.md_5.bungee", "net.md_5.bungee121")

project/common/src/main/kotlin/me/arasple/mc/trchat/util/Util.kt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,15 @@ private val reportedErrors = mutableListOf<String>()
1111
val nilUUID = UUID(0, 0)
1212
val papiRegex = "(%)(.+?)(%)|(:)(.+?)(:)|(?!\\{\")((\\{)(.+?)(}))".toRegex()
1313

14+
fun hasClass(className: String): Boolean {
15+
return try {
16+
Class.forName(className)
17+
true
18+
} catch (_: ClassNotFoundException) {
19+
false
20+
}
21+
}
22+
1423
fun Throwable.print(title: String, printStackTrace: Boolean = true) {
1524
console().sendMessage("§c[TrChat] §7$title")
1625
console().sendMessage("§7${javaClass.name}: $localizedMessage")

project/runtime-bukkit/src/main/kotlin/me/arasple/mc/trchat/api/impl/BukkitProxyManager.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ import me.arasple.mc.trchat.module.internal.hook.isVanished
88
import me.arasple.mc.trchat.module.internal.proxy.BukkitProxyProcessor
99
import me.arasple.mc.trchat.module.internal.proxy.redis.RedisManager
1010
import me.arasple.mc.trchat.util.parseString
11+
import net.md_5.bungee.api.ChatColor
1112
import org.bukkit.Bukkit
12-
import org.bukkit.ChatColor
1313
import org.bukkit.plugin.messaging.PluginMessageRecipient
1414
import org.spigotmc.SpigotConfig
1515
import taboolib.common.platform.Platform

project/runtime-bukkit/src/main/kotlin/me/arasple/mc/trchat/module/conf/Loader.kt

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,14 @@ import taboolib.common.io.newFile
2525
import taboolib.common.platform.Platform
2626
import taboolib.common.platform.PlatformSide
2727
import taboolib.common.platform.ProxyCommandSender
28+
import taboolib.common.platform.function.console
2829
import taboolib.common.platform.function.getDataFolder
2930
import taboolib.common.platform.function.releaseResourceFile
3031
import taboolib.common.util.asList
3132
import taboolib.common.util.orNull
3233
import taboolib.common.util.unsafeLazy
3334
import taboolib.common5.Coerce
35+
import taboolib.common5.util.parseMillis
3436
import taboolib.library.configuration.ConfigurationSection
3537
import taboolib.module.configuration.util.getMap
3638
import taboolib.module.lang.sendLang
@@ -196,10 +198,13 @@ object Loader {
196198
val priority = map.getInt("priority", 100)
197199
val regex = map.getString("pattern")!!.toRegex()
198200
val filterTextRegex = map.getString("text-filter")?.toRegex()
201+
val cooldown = kotlin.runCatching { map.getString("cooldown")?.parseMillis() }
202+
.onFailure { console().sendLang("Mute-Wrong-Format", map.getString("cooldown")!!) }
203+
.getOrNull()
199204
val displayJson = parseJSON(map.getConfigurationSection("display")!!.toMap(), isMsg = false)
200205
val reaction = map["action"]?.let { Reaction(it.asList()) }
201206

202-
CustomFunction(id, condition, priority, regex, filterTextRegex, displayJson, reaction)
207+
CustomFunction(id, condition, priority, regex, filterTextRegex, cooldown, displayJson, reaction)
203208
}.sortedBy { it.priority }
204209

205210
Function.reload(functions)

project/runtime-bukkit/src/main/kotlin/me/arasple/mc/trchat/module/display/ChatSession.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import me.arasple.mc.trchat.util.color.CustomColor
88
import me.arasple.mc.trchat.util.color.MessageColors
99
import me.arasple.mc.trchat.util.data
1010
import org.bukkit.entity.Player
11-
import taboolib.expansion.getDataContainer
1211
import taboolib.library.reflex.Reflex.Companion.getProperty
1312
import taboolib.module.chat.ComponentText
1413
import taboolib.module.chat.Components
@@ -52,7 +51,7 @@ class ChatSession(val player: Player) {
5251
return if (forces.isNotEmpty()) {
5352
CustomColor.get(forces[0])
5453
} else {
55-
val selectedColor = player.getDataContainer()["color"].takeIf { it != "null" }
54+
val selectedColor = player.data.color
5655
if (selectedColor != null && player.hasPermission(MessageColors.COLOR_PERMISSION_NODE + selectedColor)) {
5756
CustomColor.get(selectedColor)
5857
} else {

project/runtime-bukkit/src/main/kotlin/me/arasple/mc/trchat/module/display/format/MsgComponent.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import taboolib.module.chat.impl.AdventureComponent
2222
*/
2323
class MsgComponent(val defaultColor: List<Pair<CustomColor, Condition?>>, style: List<Style>) : JsonComponent(null, style) {
2424

25-
fun processComponent(sender: CommandSender, msg: TextComponent, disabledFunctions: List<String>): TextComponent {
25+
private fun processComponent(sender: CommandSender, msg: TextComponent, disabledFunctions: List<String>): TextComponent {
2626
val children = msg.children().map { processComponent(sender, it as TextComponent, disabledFunctions) }
2727
val new = createComponent(sender, msg.content(), disabledFunctions).toAdventureObject() as TextComponent
2828
val style = new.style().merge(msg.style())

project/runtime-bukkit/src/main/kotlin/me/arasple/mc/trchat/module/display/function/CustomFunction.kt

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@ import me.arasple.mc.trchat.module.internal.script.Condition
55
import me.arasple.mc.trchat.module.internal.script.Reaction
66
import me.arasple.mc.trchat.util.pass
77
import org.bukkit.entity.Player
8+
import taboolib.common5.Baffle
89
import taboolib.module.chat.ComponentText
10+
import java.util.concurrent.TimeUnit
911

1012
/**
1113
* @author ItsFlicker
@@ -17,10 +19,13 @@ class CustomFunction(
1719
val priority: Int,
1820
val regex: Regex,
1921
val filterTextRegex: Regex?,
22+
val cooldown: Long?,
2023
val displayJson: JsonComponent,
2124
override val reaction: Reaction?
2225
) : Function(id) {
2326

27+
val baffle = cooldown?.let { Baffle.of(it, TimeUnit.MILLISECONDS) }
28+
2429
override fun createVariable(sender: Player, message: String): String {
2530
return message.replaceRegex(regex, filterTextRegex) { "{{$id:$it}}" }
2631
}
@@ -34,6 +39,12 @@ class CustomFunction(
3439
}
3540

3641
override fun checkCooldown(sender: Player, message: String): Boolean {
42+
if (sender.hasPermission("trchat.bypass.customcd")) {
43+
return true
44+
}
45+
if (baffle != null) {
46+
return baffle.hasNext(sender.name)
47+
}
3748
return true
3849
}
3950

project/runtime-bukkit/src/main/kotlin/me/arasple/mc/trchat/module/internal/TrChatBukkit.kt

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import me.arasple.mc.trchat.module.display.channel.Channel
1111
import me.arasple.mc.trchat.module.display.function.Function
1212
import me.arasple.mc.trchat.module.internal.data.PlayerData
1313
import me.arasple.mc.trchat.module.internal.hook.HookPlugin
14+
import me.arasple.mc.trchat.util.hasClass
1415
import org.bukkit.Bukkit
1516
import taboolib.common.LifeCycle
1617
import taboolib.common.platform.*
@@ -31,13 +32,10 @@ object TrChatBukkit : Plugin() {
3132
var isGlobalMuting = false
3233

3334
internal fun detectPaperEnv() {
34-
try {
35-
// Paper 1.16.5+
36-
Class.forName("com.destroystokyo.paper.PaperConfig")
37-
if (versionId >= 11604) {
38-
isPaperEnv = true
39-
}
40-
} catch (_: ClassNotFoundException) {
35+
if ((hasClass("com.destroystokyo.paper.PaperConfig")
36+
|| hasClass("io.papermc.paper.configuration.Configuration"))
37+
&& versionId >= 11604) {
38+
isPaperEnv = true
4139
}
4240
if (Folia.isFolia || (isPaperEnv && MinecraftVersion.isHigherOrEqual(MinecraftVersion.V1_20))) {
4341
Components.useAdventure = true
@@ -51,6 +49,7 @@ object TrChatBukkit : Plugin() {
5149
// registerLifeCycleTask(LifeCycle.INIT, 0) {
5250
// YamlUpdater.update("settings.yml", updateExists = false)
5351
// }
52+
MinecraftVersion.supportedVersion[13] = arrayOf("!1.21", "1.21.1", "!1.21.2", "1.21.3", "1.21.4", "1.21.5", "!1.21.6", "1.21.7", "1.21.8")
5453
}
5554

5655
override fun onLoad() {

0 commit comments

Comments
 (0)