Fix up datawatchers
This commit is contained in:
		| @@ -74,6 +74,7 @@ DisguiseCloneSize: 3 | |||||||
| # This I don't really recommend turning on as it can make a memory leak.. | # This I don't really recommend turning on as it can make a memory leak.. | ||||||
| # These disguises, as normal will not persist after a server restart. | # These disguises, as normal will not persist after a server restart. | ||||||
| # There is also no EntityDeath option as entities do not revive after death. | # There is also no EntityDeath option as entities do not revive after death. | ||||||
|  | # The EntityDespawn option is when you leave the chunk the entity is and the chunk is unloaded | ||||||
| KeepDisguises: | KeepDisguises: | ||||||
|     EntityDespawn: false |     EntityDespawn: false | ||||||
|     PlayerDeath: false |     PlayerDeath: false | ||||||
|   | |||||||
| @@ -25,7 +25,6 @@ import org.bukkit.inventory.EquipmentSlot; | |||||||
| import org.bukkit.inventory.ItemStack; | import org.bukkit.inventory.ItemStack; | ||||||
| import org.bukkit.potion.PotionEffect; | import org.bukkit.potion.PotionEffect; | ||||||
|  |  | ||||||
| import com.comphenix.protocol.wrappers.BlockPosition; |  | ||||||
| import com.comphenix.protocol.wrappers.MinecraftKey; | import com.comphenix.protocol.wrappers.MinecraftKey; | ||||||
| import com.comphenix.protocol.wrappers.WrappedDataWatcher.Registry; | import com.comphenix.protocol.wrappers.WrappedDataWatcher.Registry; | ||||||
| import com.comphenix.protocol.wrappers.WrappedDataWatcher.Serializer; | import com.comphenix.protocol.wrappers.WrappedDataWatcher.Serializer; | ||||||
| @@ -927,7 +926,9 @@ public class ReflectionManager | |||||||
|  |  | ||||||
|         if (value instanceof Optional) |         if (value instanceof Optional) | ||||||
|         { |         { | ||||||
|             serializer = Registry.get(((Optional) value).get().getClass(), true); |             Optional opt = (Optional) value; | ||||||
|  |  | ||||||
|  |             serializer = Registry.get((opt.isPresent() ? opt.get().getClass() : UUID.class), true); | ||||||
|         } |         } | ||||||
|         else |         else | ||||||
|         { |         { | ||||||
| @@ -952,30 +953,6 @@ public class ReflectionManager | |||||||
|  |  | ||||||
|     public static WrappedWatchableObject createWatchable(int index, Object obj) |     public static WrappedWatchableObject createWatchable(int index, Object obj) | ||||||
|     { |     { | ||||||
|         if (obj instanceof Optional) |  | ||||||
|         { |  | ||||||
|             Object value = ((Optional) obj).get(); |  | ||||||
|  |  | ||||||
|             if (value instanceof BlockPosition) |  | ||||||
|             { |  | ||||||
|                 value = BlockPosition.getConverter().getSpecific(value); |  | ||||||
|  |  | ||||||
|                 if (value == null) |  | ||||||
|                     return null; |  | ||||||
|  |  | ||||||
|                 obj = Optional.of(value); |  | ||||||
|             } |  | ||||||
|             else if (value instanceof ItemStack) |  | ||||||
|             { |  | ||||||
|                 value = ReflectionManager.getNmsItem((ItemStack) value); |  | ||||||
|  |  | ||||||
|                 if (value == null) |  | ||||||
|                     return null; |  | ||||||
|  |  | ||||||
|                 obj = Optional.of(value); |  | ||||||
|             } |  | ||||||
|         } |  | ||||||
|  |  | ||||||
|         return new WrappedWatchableObject(createDataWatcherItem(index, obj)); |         return new WrappedWatchableObject(createDataWatcherItem(index, obj)); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user