Add ability to set player disguise shoulder parrots
This commit is contained in:
parent
9d417e3485
commit
c865500e9f
@ -1,11 +1,14 @@
|
|||||||
package me.libraryaddict.disguise.disguisetypes.watchers;
|
package me.libraryaddict.disguise.disguisetypes.watchers;
|
||||||
|
|
||||||
import com.comphenix.protocol.wrappers.WrappedGameProfile;
|
import com.comphenix.protocol.wrappers.WrappedGameProfile;
|
||||||
|
import com.comphenix.protocol.wrappers.nbt.NbtCompound;
|
||||||
|
import com.comphenix.protocol.wrappers.nbt.NbtFactory;
|
||||||
import me.libraryaddict.disguise.DisguiseConfig;
|
import me.libraryaddict.disguise.DisguiseConfig;
|
||||||
import me.libraryaddict.disguise.disguisetypes.Disguise;
|
import me.libraryaddict.disguise.disguisetypes.Disguise;
|
||||||
import me.libraryaddict.disguise.disguisetypes.MetaIndex;
|
import me.libraryaddict.disguise.disguisetypes.MetaIndex;
|
||||||
import me.libraryaddict.disguise.disguisetypes.PlayerDisguise;
|
import me.libraryaddict.disguise.disguisetypes.PlayerDisguise;
|
||||||
import me.libraryaddict.disguise.utilities.parser.RandomDefaultValue;
|
import me.libraryaddict.disguise.utilities.parser.RandomDefaultValue;
|
||||||
|
import org.bukkit.entity.Parrot;
|
||||||
import org.bukkit.inventory.MainHand;
|
import org.bukkit.inventory.MainHand;
|
||||||
|
|
||||||
public class PlayerWatcher extends LivingWatcher {
|
public class PlayerWatcher extends LivingWatcher {
|
||||||
@ -167,4 +170,72 @@ public class PlayerWatcher extends LivingWatcher {
|
|||||||
setData(MetaIndex.PLAYER_SKIN, (byte) (b0 & (~1 << i)));
|
setData(MetaIndex.PLAYER_SKIN, (byte) (b0 & (~1 << i)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Parrot.Variant getRightShoulderParrot() {
|
||||||
|
NbtCompound nbt = (NbtCompound) getData(MetaIndex.PLAYER_RIGHT_SHOULDER_ENTITY);
|
||||||
|
|
||||||
|
return Parrot.Variant.values()[nbt.getIntegerOrDefault("Variant")];
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRightShoulderParrot(Parrot.Variant variant) {
|
||||||
|
NbtCompound nbt = NbtFactory.ofCompound("");
|
||||||
|
|
||||||
|
if (variant != null) {
|
||||||
|
nbt.put("id", "minecraft:parrot");
|
||||||
|
nbt.put("Variant", variant.ordinal());
|
||||||
|
}
|
||||||
|
|
||||||
|
setData(MetaIndex.PLAYER_RIGHT_SHOULDER_ENTITY, nbt);
|
||||||
|
sendData(MetaIndex.PLAYER_RIGHT_SHOULDER_ENTITY);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Parrot.Variant getLeftShoulderParrot() {
|
||||||
|
NbtCompound nbt = (NbtCompound) getData(MetaIndex.PLAYER_LEFT_SHOULDER_ENTITY);
|
||||||
|
|
||||||
|
return Parrot.Variant.values()[nbt.getIntegerOrDefault("Variant")];
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLeftShoulderParrot(Parrot.Variant variant) {
|
||||||
|
NbtCompound nbt = NbtFactory.ofCompound("");
|
||||||
|
|
||||||
|
if (variant != null) {
|
||||||
|
nbt.put("id", "minecraft:parrot");
|
||||||
|
nbt.put("Variant", variant.ordinal());
|
||||||
|
}
|
||||||
|
|
||||||
|
setData(MetaIndex.PLAYER_LEFT_SHOULDER_ENTITY, nbt);
|
||||||
|
sendData(MetaIndex.PLAYER_LEFT_SHOULDER_ENTITY);
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isRightShoulderHasParrot() {
|
||||||
|
return ((NbtCompound) getData(MetaIndex.PLAYER_RIGHT_SHOULDER_ENTITY)).containsKey("id");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRightShoulderHasParrot(boolean hasParrot) {
|
||||||
|
if (isRightShoulderHasParrot() == hasParrot) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (hasParrot) {
|
||||||
|
setRightShoulderParrot(Parrot.Variant.RED);
|
||||||
|
} else {
|
||||||
|
setRightShoulderParrot(null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isLeftShoulderHasParrot() {
|
||||||
|
return ((NbtCompound) getData(MetaIndex.PLAYER_LEFT_SHOULDER_ENTITY)).containsKey("id");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLeftShoulderHasParrot(boolean hasParrot) {
|
||||||
|
if (isLeftShoulderHasParrot() == hasParrot) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (hasParrot) {
|
||||||
|
setLeftShoulderParrot(Parrot.Variant.RED);
|
||||||
|
} else {
|
||||||
|
setLeftShoulderParrot(null);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user