change some properties to CustomTypeProperty
This commit is contained in:
parent
6128cac379
commit
6ebc60c11e
4 changed files with 4 additions and 79 deletions
|
@ -3,6 +3,7 @@ package lol.pyr.znpcsplus.entity;
|
||||||
import com.github.retrooper.packetevents.PacketEvents;
|
import com.github.retrooper.packetevents.PacketEvents;
|
||||||
import com.github.retrooper.packetevents.manager.server.ServerVersion;
|
import com.github.retrooper.packetevents.manager.server.ServerVersion;
|
||||||
import com.github.retrooper.packetevents.protocol.entity.data.EntityDataTypes;
|
import com.github.retrooper.packetevents.protocol.entity.data.EntityDataTypes;
|
||||||
|
import com.github.retrooper.packetevents.protocol.entity.pose.EntityPose;
|
||||||
import com.github.retrooper.packetevents.protocol.nbt.NBTCompound;
|
import com.github.retrooper.packetevents.protocol.nbt.NBTCompound;
|
||||||
import com.github.retrooper.packetevents.protocol.nbt.NBTInt;
|
import com.github.retrooper.packetevents.protocol.nbt.NBTInt;
|
||||||
import com.github.retrooper.packetevents.protocol.nbt.NBTString;
|
import com.github.retrooper.packetevents.protocol.nbt.NBTString;
|
||||||
|
@ -385,7 +386,7 @@ public class EntityPropertyRegistryImpl implements EntityPropertyRegistry {
|
||||||
else if (ver.isNewerThanOrEquals(ServerVersion.V_1_14)) snowGolemIndex = 14;
|
else if (ver.isNewerThanOrEquals(ServerVersion.V_1_14)) snowGolemIndex = 14;
|
||||||
else if (ver.isNewerThanOrEquals(ServerVersion.V_1_10)) snowGolemIndex = 12;
|
else if (ver.isNewerThanOrEquals(ServerVersion.V_1_10)) snowGolemIndex = 12;
|
||||||
else snowGolemIndex = 10;
|
else snowGolemIndex = 10;
|
||||||
register(new DerpySnowgolemProperty(snowGolemIndex));
|
register(new CustomTypeProperty<>("derpy_snowgolem", snowGolemIndex, false, EntityDataTypes.BYTE, b -> (byte) (b ? 0x00 : 0x10)));
|
||||||
|
|
||||||
if (!ver.isNewerThanOrEquals(ServerVersion.V_1_10)) return;
|
if (!ver.isNewerThanOrEquals(ServerVersion.V_1_10)) return;
|
||||||
// Polar Bear
|
// Polar Bear
|
||||||
|
@ -458,7 +459,7 @@ public class EntityPropertyRegistryImpl implements EntityPropertyRegistry {
|
||||||
|
|
||||||
if (!ver.isNewerThanOrEquals(ServerVersion.V_1_14)) return;
|
if (!ver.isNewerThanOrEquals(ServerVersion.V_1_14)) return;
|
||||||
// Pose
|
// Pose
|
||||||
register(new NpcPoseProperty());
|
register(new CustomTypeProperty<>("pose", 6, NpcPose.STANDING, EntityDataTypes.ENTITY_POSE, npcPose -> EntityPose.valueOf(npcPose.name())));
|
||||||
|
|
||||||
// Villager
|
// Villager
|
||||||
final int villagerIndex;
|
final int villagerIndex;
|
||||||
|
@ -579,7 +580,7 @@ public class EntityPropertyRegistryImpl implements EntityPropertyRegistry {
|
||||||
register(new BooleanProperty("bashing", 18, false, legacyBooleans));
|
register(new BooleanProperty("bashing", 18, false, legacyBooleans));
|
||||||
|
|
||||||
// Sniffer
|
// Sniffer
|
||||||
register(new SnifferStateProperty(17));
|
register(new CustomTypeProperty<>("sniffer_state", 17, SnifferState.IDLING, EntityDataTypes.SNIFFER_STATE, state -> com.github.retrooper.packetevents.protocol.entity.sniffer.SnifferState.valueOf(state.name())));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void registerSerializer(PropertySerializer<?> serializer) {
|
private void registerSerializer(PropertySerializer<?> serializer) {
|
||||||
|
|
|
@ -1,23 +0,0 @@
|
||||||
package lol.pyr.znpcsplus.entity.properties;
|
|
||||||
|
|
||||||
import com.github.retrooper.packetevents.protocol.entity.data.EntityData;
|
|
||||||
import com.github.retrooper.packetevents.protocol.entity.data.EntityDataTypes;
|
|
||||||
import lol.pyr.znpcsplus.entity.EntityPropertyImpl;
|
|
||||||
import lol.pyr.znpcsplus.entity.PacketEntity;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
public class DerpySnowgolemProperty extends EntityPropertyImpl<Boolean> {
|
|
||||||
private final int index;
|
|
||||||
|
|
||||||
public DerpySnowgolemProperty(int index) {
|
|
||||||
super("derpy_snowgolem", false, Boolean.class);
|
|
||||||
this.index = index;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void apply(Player player, PacketEntity entity, boolean isSpawned, Map<Integer, EntityData> properties) {
|
|
||||||
properties.put(index, new EntityData(index, EntityDataTypes.BYTE, (byte) (entity.getProperty(this) ? 0x00 : 0x10)));
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,23 +0,0 @@
|
||||||
package lol.pyr.znpcsplus.entity.properties;
|
|
||||||
|
|
||||||
import com.github.retrooper.packetevents.protocol.entity.data.EntityData;
|
|
||||||
import com.github.retrooper.packetevents.protocol.entity.data.EntityDataTypes;
|
|
||||||
import com.github.retrooper.packetevents.protocol.entity.pose.EntityPose;
|
|
||||||
import lol.pyr.znpcsplus.entity.EntityPropertyImpl;
|
|
||||||
import lol.pyr.znpcsplus.entity.PacketEntity;
|
|
||||||
import lol.pyr.znpcsplus.util.NpcPose;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
public class NpcPoseProperty extends EntityPropertyImpl<NpcPose> {
|
|
||||||
|
|
||||||
public NpcPoseProperty() {
|
|
||||||
super("pose", NpcPose.STANDING, NpcPose.class);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void apply(Player player, PacketEntity entity, boolean isSpawned, Map<Integer, EntityData> properties) {
|
|
||||||
properties.put(6, newEntityData(6, EntityDataTypes.ENTITY_POSE, EntityPose.valueOf(entity.getProperty(this).name())));
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,30 +0,0 @@
|
||||||
package lol.pyr.znpcsplus.entity.properties;
|
|
||||||
|
|
||||||
import com.github.retrooper.packetevents.protocol.entity.data.EntityData;
|
|
||||||
import com.github.retrooper.packetevents.protocol.entity.data.EntityDataTypes;
|
|
||||||
import lol.pyr.znpcsplus.entity.EntityPropertyImpl;
|
|
||||||
import lol.pyr.znpcsplus.entity.PacketEntity;
|
|
||||||
import lol.pyr.znpcsplus.util.SnifferState;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
public class SnifferStateProperty extends EntityPropertyImpl<SnifferState> {
|
|
||||||
private final int index;
|
|
||||||
|
|
||||||
public SnifferStateProperty(int index) {
|
|
||||||
super("sniffer_state", SnifferState.IDLING, SnifferState.class);
|
|
||||||
this.index = index;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void apply(Player player, PacketEntity entity, boolean isSpawned, Map<Integer, EntityData> properties) {
|
|
||||||
SnifferState state = entity.getProperty(this);
|
|
||||||
if (state == null) return;
|
|
||||||
try {
|
|
||||||
properties.put(index, newEntityData(index, EntityDataTypes.SNIFFER_STATE, com.github.retrooper.packetevents.protocol.entity.sniffer.SnifferState.valueOf(state.name())));
|
|
||||||
} catch (IllegalArgumentException e) {
|
|
||||||
// ignore
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in a new issue