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
|
package cat.freya.khs.bukkit
import cat.freya.khs.Khs
import cat.freya.khs.bukkit.disguise.Disguiser
import cat.freya.khs.bukkit.disguise.EntityHider
import cat.freya.khs.bukkit.event.*
import org.bukkit.command.Command
import org.bukkit.command.CommandSender
import org.bukkit.entity.Player as BukkitPlayer
import org.bukkit.plugin.java.JavaPlugin
import org.bukkit.scheduler.BukkitRunnable
class KhsPlugin : JavaPlugin() {
val shim: BukkitKhsShim = BukkitKhsShim(this)
val khs: Khs = Khs(shim)
// for blockhunt
val disguiser: Disguiser = Disguiser(this)
val entityHider: EntityHider = EntityHider()
override fun onEnable() {
khs.init()
if (!this.isEnabled()) return
// make sure onTick is run
object : BukkitRunnable() {
override fun run() {
khs.onTick()
disguiser.update()
}
}
.runTaskTimer(this, 0, 1)
// register bungee cord
server.messenger.registerOutgoingPluginChannel(this, "BungeeCord")
registerListeners()
}
override fun onDisable() {
khs.cleanup()
disguiser.cleanup()
}
private fun registerListeners() {
BreakListener(this)
ChatListener(this)
CommandListener(this)
DamageListener(this)
InteractListener(this)
InventoryListener(this)
JoinLeaveListener(this)
MovementListener(this)
PlaceListener(this)
PlayerListener(this)
PacketListener(this)
RespawnListener(this)
}
fun scheduleTask(fn: () -> Unit) {
if (!isEnabled) return
server.scheduler.runTask(this, fn)
}
override fun onCommand(
sender: CommandSender,
cmd: Command,
label: String,
args: Array<String>,
): Boolean {
val player = sender as? BukkitPlayer ?: return false
val khsPlayer = BukkitKhsPlayer(shim, player)
khs.commandGroup.handleCommand(khsPlayer, args.toList())
return true
}
override fun onTabComplete(
sender: CommandSender,
cmd: Command,
label: String,
args: Array<String>,
): List<String> {
val player = sender as? BukkitPlayer ?: return listOf()
val khsPlayer = BukkitKhsPlayer(shim, player)
return khs.commandGroup.handleTabComplete(khsPlayer, args.toList())
}
}
|