New patches
This commit is contained in:
23
patches/api/0008-Expose-NMS-ordinals.patch
Normal file
23
patches/api/0008-Expose-NMS-ordinals.patch
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: lexikiq <noellekiq@gmail.com>
|
||||||
|
Date: Sun, 20 Jun 2021 18:47:01 -0400
|
||||||
|
Subject: [PATCH] Expose NMS ordinals
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/src/main/java/org/bukkit/UnsafeValues.java b/src/main/java/org/bukkit/UnsafeValues.java
|
||||||
|
index c4f81d9a642005e52eb3d88daf6da6caa48a3f0d..b03756881694238103c136380af60ea5fa105700 100644
|
||||||
|
--- a/src/main/java/org/bukkit/UnsafeValues.java
|
||||||
|
+++ b/src/main/java/org/bukkit/UnsafeValues.java
|
||||||
|
@@ -196,5 +196,12 @@ public interface UnsafeValues {
|
||||||
|
* @return if the item can be placed
|
||||||
|
*/
|
||||||
|
java.util.concurrent.CompletableFuture<Boolean> canPlaceItemOn(@org.jetbrains.annotations.NotNull ItemStack item, @org.jetbrains.annotations.Nullable me.lexikiq.OptionalHumanEntity player, @org.jetbrains.annotations.NotNull org.bukkit.block.Block block, @org.jetbrains.annotations.NotNull org.bukkit.block.BlockFace face);
|
||||||
|
+
|
||||||
|
+ /**
|
||||||
|
+ * Gets the ID/ordinal of an entity according to NMS.
|
||||||
|
+ * @param type entity to get
|
||||||
|
+ * @return entity's ID
|
||||||
|
+ */
|
||||||
|
+ int entityID(org.bukkit.entity.EntityType type);
|
||||||
|
// Parchment end
|
||||||
|
}
|
||||||
70
patches/server/0007-Expose-NMS-ordinals.patch
Normal file
70
patches/server/0007-Expose-NMS-ordinals.patch
Normal file
@@ -0,0 +1,70 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: lexikiq <noellekiq@gmail.com>
|
||||||
|
Date: Sun, 20 Jun 2021 18:47:01 -0400
|
||||||
|
Subject: [PATCH] Expose NMS ordinals
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/src/main/java/net/minecraft/world/entity/EntityType.java b/src/main/java/net/minecraft/world/entity/EntityType.java
|
||||||
|
index ac99265aacd4a28490705e3079ed04023fb1c54a..e5f9919797d7ad8c88b92f5d69dddf78cab75785 100644
|
||||||
|
--- a/src/main/java/net/minecraft/world/entity/EntityType.java
|
||||||
|
+++ b/src/main/java/net/minecraft/world/entity/EntityType.java
|
||||||
|
@@ -281,11 +281,35 @@ public class EntityType<T extends Entity> implements EntityTypeTest<Entity, T> {
|
||||||
|
@Nullable
|
||||||
|
private ResourceLocation lootTable;
|
||||||
|
private final EntityDimensions dimensions;
|
||||||
|
+ private static int ordinal = 0; // Parchment
|
||||||
|
+ private static final java.util.Map<EntityType, Integer> ordinals = new java.util.HashMap<>(); // Parchment
|
||||||
|
|
||||||
|
private static <T extends Entity> EntityType<T> register(String id, EntityType.Builder type) { // CraftBukkit - decompile error
|
||||||
|
- return (EntityType) Registry.register((Registry) Registry.ENTITY_TYPE, id, (Object) type.build(id));
|
||||||
|
+ // Parchment start
|
||||||
|
+ EntityType build = type.build(id);
|
||||||
|
+ ordinals.put(build, ordinal);
|
||||||
|
+ ordinal += 1;
|
||||||
|
+ return (EntityType) Registry.register((Registry) Registry.ENTITY_TYPE, id, (Object) build);
|
||||||
|
}
|
||||||
|
|
||||||
|
+ public int ordinal() {
|
||||||
|
+ return ordinals.get(this);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ @Override
|
||||||
|
+ public boolean equals(Object o) {
|
||||||
|
+ if (this == o) return true;
|
||||||
|
+ if (o == null || getClass() != o.getClass()) return false;
|
||||||
|
+ EntityType<?> that = (EntityType<?>) o;
|
||||||
|
+ return id.equals(that.id);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ @Override
|
||||||
|
+ public int hashCode() {
|
||||||
|
+ return java.util.Objects.hash(id);
|
||||||
|
+ }
|
||||||
|
+ // Parchment end
|
||||||
|
+
|
||||||
|
public static ResourceLocation getKey(EntityType<?> type) {
|
||||||
|
return Registry.ENTITY_TYPE.getKey(type);
|
||||||
|
}
|
||||||
|
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
|
||||||
|
index ade8807ef37b853c59944480bc539bf1c4a64357..f0c331599e629a9c0f4b062cc3a4dc0e1d07962b 100644
|
||||||
|
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
|
||||||
|
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
|
||||||
|
@@ -559,6 +559,18 @@ public final class CraftMagicNumbers implements UnsafeValues {
|
||||||
|
final net.minecraft.world.item.context.BlockPlaceContext ctx = context;
|
||||||
|
return future.completeAsync(() -> blockItem.canPlace(ctx, blockState), net.minecraft.server.MCUtil.MAIN_EXECUTOR);
|
||||||
|
}
|
||||||
|
+
|
||||||
|
+ @Override
|
||||||
|
+ public int entityID(org.bukkit.entity.EntityType type) {
|
||||||
|
+ String name = type.getName();
|
||||||
|
+ if (name == null) {
|
||||||
|
+ throw new IllegalArgumentException("Entity name is undefined");
|
||||||
|
+ }
|
||||||
|
+ return net.minecraft.world.entity.EntityType.byString(name)
|
||||||
|
+ .orElseThrow(() -> new IllegalArgumentException("Could not find corresponding NMS entity"))
|
||||||
|
+ .ordinal();
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
// Parchment end
|
||||||
|
|
||||||
|
/**
|
||||||
23
patches/server/0008-Add-Player-setGameProfile.patch
Normal file
23
patches/server/0008-Add-Player-setGameProfile.patch
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: lexikiq <noellekiq@gmail.com>
|
||||||
|
Date: Sun, 20 Jun 2021 19:09:16 -0400
|
||||||
|
Subject: [PATCH] Add Player#setGameProfile
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||||
|
index eea377ccf09afd2c175041bdd8226e1009fe6914..b5b6102bd1f841157f258d79d02a7d2ca90ba200 100644
|
||||||
|
--- a/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||||
|
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||||
|
@@ -1443,6 +1443,12 @@ public abstract class Player extends LivingEntity {
|
||||||
|
return this.gameProfile;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ // Parchment start
|
||||||
|
+ public void setProfile(GameProfile gameProfile) {
|
||||||
|
+ this.gameProfile = gameProfile;
|
||||||
|
+ }
|
||||||
|
+ // Parchment end
|
||||||
|
+
|
||||||
|
public Inventory getInventory() {
|
||||||
|
return this.inventory;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user