Skip to content

Instantly share code, notes, and snippets.

@aeshthetic
Created October 30, 2017 01:57
Show Gist options
  • Save aeshthetic/2e5cee824398ec5ad360e6e9571a0a58 to your computer and use it in GitHub Desktop.
Save aeshthetic/2e5cee824398ec5ad360e6e9571a0a58 to your computer and use it in GitHub Desktop.
class Main : JavaPlugin() {
override fun onEnable() {
server.pluginManager.registerEvents(MessageListener(), this)
}
override fun onDisable() {}
override fun onCommand(sender: CommandSender, command: Command, label: String, args: Array<out String>): Boolean {
if (sender !is Player || !args.isNotEmpty())
return false
val player: Player = sender
when (command.name) {
"whisper" -> {
val recipient = Bukkit.getPlayer(args[0])?: return false
val message = args.slice(1.until(args.size)).joinToString(" ")
val isNear = player.isNear(recipient, 5.0, 5.0, 5.0)
if (isNear) {
for(receiver in listOf(player, recipient)) {
receiver.spigot().sendMessage(formatMessage(message, player, ChatColor.GREEN))
}
} else {
player.spigot().sendMessage(TextComponent("It appears as though no one heard you").apply { isItalic = true })
}
return (isNear)
}
"yell" -> {
val recipients: MutableList<Player> = (player.getNearbyEntities(100.0, 100.0, 100.0))
.filter { it is Player }
.map {it as Player}
.toMutableList()
recipients.add(player)
val message = args.slice(0.until(args.size)).joinToString(" ")
for (recipient in recipients) {
recipient.spigot().sendMessage(formatMessage(message, player, ChatColor.DARK_GREEN))
}
player.foodLevel -= 1
if (recipients.size <= 1) {
player.spigot().sendMessage(TextComponent("It appears as though no one heard you").apply { isItalic = true })
return false
}
return true
}
}
return false
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment