Skip to content

Commit b02cc19

Browse files
j10a1n15meowora
andauthored
feat: dungeon join command (#2)
Co-authored-by: Mona <59416038+meowora@users.noreply.github.com>
1 parent 69d2829 commit b02cc19

5 files changed

Lines changed: 86 additions & 2 deletions

File tree

build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ dependencies {
5050
})
5151
includeImplementation(libs.skyblockapi)
5252
includeImplementation(libs.meowdding.lib)
53+
includeImplementation(libs.meowdding.remote.repo)
5354
includeImplementation(versionedCatalog["placeholders"])
5455
modImplementation(libs.fabric.loader)
5556
modImplementation(libs.repo.lib)

gradle/libs.versions.toml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,16 @@ repo-lib = "3.0.2"
88
devauth = "1.2.1"
99

1010
ksp = "2.2.10-2.0.2"
11-
meowdding-resources = "1.0.15"
1211

1312
rconfigkt = "3.5.15"
1413

1514
gson = "2.12.1"
15+
16+
meowdding-resources = "1.0.15"
1617
meowdding-ktmodules = "1.0.5"
1718
meowdding-ktcodecs = "1.1.0"
1819
meowdding-lib = "3.0.13"
20+
meowdding-remote-repo = "1.0.2"
1921

2022
[libraries]
2123

@@ -29,10 +31,12 @@ devauth = { module = "me.djtheredstoner:DevAuth-fabric", version.ref = "devauth"
2931
resourceful-config-kotlin = { module = "com.teamresourceful.resourcefulconfigkt:resourcefulconfigkt-fabric-1.21.5", version.ref = "rconfigkt" }
3032

3133
gson = { module = "com.google.code.gson:gson", version.ref = "gson" }
34+
3235
meowdding-resources = { module = "me.owdding.repo:compacting-resources", version.ref = "meowdding-resources" }
3336
meowdding-ktmodules = { module = "me.owdding.ktmodules:KtModules", version.ref = "meowdding-ktmodules" }
3437
meowdding-ktcodecs = { module = "me.owdding.ktcodecs:KtCodecs", version.ref = "meowdding-ktcodecs" }
3538
meowdding-lib = { module = "me.owdding.meowdding-lib:meowdding-lib", version.ref = "meowdding-lib" }
39+
meowdding-remote-repo = { module = "me.owdding.repo:remote-repo", version.ref = "meowdding-remote-repo" }
3640

3741
[plugins]
3842
ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" }
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package me.owdding.mortem.config.category
2+
3+
import com.teamresourceful.resourcefulconfigkt.api.CategoryKt
4+
5+
object CommandsConfig : CategoryKt("commands") {
6+
override val name = Translated("mortem.config.commands")
7+
8+
var join by boolean(true) {
9+
translation = "mortem.config.commands.join"
10+
}
11+
}

src/main/kotlin/me/owdding/mortem/config/category/NotifierConfig.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import com.teamresourceful.resourcefulconfigkt.api.CategoryKt
44
import me.owdding.mortem.config.separator
55
import me.owdding.mortem.utils.colors.MortemColors
66
import net.minecraft.network.chat.Component
7-
import net.minecraft.util.CommonColors
87
import tech.thatgravyboat.skyblockapi.api.profile.party.PartyAPI
98
import tech.thatgravyboat.skyblockapi.helpers.McClient
109
import tech.thatgravyboat.skyblockapi.utils.extentions.toFormattedName
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
package me.owdding.mortem.features.comands
2+
3+
import com.mojang.serialization.Codec
4+
import com.mojang.serialization.codecs.RecordCodecBuilder
5+
import me.owdding.ktmodules.Module
6+
import me.owdding.lib.events.FinishRepoLoadingEvent
7+
import me.owdding.mortem.config.category.CommandsConfig
8+
import me.owdding.repo.RemoteRepo
9+
import tech.thatgravyboat.skyblockapi.api.area.dungeon.DungeonFloor
10+
import tech.thatgravyboat.skyblockapi.api.events.base.Subscription
11+
import tech.thatgravyboat.skyblockapi.api.events.misc.RegisterCommandsEvent
12+
import tech.thatgravyboat.skyblockapi.helpers.McClient
13+
import tech.thatgravyboat.skyblockapi.utils.json.Json.toData
14+
15+
@Module
16+
object JoinCommand {
17+
18+
private val dungeonsCommands = mutableMapOf<DungeonFloor, String>()
19+
//private val kuudraCommands = mutableMapOf<KuudraTier, String>()
20+
21+
private val DUNGEON_FLOOR_CODEC: Codec<DungeonFloor> = Codec.STRING.xmap(
22+
{ name -> DungeonFloor.getByName(name) },
23+
{ floor -> floor?.name },
24+
)
25+
//private val KUUDRA_TIER_CODEC: Codec<KuudraTier> = Codec.STRING.xmap(
26+
// { name -> KuudraTier.getByName(name) },
27+
// { tier -> tier?.name },
28+
//)
29+
30+
private val CODEC: Codec<Pair<Map<DungeonFloor, String>, Map<DungeonFloor, String>>> = RecordCodecBuilder.create {
31+
it.group(
32+
Codec.unboundedMap(DUNGEON_FLOOR_CODEC, Codec.STRING).fieldOf("dungeons").forGetter { it.first },
33+
Codec.unboundedMap(DUNGEON_FLOOR_CODEC, Codec.STRING).fieldOf("dungeons").forGetter { it.second },
34+
//Codec.unboundedMap(KUUDRA_TIER_CODEC, Codec.STRING).fieldOf("kuudra").forGetter { it.second },
35+
).apply(it) { a, b ->
36+
dungeonsCommands.apply {
37+
clear()
38+
putAll(a)
39+
}
40+
//kuudraCommands.apply {
41+
// clear()
42+
// putAll(b)
43+
//}
44+
a to b
45+
}
46+
}
47+
48+
@Subscription
49+
fun onCommand(event: RegisterCommandsEvent) {
50+
if (!CommandsConfig.join) return
51+
52+
dungeonsCommands.forEach { (dungeon, command) ->
53+
event.registerWithCallback("join${dungeon.name.lowercase()}") {
54+
McClient.sendCommand("joininstance $command")
55+
}
56+
}
57+
// kuudraCommands.forEach { (tier, command) ->
58+
// event.registerWithCallback("joinkuudra${tier.name.lowercase()}") {
59+
// McClient.sendCommand("joininstance $command")
60+
// }
61+
// }
62+
}
63+
64+
@Subscription
65+
fun onRepo(event: FinishRepoLoadingEvent) {
66+
RemoteRepo.getFileContentAsJson("dungeons/joincommands.json")?.toData(CODEC)
67+
}
68+
69+
}

0 commit comments

Comments
 (0)