Mock SculkChargeEventConfiguration

This commit is contained in:
Owen1212055 2022-06-05 21:41:22 -04:00
parent 28fbb5a218
commit 3e9e7acd0b
No known key found for this signature in database
GPG Key ID: 2133292072886A30
2 changed files with 27 additions and 10 deletions

View File

@ -1,7 +1,7 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Owen1212055 <23108066+Owen1212055@users.noreply.github.com>
Date: Sun, 5 Jun 2022 21:19:40 -0400
Subject: [PATCH] Block/World Event API
Subject: [PATCH] Event/Effect API Improvements
diff --git a/src/main/java/io/papermc/paper/block/event/BlockEvent.java b/src/main/java/io/papermc/paper/block/event/BlockEvent.java
@ -169,17 +169,19 @@ index 0000000000000000000000000000000000000000..f3a0bde72d5e8b9edca46ea2f376359f
+}
diff --git a/src/main/java/io/papermc/paper/world/event/SculkChargeEventConfiguration.java b/src/main/java/io/papermc/paper/world/event/SculkChargeEventConfiguration.java
new file mode 100644
index 0000000000000000000000000000000000000000..379357a7ff1e08a49697c4c82097d0ca3f1ee980
index 0000000000000000000000000000000000000000..59f77614f8c2e21c07be44be00f2a8b4e3b450c9
--- /dev/null
+++ b/src/main/java/io/papermc/paper/world/event/SculkChargeEventConfiguration.java
@@ -0,0 +1,24 @@
@@ -0,0 +1,26 @@
+package io.papermc.paper.world.event;
+
+import org.bukkit.block.BlockFace;
+import org.jetbrains.annotations.Nullable;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Range;
+
+public record SculkChargeEventConfiguration(@Range(from = 0, to = 1000) int charge, @Nullable BlockFace... blockFaces) {
+import java.util.Collection;
+
+public record SculkChargeEventConfiguration(@Range(from = 0, to = 1000) int charge, @NotNull Collection<BlockFace> blockFaces) {
+
+ /**
+ * Gets the charge of this current sculk charge event.
@ -192,8 +194,8 @@ index 0000000000000000000000000000000000000000..379357a7ff1e08a49697c4c82097d0ca
+ /**
+ * Gets the block faces that this sculk charge effects.
+ */
+ @Nullable
+ public BlockFace[] blockFaces() {
+ @NotNull
+ public Collection<BlockFace> blockFaces() {
+ return this.blockFaces;
+ }
+}

View File

@ -1,7 +1,7 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Owen1212055 <23108066+Owen1212055@users.noreply.github.com>
Date: Sun, 5 Jun 2022 21:19:33 -0400
Subject: [PATCH] Block/World Event API
Subject: [PATCH] Event/Effect API Improvements
diff --git a/src/main/java/io/papermc/paper/block/event/PaperBlockEvent.java b/src/main/java/io/papermc/paper/block/event/PaperBlockEvent.java
@ -76,10 +76,10 @@ index 0000000000000000000000000000000000000000..6985c1783dc286818c7a82ded825e9f6
+}
diff --git a/src/main/java/io/papermc/paper/world/event/PaperWorldEvent.java b/src/main/java/io/papermc/paper/world/event/PaperWorldEvent.java
new file mode 100644
index 0000000000000000000000000000000000000000..aedcb1b294c1f9eece252547d4f1e95fc12f6d51
index 0000000000000000000000000000000000000000..52769b41471f314ed7e2017c04ef7729bccf2317
--- /dev/null
+++ b/src/main/java/io/papermc/paper/world/event/PaperWorldEvent.java
@@ -0,0 +1,72 @@
@@ -0,0 +1,87 @@
+package io.papermc.paper.world.event;
+
+import net.minecraft.network.protocol.game.ClientboundLevelEventPacket;
@ -87,6 +87,7 @@ index 0000000000000000000000000000000000000000..aedcb1b294c1f9eece252547d4f1e95f
+import net.minecraft.server.level.ServerLevel;
+import net.minecraft.server.level.ServerPlayer;
+import net.minecraft.world.item.Item;
+import net.minecraft.world.level.block.MultifaceBlock;
+import org.bukkit.Color;
+import org.bukkit.Location;
+import org.bukkit.Material;
@ -97,6 +98,9 @@ index 0000000000000000000000000000000000000000..aedcb1b294c1f9eece252547d4f1e95f
+import org.bukkit.craftbukkit.util.CraftMagicNumbers;
+import org.jetbrains.annotations.Nullable;
+
+import java.util.Collection;
+import java.util.List;
+
+public class PaperWorldEvent {
+
+ public static <T> int getData(ConfigurableWorldEvent<T> event, T data) {
@ -131,6 +135,17 @@ index 0000000000000000000000000000000000000000..aedcb1b294c1f9eece252547d4f1e95f
+ }
+
+ return CraftBlock.blockFaceToNotch(face).get3DDataValue();
+ } else if (configurationClass == SculkChargeEventConfiguration.class) {
+ SculkChargeEventConfiguration chargeEventConfiguration = (SculkChargeEventConfiguration) data;
+ if (chargeEventConfiguration.charge() <= 0) {
+ return 0;
+ } else {
+ // SculkSpreader#updateCursors
+ int charge = (int)(Math.log1p((double) chargeEventConfiguration.charge()) / 2.3F) + 1;
+ Collection<BlockFace> faces = chargeEventConfiguration.blockFaces();
+
+ return (charge << 6) + /*MultifaceBlock.pack(faces)*/0;
+ }
+ }
+
+ throw new UnsupportedOperationException();