aboutsummaryrefslogtreecommitdiff
path: root/src/main/kotlin
diff options
context:
space:
mode:
authorLinnea Gräf <roman.graef@gmail.com>2023-09-27 15:36:27 +0200
committerGitHub <noreply@github.com>2023-09-27 15:36:27 +0200
commit38b0e9ab04167dfe94af0a9fabca21f54f6f6f37 (patch)
treeb5ddd761c2e7cfe2fab24ad93d289e8fb3b8de97 /src/main/kotlin
parenta4c72d234c47a0d685ef872568c48ffd7865aee9 (diff)
parente34d22adea31de68cf9bf081fa51dd652219e254 (diff)
downloadNotEnoughUpdates-38b0e9ab04167dfe94af0a9fabca21f54f6f6f37.tar.gz
NotEnoughUpdates-38b0e9ab04167dfe94af0a9fabca21f54f6f6f37.tar.bz2
NotEnoughUpdates-38b0e9ab04167dfe94af0a9fabca21f54f6f6f37.zip
Merge branch 'master' into moulconfig
Diffstat (limited to 'src/main/kotlin')
-rw-r--r--src/main/kotlin/io/github/moulberry/notenoughupdates/commands/dev/DevTestCommand.kt5
-rw-r--r--src/main/kotlin/io/github/moulberry/notenoughupdates/commands/help/HelpCommand.kt1
-rw-r--r--src/main/kotlin/io/github/moulberry/notenoughupdates/commands/misc/JoinCommand.kt103
-rw-r--r--src/main/kotlin/io/github/moulberry/notenoughupdates/miscfeatures/inventory/MuseumCheapestItemOverlay.kt5
4 files changed, 111 insertions, 3 deletions
diff --git a/src/main/kotlin/io/github/moulberry/notenoughupdates/commands/dev/DevTestCommand.kt b/src/main/kotlin/io/github/moulberry/notenoughupdates/commands/dev/DevTestCommand.kt
index b318a80e..e138b512 100644
--- a/src/main/kotlin/io/github/moulberry/notenoughupdates/commands/dev/DevTestCommand.kt
+++ b/src/main/kotlin/io/github/moulberry/notenoughupdates/commands/dev/DevTestCommand.kt
@@ -63,8 +63,9 @@ class DevTestCommand {
"0ce87d5a-fa5f-4619-ae78-872d9c5e07fe", // ascynx
"a049a538-4dd8-43f8-87d5-03f09d48b4dc", // egirlefe
"7a9dc802-d401-4d7d-93c0-8dd1bc98c70d", // efefury
- "bb855349-dfd8-4125-a750-5fc2cf543ad5", // hannibal2
- "eaa5623c-8413-46b7-a74b-2d74a42b2841" // calmwolfs
+ "bb855349-dfd8-4125-a750-5fc2cf543ad5", // hannibal2
+ "eaa5623c-8413-46b7-a74b-2d74a42b2841", // calmwolfs
+ "e2c6f077-d45c-43ac-8322-857c7f8df3b9" // vixid
)
val SPECIAL_KICK = "SPECIAL_KICK"
diff --git a/src/main/kotlin/io/github/moulberry/notenoughupdates/commands/help/HelpCommand.kt b/src/main/kotlin/io/github/moulberry/notenoughupdates/commands/help/HelpCommand.kt
index d4dd0e1e..16ca0d1b 100644
--- a/src/main/kotlin/io/github/moulberry/notenoughupdates/commands/help/HelpCommand.kt
+++ b/src/main/kotlin/io/github/moulberry/notenoughupdates/commands/help/HelpCommand.kt
@@ -42,6 +42,7 @@ class HelpCommand {
"§6/neuoverlay §r§7- Opens GUI Editor for quickcommands and searchbar.",
"§6/neucalendar §r§7- Opens NEU's custom calendar GUI.",
"§6/neucalc §r§7- Run calculations.",
+ "§6/join §r7- Join instance like k1/f1/m7/fe/kuudra inf",
"",
"§6§lOld commands:",
"§6/peek §b?{user} §r§7- Shows quick stats for a user.",
diff --git a/src/main/kotlin/io/github/moulberry/notenoughupdates/commands/misc/JoinCommand.kt b/src/main/kotlin/io/github/moulberry/notenoughupdates/commands/misc/JoinCommand.kt
new file mode 100644
index 00000000..4f6c043d
--- /dev/null
+++ b/src/main/kotlin/io/github/moulberry/notenoughupdates/commands/misc/JoinCommand.kt
@@ -0,0 +1,103 @@
+/*
+ * Copyright (C) 2023 NotEnoughUpdates contributors
+ *
+ * This file is part of NotEnoughUpdates.
+ *
+ * NotEnoughUpdates is free software: you can redistribute it
+ * and/or modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation, either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * NotEnoughUpdates is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with NotEnoughUpdates. If not, see <https://www.gnu.org/licenses/>.
+ */
+
+package io.github.moulberry.notenoughupdates.commands.misc
+
+import com.mojang.brigadier.context.CommandContext
+import io.github.moulberry.notenoughupdates.NotEnoughUpdates
+import io.github.moulberry.notenoughupdates.autosubscribe.NEUAutoSubscribe
+import io.github.moulberry.notenoughupdates.events.RegisterBrigadierCommandEvent
+import io.github.moulberry.notenoughupdates.util.brigadier.*
+import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
+
+@NEUAutoSubscribe
+class JoinCommand {
+
+ fun removePartialPrefix(text: String, prefix: String): String? {
+ var lf: String? = null
+ for (i in 1..prefix.length) {
+ if (text.startsWith(prefix.substring(0, i))) {
+ lf = text.substring(i)
+ }
+ }
+ return lf
+ }
+
+ val kuudraLevelNames = listOf("NORMAL", "HOT", "BURNING", "FIERY", "INFERNAL")
+ val dungeonLevelNames = listOf("ONE", "TWO", "THREE", "FOUR", "FIVE", "SIX", "SEVEN")
+
+ @SubscribeEvent
+ fun onCommands(event: RegisterBrigadierCommandEvent) {
+ event.command("join") {
+ thenArgumentExecute("what", RestArgumentType) { what ->
+ if (!NotEnoughUpdates.INSTANCE.isOnSkyblock) {
+ NotEnoughUpdates.INSTANCE.sendChatMessage("/join ${this[what]}")
+ return@thenArgumentExecute
+ }
+ val w = this[what].replace(" ", "").lowercase()
+ val joinName = getNameFor(w)
+ if (joinName == null) {
+ reply("Could not find instance kind for $w")
+ } else {
+ reply("Running /joininstance $joinName")
+ NotEnoughUpdates.INSTANCE.sendChatMessage("/joininstance $joinName")
+ }
+ }
+ }
+ }
+
+ fun CommandContext<DefaultSource>.getNameFor(w: String): String? {
+ val kuudraLevel = removePartialPrefix(w, "kuudratier") ?: removePartialPrefix(w, "tier")
+ if (kuudraLevel != null) {
+ val l = kuudraLevel.toIntOrNull()?.let { it - 1 } ?: kuudraLevelNames.indexOfFirst {
+ it.startsWith(
+ kuudraLevel,
+ true
+ )
+ }
+ if (l !in kuudraLevelNames.indices) {
+ reply("Could not find kuudra kind for name $kuudraLevel")
+ return null
+ }
+ return "KUUDRA_${kuudraLevelNames[l]}"
+ }
+ val masterLevel = removePartialPrefix(w, "master")
+ val normalLevel =
+ removePartialPrefix(w, "floor") ?: removePartialPrefix(w, "catacombs") ?: removePartialPrefix(w, "dungeons")
+ val dungeonLevel = masterLevel ?: normalLevel
+ if (dungeonLevel != null) {
+ val l = dungeonLevel.toIntOrNull()?.let { it - 1 } ?: dungeonLevelNames.indexOfFirst {
+ it.startsWith(
+ dungeonLevel,
+ true
+ )
+ }
+ if (masterLevel == null && (l == -1 || null != removePartialPrefix(w, "entrance"))) {
+ return "CATACOMBS_ENTRANCE"
+ }
+ if (l !in dungeonLevelNames.indices) {
+ reply("Could not find dungeon kind for name $dungeonLevel")
+ return null
+ }
+ return "${if (masterLevel != null) "MASTER_" else ""}CATACOMBS_FLOOR_${dungeonLevelNames[l]}"
+ }
+ return null
+ }
+}
+
diff --git a/src/main/kotlin/io/github/moulberry/notenoughupdates/miscfeatures/inventory/MuseumCheapestItemOverlay.kt b/src/main/kotlin/io/github/moulberry/notenoughupdates/miscfeatures/inventory/MuseumCheapestItemOverlay.kt
index 8a711230..e968a4c7 100644
--- a/src/main/kotlin/io/github/moulberry/notenoughupdates/miscfeatures/inventory/MuseumCheapestItemOverlay.kt
+++ b/src/main/kotlin/io/github/moulberry/notenoughupdates/miscfeatures/inventory/MuseumCheapestItemOverlay.kt
@@ -412,7 +412,10 @@ object MuseumCheapestItemOverlay {
tooltip.add("")
}
- if (NotEnoughUpdates.INSTANCE.manager.getRecipesFor(line.internalNames[0]).isNotEmpty()) {
+ if (line.internalNames.isEmpty()) {
+ tooltip.add("${EnumChatFormatting.RED}Could not determine item!")
+ }
+ else if (NotEnoughUpdates.INSTANCE.manager.getRecipesFor(line.internalNames[0]).isNotEmpty()) {
tooltip.add("${EnumChatFormatting.YELLOW}${EnumChatFormatting.BOLD}Click to open recipe!")
} else {
tooltip.add("${EnumChatFormatting.RED}${EnumChatFormatting.BOLD}No recipe available!")