Be more tolerant of invalid attributes
This commit is contained in:
parent
3dafa6a08a
commit
fa7400e567
1 changed files with 32 additions and 0 deletions
|
@ -0,0 +1,32 @@
|
||||||
|
From e433847829248399e6cab3296dd39dcf8471cfbf Mon Sep 17 00:00:00 2001
|
||||||
|
From: Zach Brown <zach@zachbr.io>
|
||||||
|
Date: Thu, 6 Feb 2020 19:20:27 -0600
|
||||||
|
Subject: [PATCH] Be more tolerant of invalid attributes
|
||||||
|
|
||||||
|
Prior to this commit, the player would be disconnected if they ever encountered an attribute with a name that did
|
||||||
|
not match Bukkit's expected vanilla scheme. It appears that datapacks can set whatever attribute name they want,
|
||||||
|
ignoring vanilla's typical scheme.
|
||||||
|
|
||||||
|
In a more perfect world the API would expose some way to interact with these attributes, however Bukkit is not
|
||||||
|
particularly flexible in this area. Perhaps this is an area for future expansion at a later time.
|
||||||
|
|
||||||
|
diff --git a/src/main/java/org/bukkit/craftbukkit/attribute/CraftAttributeMap.java b/src/main/java/org/bukkit/craftbukkit/attribute/CraftAttributeMap.java
|
||||||
|
index 77e584b12..007d28b16 100644
|
||||||
|
--- a/src/main/java/org/bukkit/craftbukkit/attribute/CraftAttributeMap.java
|
||||||
|
+++ b/src/main/java/org/bukkit/craftbukkit/attribute/CraftAttributeMap.java
|
||||||
|
@@ -47,6 +47,12 @@ public class CraftAttributeMap implements Attributable {
|
||||||
|
public static Attribute fromMinecraft(String nms) {
|
||||||
|
String[] split = nms.split("\\.", 2);
|
||||||
|
|
||||||
|
+ // Paper start - Datapacks can set their own attributes that may not match our expectations, ignore them
|
||||||
|
+ if (split.length != 2) {
|
||||||
|
+ return null;
|
||||||
|
+ }
|
||||||
|
+ // Paper end
|
||||||
|
+
|
||||||
|
String generic = split[0];
|
||||||
|
String descriptor = CaseFormat.LOWER_CAMEL.to(CaseFormat.UPPER_UNDERSCORE, split[1]); // movementSpeed -> MOVEMENT_SPEED
|
||||||
|
String fin = generic + "_" + descriptor;
|
||||||
|
--
|
||||||
|
2.25.0
|
||||||
|
|
Loading…
Reference in a new issue