Paper/patches/server/0922-Add-Player-Warden-Warning-API.patch
Owen d30cda1273
Add TeleportFlags (#8855)
Abstracts relative teleport flags and instead makes a generic TeleportFlag option. This has the benefit of being able to easily add new flags in the future.
This adds a new flag, which allows you to keep inventories open when teleporting players (vanilla behavior).

These are breaking changes to the teleport api, however, it's still marked as experimental so I find this a fair change.
2023-03-04 16:07:23 -06:00

58 lines
2.3 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: dawon <dawon@dawon.eu>
Date: Sat, 15 Oct 2022 00:46:57 +0200
Subject: [PATCH] Add Player Warden Warning API
== AT ==
public net.minecraft.server.level.ServerPlayer wardenSpawnTracker
public net.minecraft.world.entity.monster.warden.WardenSpawnTracker ticksSinceLastWarning
public net.minecraft.world.entity.monster.warden.WardenSpawnTracker cooldownTicks
public net.minecraft.world.entity.monster.warden.WardenSpawnTracker increaseWarningLevel()V
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 4bc30ce25c300bf5d2ae2b6388bdc601e0f8441d..8d68aff5cb1b029e9bf7e86d2a48b0642268dec3 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -3032,6 +3032,41 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
public void showElderGuardian(boolean silent) {
if (getHandle().connection != null) getHandle().connection.send(new ClientboundGameEventPacket(ClientboundGameEventPacket.GUARDIAN_ELDER_EFFECT, silent ? 0F : 1F));
}
+
+ @Override
+ public int getWardenWarningCooldown() {
+ return this.getHandle().wardenSpawnTracker.cooldownTicks;
+ }
+
+ @Override
+ public void setWardenWarningCooldown(int cooldown) {
+ this.getHandle().wardenSpawnTracker.cooldownTicks = Math.max(cooldown, 0);
+ }
+
+ @Override
+ public int getWardenTimeSinceLastWarning() {
+ return this.getHandle().wardenSpawnTracker.ticksSinceLastWarning;
+ }
+
+ @Override
+ public void setWardenTimeSinceLastWarning(int time) {
+ this.getHandle().wardenSpawnTracker.ticksSinceLastWarning = time;
+ }
+
+ @Override
+ public int getWardenWarningLevel() {
+ return this.getHandle().wardenSpawnTracker.getWarningLevel();
+ }
+
+ @Override
+ public void setWardenWarningLevel(int warningLevel) {
+ this.getHandle().wardenSpawnTracker.setWarningLevel(warningLevel);
+ }
+
+ @Override
+ public void increaseWardenWarningLevel() {
+ this.getHandle().wardenSpawnTracker.increaseWarningLevel();
+ }
// Paper end
public Player.Spigot spigot()