blob: 59b8507843eaa4a1aedead826d0633477e34fea4 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
|
package at.hannibal2.skyhanni.config.commands
import at.hannibal2.skyhanni.SkyHanniMod
import at.hannibal2.skyhanni.config.ConfigGuiManager
import at.hannibal2.skyhanni.config.commands.SimpleCommand.ProcessCommandRunnable
import at.hannibal2.skyhanni.data.ApiDataLoader
import at.hannibal2.skyhanni.data.GuiEditManager
import at.hannibal2.skyhanni.features.bingo.BingoCardDisplay
import at.hannibal2.skyhanni.features.bingo.BingoNextStepHelper
import at.hannibal2.skyhanni.features.event.diana.BurrowWarpHelper
import at.hannibal2.skyhanni.features.event.diana.InquisitorWaypointShare
import at.hannibal2.skyhanni.features.garden.GardenAPI
import at.hannibal2.skyhanni.features.garden.GardenCropTimeCommand
import at.hannibal2.skyhanni.features.garden.composter.ComposterOverlay
import at.hannibal2.skyhanni.features.garden.farming.CropMoneyDisplay
import at.hannibal2.skyhanni.features.garden.farming.CropSpeedMeter
import at.hannibal2.skyhanni.features.garden.farming.GardenStartLocation
import at.hannibal2.skyhanni.features.garden.fortuneguide.CaptureFarmingGear
import at.hannibal2.skyhanni.features.garden.fortuneguide.FFGuideGUI
import at.hannibal2.skyhanni.features.minion.MinionFeatures
import at.hannibal2.skyhanni.features.misc.CityProjectFeatures
import at.hannibal2.skyhanni.features.misc.CollectionCounter
import at.hannibal2.skyhanni.features.misc.GhostCounter
import at.hannibal2.skyhanni.features.misc.MarkedPlayerManager
import at.hannibal2.skyhanni.features.misc.discordrpc.DiscordRPCManager
import at.hannibal2.skyhanni.features.slayer.SlayerItemProfitTracker
import at.hannibal2.skyhanni.test.PacketTest
import at.hannibal2.skyhanni.test.SkyHanniTestCommand
import at.hannibal2.skyhanni.test.TestBingo
import at.hannibal2.skyhanni.test.command.*
import at.hannibal2.skyhanni.utils.APIUtil
import at.hannibal2.skyhanni.utils.LorenzUtils
import net.minecraft.command.ICommandSender
import net.minecraftforge.client.ClientCommandHandler
object Commands {
private val openMainMenu: (Array<String>) -> Unit = {
if (it.isNotEmpty()) {
if (it[0].lowercase() == "gui") {
GuiEditManager.openGuiPositionEditor()
} else {
ConfigGuiManager.openConfigGui(it.joinToString(" "))
}
} else {
ConfigGuiManager.openConfigGui()
}
}
fun init() {
// main commands
registerCommand("sh", openMainMenu)
registerCommand("skyhanni", openMainMenu)
registerCommand("ff") { openFortuneGuide() }
// for users - regular commands
registerCommand("shmarkplayer") { MarkedPlayerManager.command(it) }
registerCommand("shtrackcollection") { CollectionCounter.command(it) }
registerCommand("shsetapikey") { ApiDataLoader.command(it) }
registerCommand("shcropspeedmeter") { CropSpeedMeter.toggle() }
registerCommand("shcroptime") { GardenCropTimeCommand.onCommand(it) }
registerCommand("shshareinquis") { InquisitorWaypointShare.sendInquisitor() }
registerCommand("shrpcstart") { DiscordRPCManager.startCommand() }
registerCommand("shcropstartlocation") { GardenStartLocation.setLocationCommand() }
registerCommand("shstopcityprojectreminder") { CityProjectFeatures.disable() }
registerCommand("shclearslayerprofits") { SlayerItemProfitTracker.clearProfitCommand(it) }
registerCommand("shimportghostcounterdata") { GhostCounter.importCTGhostCounterData() }
registerCommand("shclearfarmingitems") { clearFarmingItems() }
// for users - fix bugs
registerCommand("shupdaterepo") { SkyHanniMod.repo.updateRepo() }
registerCommand("shconfigsave") { SkyHanniMod.configManager.saveConfig("manual-command") }
registerCommand("shresetburrowwarps") { BurrowWarpHelper.resetDisabledWarps() }
registerCommand("shtogglehypixelapierrors") { APIUtil.toggleApiErrorMessages() }
registerCommand("shclearcropspeed") { GardenAPI.clearCropSpeed() }
registerCommand("shclearminiondata") { MinionFeatures.clearMinionData() }
// for developers - debug existing features
registerCommand("shtest") { SkyHanniTestCommand.testCommand(it) }
registerCommand("shtestbingo") { TestBingo.toggle() }
registerCommand("shprintbingohelper") { BingoNextStepHelper.command() }
registerCommand("shreloadbingodata") { BingoCardDisplay.command() }
registerCommand("shtestgardenvisitors") { SkyHanniTestCommand.testGardenVisitors() }
registerCommand("shtestcomposter") { ComposterOverlay.onCommand(it) }
registerCommand("shtestinquisitor") { InquisitorWaypointShare.test() }
registerCommand("shshowcropmoneycalculation") { CropMoneyDisplay.toggleShowCalculation() }
// for developers - coding help
registerCommand("shreloadlocalrepo") { SkyHanniMod.repo.reloadLocalRepo() }
registerCommand("shstoplisteners") { SkyHanniTestCommand.stopListeners() }
registerCommand("shreloadlisteners") { SkyHanniTestCommand.reloadListeners() }
registerCommand("shcopylocation") { SkyHanniTestCommand.copyLocation() }
registerCommand("shcopyentities") { CopyNearbyEntitiesCommand.command(it) }
registerCommand("shcopytablist") { CopyTabListCommand.command(it) }
registerCommand("shcopyscoreboard") { CopyScoreboardCommand.command(it) }
registerCommand("shcopyitem") { CopyItemCommand.command(it) }
registerCommand("shcopyparticles") { CopyNearbyParticlesCommand.command(it) }
registerCommand("shtestpacket") { PacketTest.toggle() }
registerCommand("shtestmessage") { TestChatCommand.command(it) }
registerCommand("shcopyerror") { CopyErrorCommand.command(it) }
}
@JvmStatic
fun openFortuneGuide() {
if (!LorenzUtils.inSkyBlock) {
LorenzUtils.chat("§cJoin Skyblock to open the fortune guide!")
} else {
CaptureFarmingGear.captureFarmingGear()
SkyHanniMod.screenToOpen = FFGuideGUI()
}
}
private fun clearFarmingItems() {
val config = GardenAPI.config?.fortune ?: return
LorenzUtils.chat("§e[SkyHanni] clearing farming items")
config.farmingItems.clear()
config.outdatedItems.clear()
}
private fun registerCommand(name: String, function: (Array<String>) -> Unit) {
ClientCommandHandler.instance.registerCommand(SimpleCommand(name, createCommand(function)))
}
private fun createCommand(function: (Array<String>) -> Unit) =
object : ProcessCommandRunnable() {
override fun processCommand(sender: ICommandSender?, args: Array<out String>) {
function(args.asList().toTypedArray())
}
}
}
|