Fix up datawatchers
This commit is contained in:
parent
bf3c11878a
commit
182c6a3259
@ -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));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user