mirror of
https://github.com/Shiewk/SModeration.git
synced 2026-04-28 05:54:16 +02:00
Use AsyncPlayerPreLoginEvent instead of PlayerLoginEvent
because of its deprecation in Paper 1.21.6, this event disabled re-configuration APIs when a listener is registered for it; we don't want that to happen
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
plugins {
|
||||
id 'java'
|
||||
id("xyz.jpenilla.run-paper") version "2.3.1"
|
||||
}
|
||||
|
||||
group = 'de.shiewk'
|
||||
@@ -22,6 +23,15 @@ processResources {
|
||||
}
|
||||
}
|
||||
|
||||
runServer {
|
||||
minecraftVersion("1.21.7")
|
||||
downloadPlugins {
|
||||
// for testing from other client versions
|
||||
modrinth("ViaVersion", "5.4.1")
|
||||
modrinth("ViaBackwards", "5.4.1")
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
compileOnly("io.papermc.paper:paper-api:1.21.3-R0.1-SNAPSHOT")
|
||||
}
|
||||
|
||||
@@ -11,7 +11,7 @@ import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.player.PlayerLoginEvent;
|
||||
import org.bukkit.event.player.AsyncPlayerPreLoginEvent;
|
||||
import org.bukkit.event.world.WorldSaveEvent;
|
||||
|
||||
import static de.shiewk.smoderation.paper.SModerationPaper.CHAT_PREFIX;
|
||||
@@ -19,13 +19,16 @@ import static de.shiewk.smoderation.paper.SModerationPaper.CHAT_PREFIX;
|
||||
public class PunishmentListener implements Listener {
|
||||
|
||||
@EventHandler(priority = EventPriority.LOW)
|
||||
public void onPlayerLogin(PlayerLoginEvent event){
|
||||
public void onPlayerLogin(AsyncPlayerPreLoginEvent event){
|
||||
// Have to use AsyncPlayerPreLoginEvent since PlayerLoginEvent is deprecated in newer versions
|
||||
// I would use the new PlayerConnectionValidateLoginEvent but there is literally no API available
|
||||
// there to get player's UUIDs
|
||||
Punishment punishment = SModerationPaper.container.find(p ->
|
||||
p.type == PunishmentType.BAN
|
||||
&& p.to.equals(event.getPlayer().getUniqueId())
|
||||
&& p.to.equals(event.getUniqueId())
|
||||
&& p.isActive());
|
||||
if (punishment != null){
|
||||
event.disallow(PlayerLoginEvent.Result.KICK_BANNED, CHAT_PREFIX.append(punishment.playerMessage()));
|
||||
event.disallow(AsyncPlayerPreLoginEvent.Result.KICK_BANNED, CHAT_PREFIX.append(punishment.playerMessage()));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -63,7 +66,7 @@ public class PunishmentListener implements Listener {
|
||||
|
||||
@EventHandler
|
||||
public void onWorldSave(WorldSaveEvent event){
|
||||
if (event.getWorld().equals(Bukkit.getServer().getWorlds().get(0))){
|
||||
if (event.getWorld().equals(Bukkit.getServer().getWorlds().getFirst())){
|
||||
SModerationPaper.container.save(SModerationPaper.SAVE_FILE);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user