diff options
| author | Linnea Gräf <roman.graef@gmail.com> | 2023-09-27 15:36:27 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-09-27 15:36:27 +0200 |
| commit | 38b0e9ab04167dfe94af0a9fabca21f54f6f6f37 (patch) | |
| tree | b5ddd761c2e7cfe2fab24ad93d289e8fb3b8de97 /src/main/kotlin | |
| parent | a4c72d234c47a0d685ef872568c48ffd7865aee9 (diff) | |
| parent | e34d22adea31de68cf9bf081fa51dd652219e254 (diff) | |
| download | NotEnoughUpdates-38b0e9ab04167dfe94af0a9fabca21f54f6f6f37.tar.gz NotEnoughUpdates-38b0e9ab04167dfe94af0a9fabca21f54f6f6f37.tar.bz2 NotEnoughUpdates-38b0e9ab04167dfe94af0a9fabca21f54f6f6f37.zip | |
Merge branch 'master' into moulconfig
Diffstat (limited to 'src/main/kotlin')
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!") |
