1
1
package kr.toxicity.hud.bootstrap.fabric
2
2
3
- import kr.toxicity.command.BetterCommandSource
4
- import kr.toxicity.command.CommandModule
5
3
import kr.toxicity.hud.BetterHudImpl
6
4
import kr.toxicity.hud.api.BetterHud
7
5
import kr.toxicity.hud.api.BetterHudAPI
@@ -14,12 +12,12 @@ import kr.toxicity.hud.api.volatilecode.VolatileCodeHandler
14
12
import kr.toxicity.hud.bootstrap.fabric.manager.CompatibilityManager
15
13
import kr.toxicity.hud.bootstrap.fabric.manager.ModuleManager
16
14
import kr.toxicity.hud.bootstrap.fabric.player.HudPlayerFabric
15
+ import kr.toxicity.hud.manager.CommandManager
17
16
import kr.toxicity.hud.manager.DatabaseManagerImpl
18
17
import kr.toxicity.hud.manager.PlayerManagerImpl
19
18
import kr.toxicity.hud.pack.PackUploader
20
19
import kr.toxicity.hud.util.*
21
20
import net.fabricmc.api.DedicatedServerModInitializer
22
- import net.fabricmc.fabric.api.command.v2.CommandRegistrationCallback
23
21
import net.fabricmc.fabric.api.event.lifecycle.v1.ServerLifecycleEvents
24
22
import net.fabricmc.fabric.api.networking.v1.ServerPlayConnectionEvents
25
23
import net.fabricmc.loader.api.FabricLoader
@@ -29,6 +27,7 @@ import net.kyori.adventure.resource.ResourcePackInfo
29
27
import net.kyori.adventure.resource.ResourcePackRequest
30
28
import net.kyori.adventure.text.Component
31
29
import net.kyori.adventure.text.event.ClickEvent
30
+ import net.minecraft.commands.CommandSourceStack
32
31
import net.minecraft.core.registries.Registries
33
32
import net.minecraft.resources.ResourceKey
34
33
import net.minecraft.resources.ResourceLocation
@@ -46,7 +45,6 @@ import java.net.http.HttpClient
46
45
import java.net.http.HttpRequest
47
46
import java.net.http.HttpResponse
48
47
import java.util.*
49
- import java.util.concurrent.CompletableFuture
50
48
import java.util.concurrent.ConcurrentHashMap
51
49
52
50
class FabricBootstrapImpl : FabricBootstrap , DedicatedServerModInitializer {
@@ -80,8 +78,7 @@ class FabricBootstrapImpl : FabricBootstrap, DedicatedServerModInitializer {
80
78
81
79
private lateinit var server: MinecraftServer
82
80
private lateinit var dataFolder: File
83
- lateinit var audiences: MinecraftServerAudiences
84
- private set
81
+ private lateinit var audiences: MinecraftServerAudiences
85
82
private lateinit var volatileCode: FabricVolatileCode
86
83
private lateinit var version: String
87
84
private lateinit var core: BetterHudImpl
@@ -101,6 +98,16 @@ class FabricBootstrapImpl : FabricBootstrap, DedicatedServerModInitializer {
101
98
audiences = MinecraftServerAudiences .builder(it).build()
102
99
volatileCode = FabricVolatileCode ()
103
100
101
+ val dispatcher = it.commands.dispatcher
102
+ CommandManager .module.build { s: CommandSourceStack ->
103
+ when (val e = s.entity) {
104
+ is ServerPlayer -> BetterHudAPI .inst().playerManager.getHudPlayer(e.uuid)
105
+ null -> BetterHudAPI .inst().bootstrap().consoleSource()
106
+ else -> null
107
+ }
108
+ }.forEach { node ->
109
+ dispatcher.register(node)
110
+ }
104
111
core.start()
105
112
ModuleManager .start()
106
113
CompatibilityManager .start()
@@ -130,9 +137,6 @@ class FabricBootstrapImpl : FabricBootstrap, DedicatedServerModInitializer {
130
137
scheduler.stopAll()
131
138
logger.info(" Mod disabled." )
132
139
}
133
- CommandRegistrationCallback .EVENT .register { dispatcher, _, _ ->
134
- FabricCommand (this ).register(dispatcher)
135
- }
136
140
ServerPlayConnectionEvents .JOIN .register(ServerPlayConnectionEvents .Join { handler, _, _ ->
137
141
val player = handler.player
138
142
latestVersion?.let { latest ->
@@ -157,16 +161,14 @@ class FabricBootstrapImpl : FabricBootstrap, DedicatedServerModInitializer {
157
161
158
162
private fun register (player : ServerPlayer ) {
159
163
PlayerManagerImpl .addHudPlayer(player.uuid) {
160
- CompletableFuture .supplyAsync {
161
- val impl = HudPlayerFabric (server, player, audiences.audience( listOf (player)))
164
+ val impl = HudPlayerFabric (server, player, audiences.audience( listOf (player)))
165
+ asyncTask {
162
166
DatabaseManagerImpl .currentDatabase.load(impl)
163
167
task {
164
- taskLater(20 ) {
165
- sendResourcePack(impl)
166
- }
168
+ sendResourcePack(impl)
167
169
}
168
- impl
169
- }.join()
170
+ }
171
+ impl
170
172
}
171
173
}
172
174
private fun disconnect (player : ServerPlayer ) {
@@ -276,7 +278,4 @@ class FabricBootstrapImpl : FabricBootstrap, DedicatedServerModInitializer {
276
278
isAccessible = true
277
279
}[loader] as URLClassLoader
278
280
}
279
-
280
- override fun registerCommand (module : CommandModule <BetterCommandSource >) {
281
- }
282
281
}
0 commit comments