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 {
|
plugins {
|
||||||
id 'java'
|
id 'java'
|
||||||
|
id("xyz.jpenilla.run-paper") version "2.3.1"
|
||||||
}
|
}
|
||||||
|
|
||||||
group = 'de.shiewk'
|
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 {
|
dependencies {
|
||||||
compileOnly("io.papermc.paper:paper-api:1.21.3-R0.1-SNAPSHOT")
|
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.EventHandler;
|
||||||
import org.bukkit.event.EventPriority;
|
import org.bukkit.event.EventPriority;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
import org.bukkit.event.player.PlayerLoginEvent;
|
import org.bukkit.event.player.AsyncPlayerPreLoginEvent;
|
||||||
import org.bukkit.event.world.WorldSaveEvent;
|
import org.bukkit.event.world.WorldSaveEvent;
|
||||||
|
|
||||||
import static de.shiewk.smoderation.paper.SModerationPaper.CHAT_PREFIX;
|
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 {
|
public class PunishmentListener implements Listener {
|
||||||
|
|
||||||
@EventHandler(priority = EventPriority.LOW)
|
@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 ->
|
Punishment punishment = SModerationPaper.container.find(p ->
|
||||||
p.type == PunishmentType.BAN
|
p.type == PunishmentType.BAN
|
||||||
&& p.to.equals(event.getPlayer().getUniqueId())
|
&& p.to.equals(event.getUniqueId())
|
||||||
&& p.isActive());
|
&& p.isActive());
|
||||||
if (punishment != null){
|
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
|
@EventHandler
|
||||||
public void onWorldSave(WorldSaveEvent event){
|
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);
|
SModerationPaper.container.save(SModerationPaper.SAVE_FILE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user