Skip to content

Commit 6dbb20f

Browse files
authored
Merge pull request #18 from SLNE-Development/chore/refactor
2 parents 9b69f66 + ecf545f commit 6dbb20f

21 files changed

+324
-405
lines changed

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
kotlin.code.style=official
22
kotlin.stdlib.default.dependency=false
33
org.gradle.parallel=true
4-
version=1.21.11-1.3.3-SNAPSHOT
4+
version=1.21.11-1.3.3-SNAPSHOT

gradle/wrapper/gradle-wrapper.jar

1.71 KB
Binary file not shown.

gradlew

Lines changed: 2 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

gradlew.bat

Lines changed: 1 addition & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

settings.gradle.kts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,7 @@ pluginManagement {
55
gradlePluginPortal()
66
maven("https://repo.slne.dev/repository/maven-public/") { name = "maven-public" }
77
}
8+
dependencies {
9+
classpath("dev.slne.surf:surf-api-gradle-plugin:1.21.11+")
10+
}
811
}

src/main/kotlin/dev/slne/surf/moderation/tools/BukkitMain.kt renamed to src/main/kotlin/dev/slne/surf/moderation/tools/PaperMain.kt

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,25 @@ package dev.slne.surf.moderation.tools
22

33
import com.github.shynixn.mccoroutine.folia.SuspendingJavaPlugin
44
import dev.slne.surf.moderation.tools.commands.*
5-
import dev.slne.surf.moderation.tools.config.SurfModerationToolConfigProvider
5+
import dev.slne.surf.moderation.tools.config.SurfModerationToolConfig
66
import dev.slne.surf.moderation.tools.listener.PlayerActionListener
77
import dev.slne.surf.surfapi.bukkit.api.event.register
88
import org.bukkit.plugin.java.JavaPlugin
99

1010
val plugin get() = JavaPlugin.getPlugin(BukkitMain::class.java)
1111

1212
class BukkitMain : SuspendingJavaPlugin() {
13+
override suspend fun onLoadAsync() {
14+
SurfModerationToolConfig.init()
15+
}
16+
1317
override suspend fun onEnableAsync() {
1418
surfModerationToolsCommand()
1519
faqCommand()
1620
rotateCommand()
1721
freezeCommand()
1822
unfreezeCommand()
1923

20-
PlayerActionListener().register()
24+
PlayerActionListener.register()
2125
}
22-
23-
val moderationToolConfig = SurfModerationToolConfigProvider()
2426
}

src/main/kotlin/dev/slne/surf/moderation/tools/commands/FaqCommand.kt

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,24 +3,23 @@ package dev.slne.surf.moderation.tools.commands
33
import dev.jorel.commandapi.kotlindsl.commandAPICommand
44
import dev.jorel.commandapi.kotlindsl.entitySelectorArgumentManyPlayers
55
import dev.jorel.commandapi.kotlindsl.getValue
6-
import dev.jorel.commandapi.kotlindsl.playerExecutor
76
import dev.slne.surf.moderation.tools.commands.argument.faqArgument
87
import dev.slne.surf.moderation.tools.faq.Faq
9-
import dev.slne.surf.moderation.tools.service.faqService
8+
import dev.slne.surf.moderation.tools.service.FaqService
109
import dev.slne.surf.moderation.tools.utils.PermissionRegistry
10+
import dev.slne.surf.surfapi.bukkit.api.command.executors.playerExecutorSuspend
1111
import org.bukkit.entity.Player
1212

1313
fun faqCommand() = commandAPICommand("faq") {
1414
withPermission(PermissionRegistry.COMMAND_FAQ)
1515
faqArgument("faq")
16-
entitySelectorArgumentManyPlayers("targets", allowEmpty = true, optional = true)
16+
entitySelectorArgumentManyPlayers("targets", optional = true)
1717

18-
playerExecutor { player, args ->
18+
playerExecutorSuspend { player, args ->
1919
val faq: Faq by args
2020
val targets: Collection<Player>? by args
21-
val usableTargets = targets ?: emptyList()
2221

23-
faqService.sendFaq(player, faq, usableTargets)
22+
FaqService.sendFaq(player, faq, targets)
2423
}
2524
}
2625

src/main/kotlin/dev/slne/surf/moderation/tools/commands/FreezeCommand.kt

Lines changed: 14 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,68 +1,57 @@
11
package dev.slne.surf.moderation.tools.commands
22

33
import com.github.shynixn.mccoroutine.folia.entityDispatcher
4-
import com.github.shynixn.mccoroutine.folia.launch
5-
import dev.jorel.commandapi.kotlindsl.anyExecutor
64
import dev.jorel.commandapi.kotlindsl.commandAPICommand
75
import dev.jorel.commandapi.kotlindsl.entitySelectorArgumentOnePlayer
86
import dev.jorel.commandapi.kotlindsl.getValue
97
import dev.slne.surf.moderation.tools.plugin
10-
import dev.slne.surf.moderation.tools.service.freezeService
8+
import dev.slne.surf.moderation.tools.service.FreezeService
119
import dev.slne.surf.moderation.tools.utils.PermissionRegistry
1210
import dev.slne.surf.moderation.tools.utils.durationArgument
11+
import dev.slne.surf.surfapi.bukkit.api.command.executors.anyExecutorSuspend
1312
import dev.slne.surf.surfapi.core.api.messages.adventure.sendText
13+
import kotlinx.coroutines.future.await
14+
import kotlinx.coroutines.withContext
1415
import org.bukkit.entity.Player
16+
import kotlin.time.Duration
1517

1618

1719
fun freezeCommand() = commandAPICommand("freeze") {
1820
withPermission(PermissionRegistry.COMMAND_FREEZE)
1921
entitySelectorArgumentOnePlayer("targetPlayer")
2022
durationArgument("duration")
2123

22-
anyExecutor { sender, args ->
24+
anyExecutorSuspend { sender, args ->
2325
val targetPlayer: Player by args
2426
val duration: Long by args
2527

2628
val targetUuid = targetPlayer.uniqueId
2729

28-
if (freezeService.isFrozen(targetUuid)) {
30+
if (FreezeService.isFrozen(targetUuid)) {
2931
sender.sendText {
3032
appendInfoPrefix()
31-
error("Der Spieler")
32-
appendSpace()
3333
variableValue(targetPlayer.name)
3434
appendSpace()
3535
error("ist bereits eingefroren.")
3636
}
37-
return@anyExecutor
37+
return@anyExecutorSuspend
3838
}
3939

40-
freezeService.freeze(targetUuid, duration)
40+
FreezeService.freeze(targetUuid, duration)
4141

42-
plugin.launch(plugin.entityDispatcher(targetPlayer)) {
43-
val location = targetPlayer.location.clone()
42+
withContext(plugin.entityDispatcher(targetPlayer)) {
43+
val location = targetPlayer.location
4444
val world = location.world
4545

46-
var teleported = false
47-
for (y in location.blockY downTo 0) {
48-
val block = world.getBlockAt(location.blockX, y, location.blockZ)
49-
if (block.type.isSolid) {
50-
location.y = y + 1.0
51-
targetPlayer.teleportAsync(location)
52-
teleported = true
53-
break
54-
}
55-
}
46+
val teleported = targetPlayer.teleportAsync(location.toHighestLocation()).await()
47+
5648
if (!teleported) {
57-
val fallbackLocation = world.spawnLocation
58-
targetPlayer.teleportAsync(fallbackLocation)
49+
targetPlayer.teleportAsync(world.spawnLocation).await()
5950
}
6051
}
6152

6253
sender.sendText {
6354
appendSuccessPrefix()
64-
success("Der Spieler")
65-
appendSpace()
6655
variableValue(targetPlayer.name)
6756
appendSpace()
6857
success("wurde erfolgreich eingefroren.")

src/main/kotlin/dev/slne/surf/moderation/tools/commands/ReloadConfigCommand.kt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,16 @@ package dev.slne.surf.moderation.tools.commands
33
import dev.jorel.commandapi.CommandAPICommand
44
import dev.jorel.commandapi.kotlindsl.anyExecutor
55
import dev.jorel.commandapi.kotlindsl.subcommand
6-
import dev.slne.surf.moderation.tools.plugin
6+
import dev.slne.surf.moderation.tools.config.SurfModerationToolConfig
77
import dev.slne.surf.moderation.tools.utils.PermissionRegistry
88
import dev.slne.surf.surfapi.core.api.messages.adventure.sendText
99
import kotlin.system.measureTimeMillis
1010

1111
fun CommandAPICommand.surfModToolsReloadCommand() = subcommand("reload") {
1212
withPermission(PermissionRegistry.COMMAND_SURF_MOD_TOOLS)
1313
anyExecutor { sender, _ ->
14-
1514
val ms = measureTimeMillis {
16-
plugin.moderationToolConfig.reload()
15+
SurfModerationToolConfig.reloadFromFile()
1716
}
1817

1918
sender.sendText {

src/main/kotlin/dev/slne/surf/moderation/tools/commands/RotateCommand.kt

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,32 @@
11
package dev.slne.surf.moderation.tools.commands
22

33
import com.github.shynixn.mccoroutine.folia.entityDispatcher
4-
import com.github.shynixn.mccoroutine.folia.launch
5-
import dev.jorel.commandapi.kotlindsl.anyExecutor
64
import dev.jorel.commandapi.kotlindsl.commandAPICommand
75
import dev.jorel.commandapi.kotlindsl.entitySelectorArgumentOnePlayer
86
import dev.jorel.commandapi.kotlindsl.getValue
97
import dev.slne.surf.moderation.tools.plugin
108
import dev.slne.surf.moderation.tools.utils.PermissionRegistry
9+
import dev.slne.surf.surfapi.bukkit.api.command.executors.anyExecutorSuspend
1110
import dev.slne.surf.surfapi.core.api.messages.adventure.sendText
11+
import dev.slne.surf.surfapi.core.api.util.random
12+
import kotlinx.coroutines.withContext
1213
import org.bukkit.entity.Player
1314

1415
fun rotateCommand() = commandAPICommand("rotate") {
1516
entitySelectorArgumentOnePlayer("targetPlayer")
1617
withPermission(PermissionRegistry.COMMAND_ROTATE)
1718

18-
anyExecutor { sender, args ->
19+
anyExecutorSuspend { sender, args ->
1920
val targetPlayer: Player by args
2021

21-
val randomYaw = (-180..180).random().toFloat()
22-
val randomPitch = (-90..90).random().toFloat()
22+
val randomYaw = random.nextFloat(-180f, 180f)
23+
val randomPitch = random.nextFloat(-90f, 90f)
2324

24-
plugin.launch(plugin.entityDispatcher(targetPlayer)) {
25+
withContext(plugin.entityDispatcher(targetPlayer)) {
2526
targetPlayer.setRotation(randomYaw, randomPitch)
2627

2728
sender.sendText {
2829
appendSuccessPrefix()
29-
success("Der Spieler ")
3030
variableValue(targetPlayer.name)
3131
success(" wurde erfolgreich rotiert.")
3232
}

0 commit comments

Comments
 (0)