Skip to content

Commit 6b5ae83

Browse files
committed
Added CooldownCommands: reload, version, save.
1 parent 0fdf938 commit 6b5ae83

File tree

2 files changed

+159
-0
lines changed

2 files changed

+159
-0
lines changed

src/main/kotlin/com/mairwunnx/projectessentialscooldown/EntryPoint.kt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
package com.mairwunnx.projectessentialscooldown
22

3+
import com.mairwunnx.projectessentialscooldown.commands.CooldownCommand
34
import com.mairwunnx.projectessentialscore.EssBase
45
import net.minecraft.entity.player.ServerPlayerEntity
56
import net.minecraftforge.common.MinecraftForge
67
import net.minecraftforge.event.CommandEvent
78
import net.minecraftforge.eventbus.api.EventPriority
89
import net.minecraftforge.eventbus.api.SubscribeEvent
910
import net.minecraftforge.fml.common.Mod
11+
import net.minecraftforge.fml.event.server.FMLServerStartingEvent
1012
import net.minecraftforge.fml.event.server.FMLServerStoppingEvent
1113
import org.apache.logging.log4j.LogManager
1214

@@ -30,6 +32,12 @@ internal class EntryPoint : EssBase() {
3032
internal lateinit var modInstance: EntryPoint
3133
}
3234

35+
@SubscribeEvent
36+
fun onServerStarting(it: FMLServerStartingEvent) {
37+
logger.info("$modName starting mod loading ...")
38+
CooldownCommand.register(it.server.commandManager.dispatcher)
39+
}
40+
3341
@SubscribeEvent(priority = EventPriority.HIGH)
3442
internal fun onPlayerCommand(event: CommandEvent) {
3543
if (event.parseResults.context.source.entity is ServerPlayerEntity) {
Lines changed: 151 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,151 @@
1+
package com.mairwunnx.projectessentialscooldown.commands
2+
3+
import com.mairwunnx.projectessentialscooldown.CooldownConfig
4+
import com.mairwunnx.projectessentialscooldown.EntryPoint
5+
import com.mairwunnx.projectessentialscore.extensions.isPlayerSender
6+
import com.mairwunnx.projectessentialscore.extensions.sendMsg
7+
import com.mairwunnx.projectessentialscore.helpers.PERMISSION_LEVEL
8+
import com.mairwunnx.projectessentialspermissions.permissions.PermissionsAPI
9+
import com.mojang.brigadier.CommandDispatcher
10+
import com.mojang.brigadier.builder.LiteralArgumentBuilder
11+
import com.mojang.brigadier.context.CommandContext
12+
import net.minecraft.command.CommandSource
13+
import net.minecraft.command.Commands
14+
import org.apache.logging.log4j.LogManager
15+
16+
object CooldownCommand {
17+
private val logger = LogManager.getLogger()
18+
19+
fun register(
20+
dispatcher: CommandDispatcher<CommandSource>
21+
) {
22+
logger.info(" - register \"/essentials cooldown [...]\" command ...")
23+
24+
dispatcher.register(
25+
LiteralArgumentBuilder.literal<CommandSource>("essentials").then(
26+
Commands.literal("cooldown").executes {
27+
return@executes versionExecute(it)
28+
}.then(Commands.literal("reload").executes {
29+
return@executes reloadExecute(it)
30+
}).then(Commands.literal("save").executes {
31+
return@executes saveExecute(it)
32+
}).then(Commands.literal("version").executes {
33+
return@executes versionExecute(it)
34+
})
35+
)
36+
)
37+
}
38+
39+
private fun versionExecute(c: CommandContext<CommandSource>): Int {
40+
var isServerSender = false
41+
val commandSender = c.source
42+
val commandSenderNickName = if (c.isPlayerSender()) {
43+
c.source.asPlayer().name.string
44+
} else {
45+
isServerSender = true
46+
"server"
47+
}
48+
49+
if (isServerSender ||
50+
PermissionsAPI.hasPermission(commandSenderNickName, "ess.cooldown") ||
51+
PermissionsAPI.hasPermission(commandSenderNickName, "ess.stuff") ||
52+
PermissionsAPI.hasPermission(commandSenderNickName, "ess.cooldown.version")
53+
) {
54+
if (isServerSender) {
55+
logger.info(" ${EntryPoint.modInstance.modName}")
56+
logger.info("Version: ${EntryPoint.modInstance.modVersion}")
57+
logger.info("Maintainer: ${EntryPoint.modInstance.modMaintainer}")
58+
logger.info("Target Forge version: ${EntryPoint.modInstance.modTargetForge}")
59+
logger.info("Target Minecraft version: ${EntryPoint.modInstance.modTargetMC}")
60+
logger.info("Source code: ${EntryPoint.modInstance.modSources}")
61+
logger.info("Telegram chat: ${EntryPoint.modInstance.modTelegram}")
62+
} else {
63+
sendMsg(
64+
"cooldown",
65+
commandSender,
66+
"version.success",
67+
EntryPoint.modInstance.modName,
68+
EntryPoint.modInstance.modVersion,
69+
EntryPoint.modInstance.modMaintainer,
70+
EntryPoint.modInstance.modTargetForge,
71+
EntryPoint.modInstance.modTargetMC,
72+
EntryPoint.modInstance.modSources,
73+
EntryPoint.modInstance.modTelegram
74+
)
75+
}
76+
return 0
77+
} else {
78+
logger.warn(
79+
PERMISSION_LEVEL
80+
.replace("%0", commandSenderNickName)
81+
.replace("%1", "/essentials cooldown about")
82+
)
83+
sendMsg("cooldown", commandSender, "version.restricted")
84+
return 0
85+
}
86+
}
87+
88+
private fun reloadExecute(c: CommandContext<CommandSource>): Int {
89+
var isServerSender = false
90+
val commandSender = c.source
91+
val commandSenderNickName = if (c.isPlayerSender()) {
92+
c.source.asPlayer().name.string
93+
} else {
94+
isServerSender = true
95+
"server"
96+
}
97+
98+
if (isServerSender ||
99+
PermissionsAPI.hasPermission(commandSenderNickName, "ess.cooldown.reload") ||
100+
PermissionsAPI.hasPermission(commandSenderNickName, "ess.stuff")
101+
) {
102+
CooldownConfig.load()
103+
if (isServerSender) {
104+
logger.info("Successfully reloaded Project Essentials Cooldown configuration")
105+
} else {
106+
sendMsg("cooldown", commandSender, "reload.success")
107+
}
108+
return 0
109+
} else {
110+
logger.warn(
111+
PERMISSION_LEVEL
112+
.replace("%0", commandSenderNickName)
113+
.replace("%1", "/essentials cooldown reload")
114+
)
115+
sendMsg("cooldown", commandSender, "reload.restricted")
116+
return 0
117+
}
118+
}
119+
120+
private fun saveExecute(c: CommandContext<CommandSource>): Int {
121+
var isServerSender = false
122+
val commandSender = c.source
123+
val commandSenderNickName = if (c.isPlayerSender()) {
124+
c.source.asPlayer().name.string
125+
} else {
126+
isServerSender = true
127+
"server"
128+
}
129+
130+
if (isServerSender ||
131+
PermissionsAPI.hasPermission(commandSenderNickName, "ess.cooldown.save") ||
132+
PermissionsAPI.hasPermission(commandSenderNickName, "ess.stuff")
133+
) {
134+
CooldownConfig.save()
135+
if (isServerSender) {
136+
logger.info("Successfully saved Project Essentials configuration")
137+
} else {
138+
sendMsg("cooldown", commandSender, "save.success")
139+
}
140+
return 0
141+
} else {
142+
logger.warn(
143+
PERMISSION_LEVEL
144+
.replace("%0", commandSenderNickName)
145+
.replace("%1", "/essentials cooldown save")
146+
)
147+
sendMsg("cooldown", commandSender, "save.restricted")
148+
return 0
149+
}
150+
}
151+
}

0 commit comments

Comments
 (0)