Mirror von
https://github.com/ViaVersion/ViaVersion.git
synchronisiert 2024-11-03 14:50:30 +01:00
remove 1.14 object type (Mojang removed objcet trype in 19w05a)
fix entity type remaps
Dieser Commit ist enthalten in:
Ursprung
91d9f99c70
Commit
a27e439c99
@ -7,11 +7,11 @@ import us.myles.ViaVersion.api.Via;
|
|||||||
|
|
||||||
|
|
||||||
public class Entity1_14Types {
|
public class Entity1_14Types {
|
||||||
public static EntityType getTypeFromId(int typeID, boolean isObject) {
|
public static EntityType getTypeFromId(int typeID) {
|
||||||
Optional<EntityType> type = isObject ? ObjectTypes.getPCEntity(typeID) : EntityType.findById(typeID);
|
Optional<EntityType> type = EntityType.findById(typeID);
|
||||||
|
|
||||||
if (!type.isPresent()) {
|
if (!type.isPresent()) {
|
||||||
Via.getPlatform().getLogger().severe("Could not find type id " + typeID + " isObject=" + isObject);
|
Via.getPlatform().getLogger().severe("Could not find type id " + typeID);
|
||||||
return EntityType.ENTITY; // Fall back to the basic ENTITY
|
return EntityType.ENTITY; // Fall back to the basic ENTITY
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -238,59 +238,4 @@ public class Entity1_14Types {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@AllArgsConstructor
|
|
||||||
@Getter
|
|
||||||
public enum ObjectTypes {
|
|
||||||
BOAT(1, EntityType.BOAT),
|
|
||||||
ITEM(2, EntityType.ITEM),
|
|
||||||
AREA_EFFECT_CLOUD(3, EntityType.AREA_EFFECT_CLOUD),
|
|
||||||
MINECART(10, EntityType.MINECART_ABSTRACT),
|
|
||||||
TNT_PRIMED(50, EntityType.TNT),
|
|
||||||
ENDER_CRYSTAL(51, EntityType.ENDER_CRYSTAL),
|
|
||||||
TIPPED_ARROW(60, EntityType.ARROW),
|
|
||||||
SNOWBALL(61, EntityType.SNOWBALL),
|
|
||||||
EGG(62, EntityType.EGG),
|
|
||||||
FIREBALL(63, EntityType.FIREBALL),
|
|
||||||
SMALL_FIREBALL(64, EntityType.SMALL_FIREBALL),
|
|
||||||
ENDER_PEARL(65, EntityType.ENDER_PEARL),
|
|
||||||
WITHER_SKULL(66, EntityType.WITHER_SKULL),
|
|
||||||
SHULKER_BULLET(67, EntityType.SHULKER_BULLET),
|
|
||||||
LIAMA_SPIT(68, EntityType.LLAMA_SPIT),
|
|
||||||
FALLING_BLOCK(70, EntityType.FALLING_BLOCK),
|
|
||||||
ITEM_FRAME(71, EntityType.ITEM_FRAME),
|
|
||||||
ENDER_SIGNAL(72, EntityType.EYE_OF_ENDER_SIGNAL),
|
|
||||||
POTION(73, EntityType.POTION),
|
|
||||||
THROWN_EXP_BOTTLE(75, EntityType.XP_BOTTLE),
|
|
||||||
FIREWORK(76, EntityType.FIREWORKS_ROCKET),
|
|
||||||
LEASH(77, EntityType.LEASH_KNOT),
|
|
||||||
ARMOR_STAND(78, EntityType.ARMOR_STAND),
|
|
||||||
EVOCATION_FANGS(79, EntityType.EVOCATION_FANGS),
|
|
||||||
FISHIHNG_HOOK(90, EntityType.FISHING_BOBBER),
|
|
||||||
SPECTRAL_ARROW(91, EntityType.SPECTRAL_ARROW),
|
|
||||||
DRAGON_FIREBALL(93, EntityType.DRAGON_FIREBALL),
|
|
||||||
;
|
|
||||||
|
|
||||||
private final int id;
|
|
||||||
private final EntityType type;
|
|
||||||
|
|
||||||
public static Optional<ObjectTypes> findById(int id) {
|
|
||||||
if (id == -1)
|
|
||||||
return Optional.absent();
|
|
||||||
|
|
||||||
for (ObjectTypes ent : ObjectTypes.values())
|
|
||||||
if (ent.getId() == id)
|
|
||||||
return Optional.of(ent);
|
|
||||||
|
|
||||||
return Optional.absent();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static Optional<EntityType> getPCEntity(int id) {
|
|
||||||
Optional<ObjectTypes> output = findById(id);
|
|
||||||
|
|
||||||
if (!output.isPresent())
|
|
||||||
return Optional.absent();
|
|
||||||
return Optional.of(output.get().getType());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -74,29 +74,29 @@ public class EntityTypeRewriter {
|
|||||||
regEnt(69, 71); // spider
|
regEnt(69, 71); // spider
|
||||||
regEnt(70, 72); // squid
|
regEnt(70, 72); // squid
|
||||||
regEnt(71, 73); // stray
|
regEnt(71, 73); // stray
|
||||||
regEnt(72, 74); // tropical_fish
|
regEnt(72, 75); // tropical_fish
|
||||||
regEnt(73, 75); // turtle
|
regEnt(73, 76); // turtle
|
||||||
regEnt(74, 76); // egg
|
regEnt(74, 77); // egg
|
||||||
regEnt(75, 77); // ender_pearl
|
regEnt(75, 78); // ender_pearl
|
||||||
regEnt(76, 78); // experience_bottle
|
regEnt(76, 79); // experience_bottle
|
||||||
regEnt(77, 79); // potion
|
regEnt(77, 80); // potion
|
||||||
regEnt(78, 80); // vex
|
regEnt(78, 82); // vex
|
||||||
regEnt(79, 81); // villager
|
regEnt(79, 83); // villager
|
||||||
regEnt(80, 82); // iron_golem
|
regEnt(80, 84); // iron_golem
|
||||||
regEnt(81, 83); // vindicator
|
regEnt(81, 85); // vindicator
|
||||||
regEnt(82, 85); // witch
|
regEnt(82, 88); // witch
|
||||||
regEnt(83, 86); // wither
|
regEnt(83, 89); // wither
|
||||||
regEnt(84, 87); // wither_skeleton
|
regEnt(84, 90); // wither_skeleton
|
||||||
regEnt(85, 88); // wither_skull
|
regEnt(85, 91); // wither_skull
|
||||||
regEnt(86, 89); // wolf
|
regEnt(86, 92); // wolf
|
||||||
regEnt(87, 90); // zombie
|
regEnt(87, 93); // zombie
|
||||||
regEnt(88, 91); // zombie_horse
|
regEnt(88, 94); // zombie_horse
|
||||||
regEnt(89, 92); // zombie_villager
|
regEnt(89, 95); // zombie_villager
|
||||||
regEnt(90, 93); // phantom
|
regEnt(90, 96); // phantom
|
||||||
regEnt(91, 95); // lightning_bolt
|
regEnt(91, 98); // lightning_bolt
|
||||||
regEnt(92, 96); // player
|
regEnt(92, 99); // player
|
||||||
regEnt(93, 97); // fishing_bobber
|
regEnt(93, 100); // fishing_bobber
|
||||||
regEnt(94, 98); // trident
|
regEnt(94, 81); // trident
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void regEnt(int type1_13, int type1_14) {
|
private static void regEnt(int type1_13, int type1_14) {
|
||||||
|
@ -2,6 +2,7 @@ package us.myles.ViaVersion.protocols.protocol1_14to1_13_2.packets;
|
|||||||
|
|
||||||
import com.google.common.base.Optional;
|
import com.google.common.base.Optional;
|
||||||
import us.myles.ViaVersion.api.PacketWrapper;
|
import us.myles.ViaVersion.api.PacketWrapper;
|
||||||
|
import us.myles.ViaVersion.api.entities.Entity1_13Types;
|
||||||
import us.myles.ViaVersion.api.entities.Entity1_14Types;
|
import us.myles.ViaVersion.api.entities.Entity1_14Types;
|
||||||
import us.myles.ViaVersion.api.protocol.Protocol;
|
import us.myles.ViaVersion.api.protocol.Protocol;
|
||||||
import us.myles.ViaVersion.api.remapper.PacketHandler;
|
import us.myles.ViaVersion.api.remapper.PacketHandler;
|
||||||
@ -41,21 +42,22 @@ public class EntityPackets {
|
|||||||
public void handle(PacketWrapper wrapper) throws Exception {
|
public void handle(PacketWrapper wrapper) throws Exception {
|
||||||
int entityId = wrapper.get(Type.VAR_INT, 0);
|
int entityId = wrapper.get(Type.VAR_INT, 0);
|
||||||
UUID uuid = wrapper.get(Type.UUID, 0);
|
UUID uuid = wrapper.get(Type.UUID, 0);
|
||||||
int type = wrapper.get(Type.VAR_INT, 1);
|
int typeId = wrapper.get(Type.VAR_INT, 1);
|
||||||
Entity1_14Types.EntityType entType = Entity1_14Types.getTypeFromId(type, true);
|
|
||||||
|
|
||||||
if (entType != null) {
|
Entity1_13Types.EntityType type1_13 = Entity1_13Types.getTypeFromId(typeId, true);
|
||||||
if (entType.is(Entity1_14Types.EntityType.FALLING_BLOCK)) {
|
typeId = EntityTypeRewriter.getNewId(type1_13.getId()).or(type1_13.getId());
|
||||||
|
Entity1_14Types.EntityType type1_14 = Entity1_14Types.getTypeFromId(typeId);
|
||||||
|
|
||||||
|
if (type1_14 != null) {
|
||||||
|
if (type1_14.is(Entity1_14Types.EntityType.FALLING_BLOCK)) {
|
||||||
int data = wrapper.get(Type.INT, 0);
|
int data = wrapper.get(Type.INT, 0);
|
||||||
wrapper.set(Type.INT, 0, Protocol1_14To1_13_2.getNewBlockStateId(data));
|
wrapper.set(Type.INT, 0, Protocol1_14To1_13_2.getNewBlockStateId(data));
|
||||||
}
|
}
|
||||||
|
|
||||||
type = entType.getId();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
wrapper.set(Type.VAR_INT, 1, type);
|
wrapper.set(Type.VAR_INT, 1, typeId);
|
||||||
// Register Type ID
|
// Register Type ID
|
||||||
wrapper.user().get(EntityTracker.class).addEntity(entityId, uuid, entType);
|
wrapper.user().get(EntityTracker.class).addEntity(entityId, uuid, type1_14);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -88,7 +90,7 @@ public class EntityPackets {
|
|||||||
|
|
||||||
type = EntityTypeRewriter.getNewId(type).or(type);
|
type = EntityTypeRewriter.getNewId(type).or(type);
|
||||||
|
|
||||||
Entity1_14Types.EntityType entType = Entity1_14Types.getTypeFromId(type, false);
|
Entity1_14Types.EntityType entType = Entity1_14Types.getTypeFromId(type);
|
||||||
|
|
||||||
wrapper.set(Type.VAR_INT, 1, type);
|
wrapper.set(Type.VAR_INT, 1, type);
|
||||||
|
|
||||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren