timed ban messages

This commit is contained in:
5vl 2022-05-05 20:55:43 +02:00
parent 68cd3d3c7d
commit 021317a065
No known key found for this signature in database
GPG Key ID: DA8938F22548E4D5
2 changed files with 17 additions and 3 deletions

View File

@ -1,9 +1,13 @@
package me.fivevl.deathban
import net.md_5.bungee.api.ChatColor
import org.bukkit.BanList
import org.bukkit.Bukkit
import org.bukkit.event.EventHandler
import org.bukkit.event.entity.PlayerDeathEvent
import org.bukkit.event.player.PlayerPreLoginEvent
import java.util.*
import kotlin.math.roundToInt
class Listener(instance: Main) : org.bukkit.event.Listener {
private var permission = ""
@ -13,7 +17,7 @@ class Listener(instance: Main) : org.bukkit.event.Listener {
init {
this.permission = instance.config.getString("bypass-permission")!!
this.time = instance.config.getInt("deathban-time")
this.message = ChatColor.translateAlternateColorCodes('&', instance.config.getString("deathban-message")!!.replace("%time%", time.toString()))
this.message = ChatColor.translateAlternateColorCodes('&', instance.config.getString("deathban-message")!!)
}
@EventHandler
fun onDeath(e: PlayerDeathEvent) {
@ -21,7 +25,17 @@ class Listener(instance: Main) : org.bukkit.event.Listener {
if (p.hasPermission(permission)) return
val date = Date()
date.time += time * 1000 * 60
p.banPlayer(message, date)
p.banPlayer(message.replace("%time%", time.toString()), date)
p.kickPlayer(message)
}
@EventHandler
fun onJoin(e: PlayerPreLoginEvent) {
if (e.result == PlayerPreLoginEvent.Result.KICK_BANNED) {
val endDate = Bukkit.getBanList(BanList.Type.NAME).getBanEntry(e.name)!!.expiration?.time ?: return
val date = Date().time
val min = ((endDate - date) / 1000 / 60).toDouble().roundToInt()
e.kickMessage = message.replace("%time%", min.toString())
}
}
}

View File

@ -1,3 +1,3 @@
deathban-time: 90 #This is in minutes.
deathban-message: "&cYou have been deathbanned for %time% minutes." #Message shown to the player when they are deathbanned. %time% is replaced with the time the player is deathbanned for.
deathban-message: "&cYou have been deathbanned for %time% more minutes." #Message shown to the player when they are deathbanned. %time% is replaced with the time the player is deathbanned for.
bypass-permission: "deathban.bypass" #Permission required to bypass deathban.