mirror of
https://github.com/PaperMC/Paper.git
synced 2024-06-26 06:44:49 +02:00
81 lines
3.9 KiB
Diff
81 lines
3.9 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Jake Potrebic <jake.m.potrebic@gmail.com>
|
|
Date: Sat, 25 Feb 2023 21:25:08 -0800
|
|
Subject: [PATCH] Support registry mod API with GameEvent
|
|
|
|
|
|
diff --git a/src/main/java/io/papermc/paper/registry/PaperRegistries.java b/src/main/java/io/papermc/paper/registry/PaperRegistries.java
|
|
index abecec33b6c0dba7183057efbc1425d94958b458..d75b27803c300deaec384bca3dc6dc58aaf05868 100644
|
|
--- a/src/main/java/io/papermc/paper/registry/PaperRegistries.java
|
|
+++ b/src/main/java/io/papermc/paper/registry/PaperRegistries.java
|
|
@@ -50,7 +50,7 @@ public final class PaperRegistries {
|
|
static {
|
|
REGISTRY_ENTRIES = ImmutableList.<RegistryEntry<?, ?>>builder()
|
|
// built-ins
|
|
- .add(immutableBuiltIn(RegistryKey.GAME_EVENT, Registries.GAME_EVENT, GameEvent.class, CraftGameEvent::new))
|
|
+ .add(writableBuiltIn(RegistryKey.GAME_EVENT, Registries.GAME_EVENT, GameEvent.class, CraftGameEvent::new, CraftGameEvent.Builder::new))
|
|
.add(immutableBuiltIn(RegistryKey.STRUCTURE_TYPE, Registries.STRUCTURE_TYPE, StructureType.class, CraftStructureType::new))
|
|
.add(immutableBuiltIn(RegistryKey.INSTRUMENT, Registries.INSTRUMENT, MusicInstrument.class, CraftMusicInstrument::new))
|
|
.add(immutableBuiltIn(RegistryKey.ENCHANTMENT, Registries.ENCHANTMENT, Enchantment.class, CraftEnchantment::new))
|
|
diff --git a/src/main/java/net/minecraft/world/level/gameevent/GameEvent.java b/src/main/java/net/minecraft/world/level/gameevent/GameEvent.java
|
|
index f943a0342ab34f10284c1daa84ff7424541221c4..66f0791cba4be6e11feebf288707c9d865ae66a0 100644
|
|
--- a/src/main/java/net/minecraft/world/level/gameevent/GameEvent.java
|
|
+++ b/src/main/java/net/minecraft/world/level/gameevent/GameEvent.java
|
|
@@ -87,7 +87,7 @@ public class GameEvent {
|
|
}
|
|
|
|
private static GameEvent register(String id, int range) {
|
|
- return Registry.register(BuiltInRegistries.GAME_EVENT, id, new GameEvent(range));
|
|
+ return io.papermc.paper.registry.PaperRegistryListenerManager.INSTANCE.registerWithListeners(BuiltInRegistries.GAME_EVENT, id, new GameEvent(range)); // Paper
|
|
}
|
|
|
|
@Override
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftGameEvent.java b/src/main/java/org/bukkit/craftbukkit/CraftGameEvent.java
|
|
index ac9b4328cd55a68664a3f71186bc9a7be7cd9658..acb1f4c95226b0603ddae4ead9fcb5704b33ec98 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/CraftGameEvent.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/CraftGameEvent.java
|
|
@@ -58,4 +58,43 @@ public class CraftGameEvent extends GameEvent implements Handleable<net.minecraf
|
|
public String toString() {
|
|
return "CraftGameEvent{key=" + this.key + "}";
|
|
}
|
|
+
|
|
+ // Paper start
|
|
+ @Override
|
|
+ public int getRange() {
|
|
+ return this.handle.getNotificationRadius();
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public int getVibrationLevel() {
|
|
+ return net.minecraft.world.level.gameevent.vibrations.VibrationSystem.getGameEventFrequency(this.handle);
|
|
+ }
|
|
+
|
|
+ public static final class Builder implements GameEvent.Builder, io.papermc.paper.registry.PaperRegistryBuilder<net.minecraft.world.level.gameevent.GameEvent, org.bukkit.GameEvent> {
|
|
+
|
|
+ private int range = 16;
|
|
+
|
|
+ public Builder(final io.papermc.paper.registry.TypedKey<GameEvent> $, final net.minecraft.world.level.gameevent.@org.checkerframework.checker.nullness.qual.Nullable GameEvent nms) {
|
|
+ if (nms != null) {
|
|
+ this.range = nms.getNotificationRadius();
|
|
+ }
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public int range() {
|
|
+ return this.range;
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public Builder range(final int range) {
|
|
+ this.range = range;
|
|
+ return this;
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public net.minecraft.world.level.gameevent.GameEvent build() {
|
|
+ return new net.minecraft.world.level.gameevent.GameEvent(this.range);
|
|
+ }
|
|
+ }
|
|
+ // Paper end
|
|
}
|