From 6cea251748fee05dfb3eb8b6e670b3478a2d6ccb Mon Sep 17 00:00:00 2001 From: CerealAxis <2741798712@qq.com> Date: Sun, 17 Mar 2024 17:37:48 +0800 Subject: [PATCH] Features:Commands(beta) --- build.gradle.kts | 2 +- src/main/java/xaviermc/top/iseeyou/ISeeYou.kt | 64 +++++++++++++++++-- .../java/xaviermc/top/iseeyou/TomlEx.java | 2 +- 3 files changed, 62 insertions(+), 6 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index d5d8301..3afffef 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -26,7 +26,7 @@ dependencies { compileOnly(files("libs/ThemisAPI_0.15.3.jar")) compileOnly(files("libs/Matrix_7.7.15A.jar")) compileOnly("top.leavesmc.leaves:leaves-api:1.20.4-R0.1-SNAPSHOT") - implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8") + implementation("org.jetbrains.kotlin:kotlin-stdlib:1.9.0") compileOnly("org.bstats:bstats-bukkit:3.0.2") implementation("com.moandjiezana.toml:toml4j:0.7.2") } diff --git a/src/main/java/xaviermc/top/iseeyou/ISeeYou.kt b/src/main/java/xaviermc/top/iseeyou/ISeeYou.kt index 44fe4e9..75910c4 100644 --- a/src/main/java/xaviermc/top/iseeyou/ISeeYou.kt +++ b/src/main/java/xaviermc/top/iseeyou/ISeeYou.kt @@ -1,8 +1,11 @@ package xaviermc.top.iseeyou import org.bukkit.Bukkit +import org.bukkit.command.Command import org.bukkit.command.CommandExecutor +import org.bukkit.command.CommandSender import org.bukkit.configuration.InvalidConfigurationException +import org.bukkit.entity.Player import org.bukkit.plugin.java.JavaPlugin import org.bukkit.scheduler.BukkitRunnable import top.leavesmc.leaves.entity.Photographer @@ -20,7 +23,7 @@ import java.time.LocalDate import java.util.* import kotlin.io.path.isDirectory import kotlin.math.pow - +import com.moandjiezana.toml.Toml var toml: TomlEx? = null var photographers = mutableMapOf() @@ -71,7 +74,7 @@ class ISeeYou : JavaPlugin(), CommandExecutor { toml!!.data.recordSuspiciousPlayer.enableMatrixIntegration ) Bukkit.getPluginManager().registerEvents(MatrixListener(), this) - if (toml!!.data.enableBstats){ + if (toml!!.data.enableBstats) { val pluginId = 21068 val metrics: Metrics = Metrics(this, pluginId) metrics.addCustomChart( @@ -79,10 +82,12 @@ class ISeeYou : JavaPlugin(), CommandExecutor { "chart_id" ) { "My value" }) } - if (toml!!.data.enableUpdateChecker){ + if (toml!!.data.enableUpdateChecker) { val updateChecker: UpdateChecker = UpdateChecker(this, 115177) updateChecker.checkForUpdates() } + // Registering custom commands + this.getCommand("icu")?.setExecutor(this) } private fun setupConfig() { @@ -179,4 +184,55 @@ class ISeeYou : JavaPlugin(), CommandExecutor { return deletedCount } -} + override fun onCommand(sender: CommandSender, command: Command, label: String, args: Array): Boolean { + if (command.name.equals("icu", ignoreCase = true)) { + if (args.isEmpty()) { + // Handle /icu command + // Add logic here if needed + return true + } + + when (args[0]) { + "place" -> { + if (args.size < 2 || args.size > 3) { + sender.sendMessage("Usage: /icu place [name] []") + return true + } + val name = args[1] + val player: Player? = if (args.size == 3) Bukkit.getPlayer(args[2]) else sender as? Player + if (player != null) { + // Place photographer at player's location + val photographer = Bukkit.getPhotographerManager().createPhotographer(name, player.location) + if (photographer != null) { + photographers[name] = photographer + sender.sendMessage("Photographer '$name' has been placed.") + } else { + sender.sendMessage("Failed to place photographer.") + } + } else { + sender.sendMessage("Player not found.") + } + } + + "remove" -> { + if (args.size < 2) { + sender.sendMessage("Usage: /icu remove [name]") + return true + } + val name = args[1] + val photographer = photographers.remove(name) + if (photographer != null) { + photographer.stopRecording() + sender.sendMessage("Photographer '$name' has been removed.") + } else { + sender.sendMessage("Photographer '$name' not found.") + } + } + + else -> sender.sendMessage("Unknown command. Usage: /icu place|remove [name] ") + } + return true + } + return false + } +} \ No newline at end of file diff --git a/src/main/java/xaviermc/top/iseeyou/TomlEx.java b/src/main/java/xaviermc/top/iseeyou/TomlEx.java index 7dea891..d3c0244 100644 --- a/src/main/java/xaviermc/top/iseeyou/TomlEx.java +++ b/src/main/java/xaviermc/top/iseeyou/TomlEx.java @@ -33,7 +33,7 @@ public TomlEx(String filePath, Class clazz) { save(); } - public void read(){ + public void read() { data = this.read(file).to(clazz); }