This commit is contained in:
2025-02-12 17:54:44 +08:00
parent 2a8f395ae9
commit 48217cca0d
6 changed files with 32 additions and 35 deletions

View File

@@ -3,7 +3,12 @@ package xyz.fortern.minehunt
import net.kyori.adventure.text.Component import net.kyori.adventure.text.Component
import net.kyori.adventure.text.format.NamedTextColor import net.kyori.adventure.text.format.NamedTextColor
import net.kyori.adventure.title.Title import net.kyori.adventure.title.Title
import org.bukkit.* import org.bukkit.Bukkit
import org.bukkit.Difficulty
import org.bukkit.GameMode
import org.bukkit.GameRule
import org.bukkit.Location
import org.bukkit.Material
import org.bukkit.enchantments.Enchantment import org.bukkit.enchantments.Enchantment
import org.bukkit.entity.Player import org.bukkit.entity.Player
import org.bukkit.inventory.ItemStack import org.bukkit.inventory.ItemStack
@@ -21,7 +26,7 @@ class Console {
var stage: GameStage = GameStage.PREPARING var stage: GameStage = GameStage.PREPARING
var overworld = Bukkit.getWorld("world")!! private var overworld = Bukkit.getWorld("world")!!
/** /**
* 速通者队伍 * 速通者队伍

View File

@@ -2,7 +2,6 @@ package xyz.fortern.minehunt
import org.bukkit.Bukkit import org.bukkit.Bukkit
import org.bukkit.plugin.java.JavaPlugin import org.bukkit.plugin.java.JavaPlugin
import xyz.fortern.minehunt.command.GodCommand
import xyz.fortern.minehunt.command.TestCommand import xyz.fortern.minehunt.command.TestCommand
import xyz.fortern.minehunt.listener.PlayerListener import xyz.fortern.minehunt.listener.PlayerListener
@@ -22,9 +21,11 @@ class Minehunt : JavaPlugin() {
// 初始化 // 初始化
instance = this instance = this
val console = Console() val console = Console()
// 注册命令
Bukkit.getPluginManager().registerEvents(PlayerListener(console), this) Bukkit.getPluginManager().registerEvents(PlayerListener(console), this)
Bukkit.getPluginCommand("god")!!.setExecutor(GodCommand()) // 注册事件
Bukkit.getPluginCommand("test")!!.setExecutor(TestCommand()) Bukkit.getPluginCommand("test")!!.setExecutor(TestCommand())
} }

View File

@@ -1,14 +0,0 @@
package xyz.fortern.minehunt.command
import org.bukkit.command.Command
import org.bukkit.command.CommandExecutor
import org.bukkit.command.CommandSender
import org.bukkit.entity.Player
class GodCommand : CommandExecutor {
override fun onCommand(sender: CommandSender, command: Command, label: String, args: Array<out String>?): Boolean {
if (sender is Player)
sender.isInvulnerable = !sender.isInvulnerable
return true
}
}

View File

@@ -1,5 +1,6 @@
package xyz.fortern.minehunt.command package xyz.fortern.minehunt.command
import net.kyori.adventure.text.Component
import org.bukkit.Bukkit import org.bukkit.Bukkit
import org.bukkit.command.Command import org.bukkit.command.Command
import org.bukkit.command.CommandExecutor import org.bukkit.command.CommandExecutor
@@ -11,15 +12,32 @@ import org.bukkit.command.CommandSender
class TestCommand : CommandExecutor { class TestCommand : CommandExecutor {
override fun onCommand(sender: CommandSender, command: Command, label: String, args: Array<out String>): Boolean { override fun onCommand(sender: CommandSender, command: Command, label: String, args: Array<out String>): Boolean {
when (args[0]) { when (args[0]) {
// 发送消息
"sendTo" -> { "sendTo" -> {
if (args.size < 2) {
sender.sendMessage(Component.text("需要参数"))
return true
}
// 给某个玩家发消息 // 给某个玩家发消息
val name = args[1] val name = args[1]
val player = Bukkit.getPlayer(name) val player = Bukkit.getPlayer(name)
if (player != null) { if (player != null)
player.sendMessage("离线发送消息") player.sendMessage("离线发送消息")
} else { else
sender.sendMessage("玩家 $name 不存在") sender.sendMessage("玩家 $name 不存在")
} }
// 无敌
"invulnerable" -> {
if (args.size < 2) {
sender.sendMessage(Component.text("需要参数"))
return true
}
val name = args[1]
val player = Bukkit.getPlayer(name)
if (player != null)
player.isInvulnerable = !player.isInvulnerable
else
sender.sendMessage("玩家 $name 不存在")
} }
} }
return true return true

View File

@@ -7,7 +7,6 @@ import org.bukkit.event.entity.PlayerDeathEvent
import org.bukkit.event.player.PlayerDropItemEvent import org.bukkit.event.player.PlayerDropItemEvent
import org.bukkit.event.player.PlayerJoinEvent import org.bukkit.event.player.PlayerJoinEvent
import org.bukkit.event.player.PlayerMoveEvent import org.bukkit.event.player.PlayerMoveEvent
import org.bukkit.event.player.PlayerQuitEvent
import xyz.fortern.minehunt.Console import xyz.fortern.minehunt.Console
import xyz.fortern.minehunt.Console.GameStage import xyz.fortern.minehunt.Console.GameStage
@@ -41,18 +40,6 @@ class PlayerListener(
} }
} }
/**
* 玩家退出服务器时的操作
*/
@EventHandler
fun onPlayerQuit(event: PlayerQuitEvent) {
val player = event.player
// 速通者退出时从speedrunnerList中移除避免指南针遍历
// if (console.stage == GameStage.PROCESSING && console.speedrunnerSet.contains(player))
// console.speedrunnerList.remove(player)
}
/** /**
* 玩家丢弃物品时,阻止玩家丢弃猎人指南针,并将追踪目标切换到下一个 * 玩家丢弃物品时,阻止玩家丢弃猎人指南针,并将追踪目标切换到下一个
*/ */

View File

@@ -4,8 +4,8 @@ main: xyz.fortern.minehunt.Minehunt
api-version: '1.21' api-version: '1.21'
authors: [ Fortern ] authors: [ Fortern ]
# TODO 插件加载时机
commands: commands:
god:
description: "使自己无敌"
test: test:
description: "测试" description: "测试"