From 021317a0655fccea2fde55f2d432ef06b6916991 Mon Sep 17 00:00:00 2001 From: 5vl Date: Thu, 5 May 2022 20:55:43 +0200 Subject: [PATCH] timed ban messages --- src/main/java/me/fivevl/deathban/Listener.kt | 18 ++++++++++++++++-- src/main/resources/config.yml | 2 +- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/src/main/java/me/fivevl/deathban/Listener.kt b/src/main/java/me/fivevl/deathban/Listener.kt index 1c8d752..a706ab1 100644 --- a/src/main/java/me/fivevl/deathban/Listener.kt +++ b/src/main/java/me/fivevl/deathban/Listener.kt @@ -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()) + } + } } \ No newline at end of file diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 908551e..34dda4b 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -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.