Mirror von
https://github.com/ViaVersion/ViaVersion.git
synchronisiert 2024-11-08 01:00:15 +01:00
Migrate to Java optionals (#1458)
* Add fromEntityType method to 1.13 objecttypes * Migrate guava optionals to java optionals
Dieser Commit ist enthalten in:
Ursprung
9408946b36
Commit
44a4ffb26a
@ -1,12 +1,12 @@
|
|||||||
package us.myles.ViaVersion.api.entities;
|
package us.myles.ViaVersion.api.entities;
|
||||||
|
|
||||||
import com.google.common.base.Optional;
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import us.myles.ViaVersion.api.Via;
|
import us.myles.ViaVersion.api.Via;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
// 1.10 Entity / Object ids
|
// 1.10 Entity / Object ids
|
||||||
public class Entity1_10Types {
|
public class Entity1_10Types {
|
||||||
@ -134,8 +134,8 @@ public class Entity1_10Types {
|
|||||||
|
|
||||||
public static Optional<EntityType> findById(int id) {
|
public static Optional<EntityType> findById(int id) {
|
||||||
if (id == -1) // Check if this is called
|
if (id == -1) // Check if this is called
|
||||||
return Optional.absent();
|
return Optional.empty();
|
||||||
return Optional.fromNullable(TYPES.get(id));
|
return Optional.ofNullable(TYPES.get(id));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -181,16 +181,16 @@ public class Entity1_10Types {
|
|||||||
|
|
||||||
public static Optional<ObjectType> findById(int id) {
|
public static Optional<ObjectType> findById(int id) {
|
||||||
if (id == -1)
|
if (id == -1)
|
||||||
return Optional.absent();
|
return Optional.empty();
|
||||||
return Optional.fromNullable(TYPES.get(id));
|
return Optional.ofNullable(TYPES.get(id));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Optional<EntityType> getPCEntity(int id) {
|
public static Optional<EntityType> getPCEntity(int id) {
|
||||||
Optional<ObjectType> output = findById(id);
|
Optional<ObjectType> output = findById(id);
|
||||||
|
|
||||||
if (!output.isPresent())
|
if (!output.isPresent())
|
||||||
return Optional.absent();
|
return Optional.empty();
|
||||||
return Optional.of(output.get().getType());
|
return Optional.of(output.get().type);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
package us.myles.ViaVersion.api.entities;
|
package us.myles.ViaVersion.api.entities;
|
||||||
|
|
||||||
import com.google.common.base.Optional;
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import us.myles.ViaVersion.api.Via;
|
import us.myles.ViaVersion.api.Via;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
// 1.11 Entity / Object ids TODO maybe in the future instead of copying it, some api.
|
// 1.11 Entity / Object ids TODO maybe in the future instead of copying it, some api.
|
||||||
public class Entity1_11Types {
|
public class Entity1_11Types {
|
||||||
@ -162,8 +162,8 @@ public class Entity1_11Types {
|
|||||||
|
|
||||||
public static Optional<EntityType> findById(int id) {
|
public static Optional<EntityType> findById(int id) {
|
||||||
if (id == -1) // Check if this is called
|
if (id == -1) // Check if this is called
|
||||||
return Optional.absent();
|
return Optional.empty();
|
||||||
return Optional.fromNullable(TYPES.get(id));
|
return Optional.ofNullable(TYPES.get(id));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -211,16 +211,16 @@ public class Entity1_11Types {
|
|||||||
|
|
||||||
public static Optional<ObjectType> findById(int id) {
|
public static Optional<ObjectType> findById(int id) {
|
||||||
if (id == -1)
|
if (id == -1)
|
||||||
return Optional.absent();
|
return Optional.empty();
|
||||||
return Optional.fromNullable(TYPES.get(id));
|
return Optional.ofNullable(TYPES.get(id));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Optional<EntityType> getPCEntity(int id) {
|
public static Optional<EntityType> getPCEntity(int id) {
|
||||||
Optional<ObjectType> output = findById(id);
|
Optional<ObjectType> output = findById(id);
|
||||||
|
|
||||||
if (!output.isPresent())
|
if (!output.isPresent())
|
||||||
return Optional.absent();
|
return Optional.empty();
|
||||||
return Optional.of(output.get().getType());
|
return Optional.of(output.get().type);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -10,13 +10,13 @@
|
|||||||
|
|
||||||
package us.myles.ViaVersion.api.entities;
|
package us.myles.ViaVersion.api.entities;
|
||||||
|
|
||||||
import com.google.common.base.Optional;
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import us.myles.ViaVersion.api.Via;
|
import us.myles.ViaVersion.api.Via;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
// 1.12 Entity / Object taken from https://github.com/Matsv/ViaBackwards/blob/master/core/src/main/java/nl/matsv/viabackwards/api/entities/types/EntityType1_12.java
|
// 1.12 Entity / Object taken from https://github.com/Matsv/ViaBackwards/blob/master/core/src/main/java/nl/matsv/viabackwards/api/entities/types/EntityType1_12.java
|
||||||
public class Entity1_12Types {
|
public class Entity1_12Types {
|
||||||
@ -175,8 +175,8 @@ public class Entity1_12Types {
|
|||||||
|
|
||||||
public static Optional<EntityType> findById(int id) {
|
public static Optional<EntityType> findById(int id) {
|
||||||
if (id == -1) // Check if this is called
|
if (id == -1) // Check if this is called
|
||||||
return Optional.absent();
|
return Optional.empty();
|
||||||
return Optional.fromNullable(TYPES.get(id));
|
return Optional.ofNullable(TYPES.get(id));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -224,16 +224,16 @@ public class Entity1_12Types {
|
|||||||
|
|
||||||
public static Optional<ObjectType> findById(int id) {
|
public static Optional<ObjectType> findById(int id) {
|
||||||
if (id == -1)
|
if (id == -1)
|
||||||
return Optional.absent();
|
return Optional.empty();
|
||||||
return Optional.fromNullable(TYPES.get(id));
|
return Optional.ofNullable(TYPES.get(id));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Optional<EntityType> getPCEntity(int id) {
|
public static Optional<EntityType> getPCEntity(int id) {
|
||||||
Optional<ObjectType> output = findById(id);
|
Optional<ObjectType> output = findById(id);
|
||||||
|
|
||||||
if (!output.isPresent())
|
if (!output.isPresent())
|
||||||
return Optional.absent();
|
return Optional.empty();
|
||||||
return Optional.of(output.get().getType());
|
return Optional.of(output.get().type);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
package us.myles.ViaVersion.api.entities;
|
package us.myles.ViaVersion.api.entities;
|
||||||
|
|
||||||
import com.google.common.base.Optional;
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import us.myles.ViaVersion.api.Via;
|
import us.myles.ViaVersion.api.Via;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
// TODO auto generate 18w11a with PAaaS
|
// TODO auto generate 18w11a with PAaaS
|
||||||
public class Entity1_13Types {
|
public class Entity1_13Types {
|
||||||
@ -217,8 +217,8 @@ public class Entity1_13Types {
|
|||||||
|
|
||||||
public static Optional<EntityType> findById(int id) {
|
public static Optional<EntityType> findById(int id) {
|
||||||
if (id == -1) // Check if this is called
|
if (id == -1) // Check if this is called
|
||||||
return Optional.absent();
|
return Optional.empty();
|
||||||
return Optional.fromNullable(TYPES.get(id));
|
return Optional.ofNullable(TYPES.get(id));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -267,16 +267,22 @@ public class Entity1_13Types {
|
|||||||
|
|
||||||
public static Optional<ObjectType> findById(int id) {
|
public static Optional<ObjectType> findById(int id) {
|
||||||
if (id == -1)
|
if (id == -1)
|
||||||
return Optional.absent();
|
return Optional.empty();
|
||||||
return Optional.fromNullable(TYPES.get(id));
|
return Optional.ofNullable(TYPES.get(id));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Optional<EntityType> getPCEntity(int id) {
|
public static Optional<EntityType> getPCEntity(int id) {
|
||||||
Optional<ObjectType> output = findById(id);
|
Optional<ObjectType> output = findById(id);
|
||||||
|
|
||||||
if (!output.isPresent())
|
if (!output.isPresent())
|
||||||
return Optional.absent();
|
return Optional.empty();
|
||||||
return Optional.of(output.get().getType());
|
return Optional.of(output.get().type);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Optional<ObjectType> fromEntityType(EntityType type) {
|
||||||
|
for (ObjectType ent : ObjectType.values())
|
||||||
|
if (ent.type == type)
|
||||||
|
return Optional.of(ent);
|
||||||
|
return Optional.empty();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,22 +1,22 @@
|
|||||||
package us.myles.ViaVersion.api.entities;
|
package us.myles.ViaVersion.api.entities;
|
||||||
|
|
||||||
import com.google.common.base.Optional;
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import us.myles.ViaVersion.api.Via;
|
import us.myles.ViaVersion.api.Via;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
|
|
||||||
public class Entity1_14Types {
|
public class Entity1_14Types {
|
||||||
|
|
||||||
public static EntityType getTypeFromId(int typeID) {
|
public static EntityType getTypeFromId(int typeID) {
|
||||||
Optional<EntityType> type = Entity1_14Types.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);
|
Via.getPlatform().getLogger().severe("Could not find type id " + typeID);
|
||||||
return Entity1_14Types.EntityType.ENTITY; // Fall back to the basic ENTITY
|
return EntityType.ENTITY; // Fall back to the basic ENTITY
|
||||||
}
|
}
|
||||||
|
|
||||||
return type.get();
|
return type.get();
|
||||||
@ -212,15 +212,15 @@ public class Entity1_14Types {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static {
|
static {
|
||||||
for (EntityType type : Entity1_14Types.EntityType.values()) {
|
for (EntityType type : EntityType.values()) {
|
||||||
TYPES.put(type.id, type);
|
TYPES.put(type.id, type);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Optional<EntityType> findById(int id) {
|
public static Optional<EntityType> findById(int id) {
|
||||||
if (id == -1)
|
if (id == -1)
|
||||||
return Optional.absent();
|
return Optional.empty();
|
||||||
return Optional.fromNullable(TYPES.get(id));
|
return Optional.ofNullable(TYPES.get(id));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
package us.myles.ViaVersion.api.entities;
|
package us.myles.ViaVersion.api.entities;
|
||||||
|
|
||||||
import com.google.common.base.Optional;
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import us.myles.ViaVersion.api.Via;
|
import us.myles.ViaVersion.api.Via;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
|
|
||||||
public class Entity1_15Types {
|
public class Entity1_15Types {
|
||||||
@ -219,8 +219,8 @@ public class Entity1_15Types {
|
|||||||
|
|
||||||
public static Optional<EntityType> findById(int id) {
|
public static Optional<EntityType> findById(int id) {
|
||||||
if (id == -1)
|
if (id == -1)
|
||||||
return Optional.absent();
|
return Optional.empty();
|
||||||
return Optional.fromNullable(TYPES.get(id));
|
return Optional.ofNullable(TYPES.get(id));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,20 +1,16 @@
|
|||||||
package us.myles.ViaVersion.api.storage;
|
package us.myles.ViaVersion.api.storage;
|
||||||
|
|
||||||
import com.google.common.base.Optional;
|
|
||||||
import lombok.Getter;
|
|
||||||
import lombok.Setter;
|
|
||||||
import us.myles.ViaVersion.api.data.ExternalJoinGameListener;
|
import us.myles.ViaVersion.api.data.ExternalJoinGameListener;
|
||||||
import us.myles.ViaVersion.api.data.StoredObject;
|
import us.myles.ViaVersion.api.data.StoredObject;
|
||||||
import us.myles.ViaVersion.api.data.UserConnection;
|
import us.myles.ViaVersion.api.data.UserConnection;
|
||||||
import us.myles.ViaVersion.api.entities.EntityType;
|
import us.myles.ViaVersion.api.entities.EntityType;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.Optional;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
|
|
||||||
public abstract class EntityTracker<T extends EntityType> extends StoredObject implements ExternalJoinGameListener {
|
public abstract class EntityTracker<T extends EntityType> extends StoredObject implements ExternalJoinGameListener {
|
||||||
private final Map<Integer, T> clientEntityTypes = new ConcurrentHashMap<>();
|
private final Map<Integer, T> clientEntityTypes = new ConcurrentHashMap<>();
|
||||||
@Getter
|
|
||||||
@Setter
|
|
||||||
private int clientEntityId;
|
private int clientEntityId;
|
||||||
private final T playerType;
|
private final T playerType;
|
||||||
|
|
||||||
@ -36,7 +32,7 @@ public abstract class EntityTracker<T extends EntityType> extends StoredObject i
|
|||||||
}
|
}
|
||||||
|
|
||||||
public Optional<T> getEntity(int entityId) {
|
public Optional<T> getEntity(int entityId) {
|
||||||
return Optional.fromNullable(clientEntityTypes.get(entityId));
|
return Optional.ofNullable(clientEntityTypes.get(entityId));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -44,4 +40,12 @@ public abstract class EntityTracker<T extends EntityType> extends StoredObject i
|
|||||||
clientEntityId = playerEntityId;
|
clientEntityId = playerEntityId;
|
||||||
clientEntityTypes.put(playerEntityId, playerType);
|
clientEntityTypes.put(playerEntityId, playerType);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int getClientEntityId() {
|
||||||
|
return clientEntityId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setClientEntityId(int clientEntityId) {
|
||||||
|
this.clientEntityId = clientEntityId;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,6 @@ package us.myles.ViaVersion.protocols.protocol1_11to1_10;
|
|||||||
|
|
||||||
import com.github.steveice10.opennbt.tag.builtin.CompoundTag;
|
import com.github.steveice10.opennbt.tag.builtin.CompoundTag;
|
||||||
import com.github.steveice10.opennbt.tag.builtin.StringTag;
|
import com.github.steveice10.opennbt.tag.builtin.StringTag;
|
||||||
import com.google.common.base.Optional;
|
|
||||||
import us.myles.ViaVersion.api.PacketWrapper;
|
import us.myles.ViaVersion.api.PacketWrapper;
|
||||||
import us.myles.ViaVersion.api.Via;
|
import us.myles.ViaVersion.api.Via;
|
||||||
import us.myles.ViaVersion.api.data.UserConnection;
|
import us.myles.ViaVersion.api.data.UserConnection;
|
||||||
@ -22,6 +21,8 @@ import us.myles.ViaVersion.protocols.protocol1_11to1_10.storage.EntityTracker1_1
|
|||||||
import us.myles.ViaVersion.protocols.protocol1_9_1_2to1_9_3_4.types.Chunk1_9_3_4Type;
|
import us.myles.ViaVersion.protocols.protocol1_9_1_2to1_9_3_4.types.Chunk1_9_3_4Type;
|
||||||
import us.myles.ViaVersion.protocols.protocol1_9_3to1_9_1_2.storage.ClientWorld;
|
import us.myles.ViaVersion.protocols.protocol1_9_3to1_9_1_2.storage.ClientWorld;
|
||||||
|
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
public class Protocol1_11To1_10 extends Protocol {
|
public class Protocol1_11To1_10 extends Protocol {
|
||||||
private static final ValueTransformer<Float, Short> toOldByte = new ValueTransformer<Float, Short>(Type.UNSIGNED_BYTE) {
|
private static final ValueTransformer<Float, Short> toOldByte = new ValueTransformer<Float, Short>(Type.UNSIGNED_BYTE) {
|
||||||
@Override
|
@Override
|
||||||
|
@ -1,10 +1,8 @@
|
|||||||
package us.myles.ViaVersion.protocols.protocol1_11to1_10.metadata;
|
package us.myles.ViaVersion.protocols.protocol1_11to1_10.metadata;
|
||||||
|
|
||||||
import com.google.common.base.Optional;
|
|
||||||
import us.myles.ViaVersion.api.PacketWrapper;
|
import us.myles.ViaVersion.api.PacketWrapper;
|
||||||
import us.myles.ViaVersion.api.Via;
|
import us.myles.ViaVersion.api.Via;
|
||||||
import us.myles.ViaVersion.api.data.UserConnection;
|
import us.myles.ViaVersion.api.data.UserConnection;
|
||||||
import us.myles.ViaVersion.api.entities.Entity1_11Types;
|
|
||||||
import us.myles.ViaVersion.api.entities.Entity1_11Types.EntityType;
|
import us.myles.ViaVersion.api.entities.Entity1_11Types.EntityType;
|
||||||
import us.myles.ViaVersion.api.minecraft.item.Item;
|
import us.myles.ViaVersion.api.minecraft.item.Item;
|
||||||
import us.myles.ViaVersion.api.minecraft.metadata.Metadata;
|
import us.myles.ViaVersion.api.minecraft.metadata.Metadata;
|
||||||
@ -17,8 +15,9 @@ import us.myles.ViaVersion.protocols.protocol1_11to1_10.storage.EntityTracker1_1
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
public class MetadataRewriter1_11To1_10 extends MetadataRewriter<Entity1_11Types.EntityType> {
|
public class MetadataRewriter1_11To1_10 extends MetadataRewriter<EntityType> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void handleMetadata(int entityId, EntityType type, Metadata metadata, List<Metadata> metadatas, Map<Integer, Metadata> metadataMap, UserConnection connection) {
|
protected void handleMetadata(int entityId, EntityType type, Metadata metadata, List<Metadata> metadatas, Map<Integer, Metadata> metadataMap, UserConnection connection) {
|
||||||
@ -95,15 +94,15 @@ public class MetadataRewriter1_11To1_10 extends MetadataRewriter<Entity1_11Types
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (type.is(EntityType.ARMOR_STAND) && Via.getConfig().isHologramPatch()) {
|
if (type.is(EntityType.ARMOR_STAND) && Via.getConfig().isHologramPatch()) {
|
||||||
Optional<Metadata> flags = Optional.fromNullable(metadataMap.get(11));
|
Optional<Metadata> flags = Optional.ofNullable(metadataMap.get(11));
|
||||||
Optional<Metadata> customName = Optional.fromNullable(metadataMap.get(2));
|
Optional<Metadata> customName = Optional.ofNullable(metadataMap.get(2));
|
||||||
Optional<Metadata> customNameVisible = Optional.fromNullable(metadataMap.get(3));
|
Optional<Metadata> customNameVisible = Optional.ofNullable(metadataMap.get(3));
|
||||||
if (metadata.getId() == 0 && flags.isPresent() && customName.isPresent() && customNameVisible.isPresent()) {
|
if (metadata.getId() == 0 && flags.isPresent() && customName.isPresent() && customNameVisible.isPresent()) {
|
||||||
Metadata meta = flags.get();
|
Metadata meta = flags.get();
|
||||||
byte data = (byte) metadata.getValue();
|
byte data = (byte) metadata.getValue();
|
||||||
// Check invisible | Check small | Check if custom name is empty | Check if custom name visible is true
|
// Check invisible | Check small | Check if custom name is empty | Check if custom name visible is true
|
||||||
if ((data & 0x20) == 0x20 && ((byte) meta.getValue() & 0x01) == 0x01
|
if ((data & 0x20) == 0x20 && ((byte) meta.getValue() & 0x01) == 0x01
|
||||||
&& !((String) customName.get().getValue()).isEmpty() && (boolean) customNameVisible.get().getValue()) {
|
&& !((String) customName.get().getValue()).isEmpty() && (boolean) customNameVisible.get().getValue()) {
|
||||||
EntityTracker1_11 tracker = connection.get(EntityTracker1_11.class);
|
EntityTracker1_11 tracker = connection.get(EntityTracker1_11.class);
|
||||||
if (!tracker.isHologram(entityId)) {
|
if (!tracker.isHologram(entityId)) {
|
||||||
tracker.addHologram(entityId);
|
tracker.addHologram(entityId);
|
||||||
@ -212,6 +211,6 @@ public class MetadataRewriter1_11To1_10 extends MetadataRewriter<Entity1_11Types
|
|||||||
for (Metadata metadata : metadatas) {
|
for (Metadata metadata : metadatas) {
|
||||||
if (metadata.getId() == id) return Optional.of(metadata);
|
if (metadata.getId() == id) return Optional.of(metadata);
|
||||||
}
|
}
|
||||||
return Optional.absent();
|
return Optional.empty();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3,7 +3,6 @@ package us.myles.ViaVersion.protocols.protocol1_12to1_11_1;
|
|||||||
import com.github.steveice10.opennbt.tag.builtin.CompoundTag;
|
import com.github.steveice10.opennbt.tag.builtin.CompoundTag;
|
||||||
import com.github.steveice10.opennbt.tag.builtin.IntTag;
|
import com.github.steveice10.opennbt.tag.builtin.IntTag;
|
||||||
import com.github.steveice10.opennbt.tag.builtin.StringTag;
|
import com.github.steveice10.opennbt.tag.builtin.StringTag;
|
||||||
import com.google.common.base.Optional;
|
|
||||||
import com.google.gson.JsonElement;
|
import com.google.gson.JsonElement;
|
||||||
import com.google.gson.JsonParser;
|
import com.google.gson.JsonParser;
|
||||||
import us.myles.ViaVersion.api.PacketWrapper;
|
import us.myles.ViaVersion.api.PacketWrapper;
|
||||||
@ -27,6 +26,8 @@ import us.myles.ViaVersion.protocols.protocol1_9_1_2to1_9_3_4.types.Chunk1_9_3_4
|
|||||||
import us.myles.ViaVersion.protocols.protocol1_9_3to1_9_1_2.storage.ClientWorld;
|
import us.myles.ViaVersion.protocols.protocol1_9_3to1_9_1_2.storage.ClientWorld;
|
||||||
import us.myles.ViaVersion.protocols.protocol1_9to1_8.Protocol1_9To1_8;
|
import us.myles.ViaVersion.protocols.protocol1_9to1_8.Protocol1_9To1_8;
|
||||||
|
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
public class Protocol1_12To1_11_1 extends Protocol {
|
public class Protocol1_12To1_11_1 extends Protocol {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -1,19 +1,19 @@
|
|||||||
package us.myles.ViaVersion.protocols.protocol1_13_1to1_13.packets;
|
package us.myles.ViaVersion.protocols.protocol1_13_1to1_13.packets;
|
||||||
|
|
||||||
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_13Types;
|
||||||
import us.myles.ViaVersion.api.entities.Entity1_13Types.EntityType;
|
|
||||||
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;
|
||||||
import us.myles.ViaVersion.api.remapper.PacketRemapper;
|
import us.myles.ViaVersion.api.remapper.PacketRemapper;
|
||||||
import us.myles.ViaVersion.api.type.Type;
|
import us.myles.ViaVersion.api.type.Type;
|
||||||
import us.myles.ViaVersion.api.type.types.version.Types1_13;
|
import us.myles.ViaVersion.api.type.types.version.Types1_13;
|
||||||
import us.myles.ViaVersion.packets.State;
|
import us.myles.ViaVersion.packets.State;
|
||||||
import us.myles.ViaVersion.protocols.protocol1_13_1to1_13.metadata.MetadataRewriter1_13_1To1_13;
|
|
||||||
import us.myles.ViaVersion.protocols.protocol1_13_1to1_13.Protocol1_13_1To1_13;
|
import us.myles.ViaVersion.protocols.protocol1_13_1to1_13.Protocol1_13_1To1_13;
|
||||||
|
import us.myles.ViaVersion.protocols.protocol1_13_1to1_13.metadata.MetadataRewriter1_13_1To1_13;
|
||||||
import us.myles.ViaVersion.protocols.protocol1_13to1_12_2.storage.EntityTracker1_13;
|
import us.myles.ViaVersion.protocols.protocol1_13to1_12_2.storage.EntityTracker1_13;
|
||||||
|
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
public class EntityPackets {
|
public class EntityPackets {
|
||||||
|
|
||||||
public static void register(final Protocol protocol) {
|
public static void register(final Protocol protocol) {
|
||||||
@ -141,8 +141,8 @@ 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);
|
||||||
|
|
||||||
Optional<EntityType> type = wrapper.user().get(EntityTracker1_13.class).getEntity(entityId);
|
Optional<Entity1_13Types.EntityType> type = wrapper.user().get(EntityTracker1_13.class).getEntity(entityId);
|
||||||
protocol.get(MetadataRewriter1_13_1To1_13.class).handleMetadata(entityId, type.orNull(), wrapper.get(Types1_13.METADATA_LIST, 0), wrapper.user());
|
protocol.get(MetadataRewriter1_13_1To1_13.class).handleMetadata(entityId, type.orElse(null), wrapper.get(Types1_13.METADATA_LIST, 0), wrapper.user());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package us.myles.ViaVersion.protocols.protocol1_13to1_12_2.data;
|
package us.myles.ViaVersion.protocols.protocol1_13to1_12_2.data;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
CHANGED ENTITY NAMES IN 1.13
|
CHANGED ENTITY NAMES IN 1.13
|
||||||
@ -20,7 +20,7 @@ import java.util.concurrent.ConcurrentHashMap;
|
|||||||
xp_orb => experience_orb
|
xp_orb => experience_orb
|
||||||
*/
|
*/
|
||||||
public class EntityNameRewriter {
|
public class EntityNameRewriter {
|
||||||
private static Map<String, String> entityNames = new ConcurrentHashMap<>();
|
private static final Map<String, String> entityNames = new HashMap<>();
|
||||||
|
|
||||||
static {
|
static {
|
||||||
/*
|
/*
|
||||||
|
@ -1,13 +1,12 @@
|
|||||||
package us.myles.ViaVersion.protocols.protocol1_13to1_12_2.data;
|
package us.myles.ViaVersion.protocols.protocol1_13to1_12_2.data;
|
||||||
|
|
||||||
|
|
||||||
import com.google.common.base.Optional;
|
import java.util.HashMap;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.Optional;
|
||||||
|
|
||||||
public class EntityTypeRewriter {
|
public class EntityTypeRewriter {
|
||||||
private static Map<Integer, Integer> entityTypes = new ConcurrentHashMap<>();
|
private static final Map<Integer, Integer> entityTypes = new HashMap<>();
|
||||||
|
|
||||||
static {
|
static {
|
||||||
registerEntity(1, 32); // item - ajl
|
registerEntity(1, 32); // item - ajl
|
||||||
@ -94,10 +93,8 @@ public class EntityTypeRewriter {
|
|||||||
registerEntity(105, 50); // parrot - agx
|
registerEntity(105, 50); // parrot - agx
|
||||||
registerEntity(120, 79); // villager - ala
|
registerEntity(120, 79); // villager - ala
|
||||||
|
|
||||||
|
|
||||||
// OBJECTS
|
// OBJECTS
|
||||||
// Couldn't find any object id change with mapped values
|
// Couldn't find any object id change with mapped values
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void registerEntity(int type1_12, int type1_13) {
|
private static void registerEntity(int type1_12, int type1_13) {
|
||||||
@ -105,6 +102,6 @@ public class EntityTypeRewriter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static Optional<Integer> getNewId(int type1_12) {
|
public static Optional<Integer> getNewId(int type1_12) {
|
||||||
return Optional.fromNullable(entityTypes.get(type1_12));
|
return Optional.ofNullable(entityTypes.get(type1_12));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -5,7 +5,7 @@ import java.util.Locale;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
public class NamedSoundRewriter {
|
public class NamedSoundRewriter {
|
||||||
private static Map<String, String> oldToNew = new HashMap<>();
|
private static final Map<String, String> oldToNew = new HashMap<>();
|
||||||
|
|
||||||
static {
|
static {
|
||||||
// Extracted from Minecraft Wiki
|
// Extracted from Minecraft Wiki
|
||||||
@ -144,7 +144,6 @@ public class NamedSoundRewriter {
|
|||||||
oldToNew.put("record.strad", "music_disc.strad");
|
oldToNew.put("record.strad", "music_disc.strad");
|
||||||
oldToNew.put("record.wait", "music_disc.wait");
|
oldToNew.put("record.wait", "music_disc.wait");
|
||||||
oldToNew.put("record.ward", "music_disc.ward");
|
oldToNew.put("record.ward", "music_disc.ward");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String getNewId(String old) {
|
public static String getNewId(String old) {
|
||||||
|
@ -8,13 +8,13 @@ import us.myles.ViaVersion.api.type.Type;
|
|||||||
import us.myles.ViaVersion.protocols.protocol1_13to1_12_2.packets.InventoryPackets;
|
import us.myles.ViaVersion.protocols.protocol1_13to1_12_2.packets.InventoryPackets;
|
||||||
import us.myles.ViaVersion.protocols.protocol1_13to1_12_2.packets.WorldPackets;
|
import us.myles.ViaVersion.protocols.protocol1_13to1_12_2.packets.WorldPackets;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.LinkedList;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.concurrent.ThreadLocalRandom;
|
import java.util.concurrent.ThreadLocalRandom;
|
||||||
|
|
||||||
public class ParticleRewriter {
|
public class ParticleRewriter {
|
||||||
private static List<NewParticle> particles = new LinkedList<>();
|
private static final List<NewParticle> particles = new ArrayList<>();
|
||||||
|
|
||||||
static {
|
static {
|
||||||
add(34); // (0->34) explode -> minecraft:poof
|
add(34); // (0->34) explode -> minecraft:poof
|
||||||
|
@ -1,9 +1,10 @@
|
|||||||
package us.myles.ViaVersion.protocols.protocol1_13to1_12_2.data;
|
package us.myles.ViaVersion.protocols.protocol1_13to1_12_2.data;
|
||||||
|
|
||||||
import com.google.common.base.Optional;
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
public enum SoundSource {
|
public enum SoundSource {
|
||||||
@ -23,8 +24,8 @@ public enum SoundSource {
|
|||||||
|
|
||||||
public static Optional<SoundSource> findBySource(String source) {
|
public static Optional<SoundSource> findBySource(String source) {
|
||||||
for (SoundSource item : SoundSource.values())
|
for (SoundSource item : SoundSource.values())
|
||||||
if (item.getName().equalsIgnoreCase(source))
|
if (item.name.equalsIgnoreCase(source))
|
||||||
return Optional.of(item);
|
return Optional.of(item);
|
||||||
return Optional.absent();
|
return Optional.empty();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
package us.myles.ViaVersion.protocols.protocol1_13to1_12_2.data;
|
package us.myles.ViaVersion.protocols.protocol1_13to1_12_2.data;
|
||||||
|
|
||||||
import com.google.common.base.Optional;
|
|
||||||
import com.google.common.collect.BiMap;
|
import com.google.common.collect.BiMap;
|
||||||
import com.google.common.collect.HashBiMap;
|
import com.google.common.collect.HashBiMap;
|
||||||
|
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
public class SpawnEggRewriter {
|
public class SpawnEggRewriter {
|
||||||
private final static BiMap<String, Integer> spawnEggs = HashBiMap.create();
|
private static final BiMap<String, Integer> spawnEggs = HashBiMap.create();
|
||||||
|
|
||||||
static {
|
static {
|
||||||
// Class yz.java in 18w14b
|
// Class yz.java in 18w14b
|
||||||
@ -70,7 +71,7 @@ public class SpawnEggRewriter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static Optional<String> getEntityId(int spawnEggId) {
|
public static Optional<String> getEntityId(int spawnEggId) {
|
||||||
if (spawnEggId >> 16 != 383) return Optional.absent();
|
if (spawnEggId >> 16 != 383) return Optional.empty();
|
||||||
return Optional.fromNullable(spawnEggs.inverse().get(spawnEggId & 0xFFFF));
|
return Optional.ofNullable(spawnEggs.inverse().get(spawnEggId & 0xFFFF));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
package us.myles.ViaVersion.protocols.protocol1_13to1_12_2.packets;
|
package us.myles.ViaVersion.protocols.protocol1_13to1_12_2.packets;
|
||||||
|
|
||||||
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_13Types;
|
||||||
import us.myles.ViaVersion.api.protocol.Protocol;
|
import us.myles.ViaVersion.api.protocol.Protocol;
|
||||||
@ -14,6 +13,8 @@ import us.myles.ViaVersion.protocols.protocol1_13to1_12_2.data.EntityTypeRewrite
|
|||||||
import us.myles.ViaVersion.protocols.protocol1_13to1_12_2.metadata.MetadataRewriter1_13To1_12_2;
|
import us.myles.ViaVersion.protocols.protocol1_13to1_12_2.metadata.MetadataRewriter1_13To1_12_2;
|
||||||
import us.myles.ViaVersion.protocols.protocol1_13to1_12_2.storage.EntityTracker1_13;
|
import us.myles.ViaVersion.protocols.protocol1_13to1_12_2.storage.EntityTracker1_13;
|
||||||
|
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
public class EntityPackets {
|
public class EntityPackets {
|
||||||
public static void register(final Protocol protocol) {
|
public static void register(final Protocol protocol) {
|
||||||
// Outgoing packets
|
// Outgoing packets
|
||||||
@ -103,7 +104,7 @@ public class EntityPackets {
|
|||||||
int type = wrapper.get(Type.VAR_INT, 1);
|
int type = wrapper.get(Type.VAR_INT, 1);
|
||||||
|
|
||||||
Optional<Integer> optNewType = EntityTypeRewriter.getNewId(type);
|
Optional<Integer> optNewType = EntityTypeRewriter.getNewId(type);
|
||||||
type = optNewType.or(type);
|
type = optNewType.orElse(type);
|
||||||
Entity1_13Types.EntityType entType = Entity1_13Types.getTypeFromId(type, false);
|
Entity1_13Types.EntityType entType = Entity1_13Types.getTypeFromId(type, false);
|
||||||
|
|
||||||
wrapper.set(Type.VAR_INT, 1, type);
|
wrapper.set(Type.VAR_INT, 1, type);
|
||||||
@ -172,7 +173,7 @@ public class EntityPackets {
|
|||||||
int entityId = wrapper.get(Type.VAR_INT, 0);
|
int entityId = wrapper.get(Type.VAR_INT, 0);
|
||||||
|
|
||||||
Optional<Entity1_13Types.EntityType> type = wrapper.user().get(EntityTracker1_13.class).getEntity(entityId);
|
Optional<Entity1_13Types.EntityType> type = wrapper.user().get(EntityTracker1_13.class).getEntity(entityId);
|
||||||
protocol.get(MetadataRewriter1_13To1_12_2.class).handleMetadata(entityId, type.orNull(), wrapper.get(Types1_13.METADATA_LIST, 0), wrapper.user());
|
protocol.get(MetadataRewriter1_13To1_12_2.class).handleMetadata(entityId, type.orElse(null), wrapper.get(Types1_13.METADATA_LIST, 0), wrapper.user());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -1,14 +1,8 @@
|
|||||||
package us.myles.ViaVersion.protocols.protocol1_13to1_12_2.packets;
|
package us.myles.ViaVersion.protocols.protocol1_13to1_12_2.packets;
|
||||||
|
|
||||||
import com.github.steveice10.opennbt.conversion.ConverterRegistry;
|
import com.github.steveice10.opennbt.conversion.ConverterRegistry;
|
||||||
import com.github.steveice10.opennbt.tag.builtin.CompoundTag;
|
import com.github.steveice10.opennbt.tag.builtin.*;
|
||||||
import com.github.steveice10.opennbt.tag.builtin.IntTag;
|
|
||||||
import com.github.steveice10.opennbt.tag.builtin.ListTag;
|
|
||||||
import com.github.steveice10.opennbt.tag.builtin.ShortTag;
|
|
||||||
import com.github.steveice10.opennbt.tag.builtin.StringTag;
|
|
||||||
import com.github.steveice10.opennbt.tag.builtin.Tag;
|
|
||||||
import com.google.common.base.Joiner;
|
import com.google.common.base.Joiner;
|
||||||
import com.google.common.base.Optional;
|
|
||||||
import com.google.common.primitives.Ints;
|
import com.google.common.primitives.Ints;
|
||||||
import us.myles.ViaVersion.api.PacketWrapper;
|
import us.myles.ViaVersion.api.PacketWrapper;
|
||||||
import us.myles.ViaVersion.api.Via;
|
import us.myles.ViaVersion.api.Via;
|
||||||
@ -28,6 +22,7 @@ import java.nio.charset.StandardCharsets;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
public class InventoryPackets {
|
public class InventoryPackets {
|
||||||
private static String NBT_TAG_NAME;
|
private static String NBT_TAG_NAME;
|
||||||
@ -124,7 +119,7 @@ public class InventoryPackets {
|
|||||||
if (!Via.getConfig().isSuppress1_13ConversionErrors() || Via.getManager().isDebug()) {
|
if (!Via.getConfig().isSuppress1_13ConversionErrors() || Via.getManager().isDebug()) {
|
||||||
Via.getPlatform().getLogger().info("Could not handle unknown sound source " + originalSource + " falling back to default: master");
|
Via.getPlatform().getLogger().info("Could not handle unknown sound source " + originalSource + " falling back to default: master");
|
||||||
}
|
}
|
||||||
finalSource = Optional.of(SoundSource.MASTER);
|
finalSource = java.util.Optional.of(SoundSource.MASTER);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -514,9 +509,9 @@ public class InventoryPackets {
|
|||||||
case "bungeecord:main":
|
case "bungeecord:main":
|
||||||
return null;
|
return null;
|
||||||
case "FML|MP":
|
case "FML|MP":
|
||||||
return "fml:mp";
|
return "fml:mp";
|
||||||
case "FML|HS":
|
case "FML|HS":
|
||||||
return "fml:hs";
|
return "fml:hs";
|
||||||
default:
|
default:
|
||||||
return old.matches("([0-9a-z_.-]+):([0-9a-z_/.-]+)") // Identifier regex
|
return old.matches("([0-9a-z_.-]+):([0-9a-z_/.-]+)") // Identifier regex
|
||||||
? old : null;
|
? old : null;
|
||||||
@ -759,9 +754,9 @@ public class InventoryPackets {
|
|||||||
case "wdl:request":
|
case "wdl:request":
|
||||||
return "WDL|REQUEST";
|
return "WDL|REQUEST";
|
||||||
case "fml:hs":
|
case "fml:hs":
|
||||||
return "FML|HS";
|
return "FML|HS";
|
||||||
case "fml:mp":
|
case "fml:mp":
|
||||||
return "FML:MP";
|
return "FML:MP";
|
||||||
default:
|
default:
|
||||||
return newId.length() > 20 ? newId.substring(0, 20) : newId;
|
return newId.length() > 20 ? newId.substring(0, 20) : newId;
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
package us.myles.ViaVersion.protocols.protocol1_13to1_12_2.packets;
|
package us.myles.ViaVersion.protocols.protocol1_13to1_12_2.packets;
|
||||||
|
|
||||||
import com.github.steveice10.opennbt.tag.builtin.CompoundTag;
|
import com.github.steveice10.opennbt.tag.builtin.CompoundTag;
|
||||||
import com.google.common.base.Optional;
|
|
||||||
import us.myles.ViaVersion.api.PacketWrapper;
|
import us.myles.ViaVersion.api.PacketWrapper;
|
||||||
import us.myles.ViaVersion.api.Via;
|
import us.myles.ViaVersion.api.Via;
|
||||||
import us.myles.ViaVersion.api.data.UserConnection;
|
import us.myles.ViaVersion.api.data.UserConnection;
|
||||||
@ -30,6 +29,7 @@ import us.myles.ViaVersion.protocols.protocol1_9_3to1_9_1_2.storage.ClientWorld;
|
|||||||
|
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Optional;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
public class WorldPackets {
|
public class WorldPackets {
|
||||||
@ -76,7 +76,7 @@ public class WorldPackets {
|
|||||||
if (!id.isPresent() && (!Via.getConfig().isSuppress1_13ConversionErrors() || Via.getManager().isDebug())) {
|
if (!id.isPresent() && (!Via.getConfig().isSuppress1_13ConversionErrors() || Via.getManager().isDebug())) {
|
||||||
Via.getPlatform().getLogger().warning("Could not find painting motive: " + motive + " falling back to default (0)");
|
Via.getPlatform().getLogger().warning("Could not find painting motive: " + motive + " falling back to default (0)");
|
||||||
}
|
}
|
||||||
wrapper.write(Type.VAR_INT, id.or(0));
|
wrapper.write(Type.VAR_INT, id.orElse(0));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -10,11 +10,11 @@ import us.myles.ViaVersion.api.type.Type;
|
|||||||
import us.myles.ViaVersion.protocols.protocol1_13to1_12_2.Protocol1_13To1_12_2;
|
import us.myles.ViaVersion.protocols.protocol1_13to1_12_2.Protocol1_13To1_12_2;
|
||||||
import us.myles.ViaVersion.protocols.protocol1_13to1_12_2.providers.blockentities.*;
|
import us.myles.ViaVersion.protocols.protocol1_13to1_12_2.providers.blockentities.*;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
|
||||||
|
|
||||||
public class BlockEntityProvider implements Provider {
|
public class BlockEntityProvider implements Provider {
|
||||||
private final Map<String, BlockEntityHandler> handlers = new ConcurrentHashMap<>();
|
private final Map<String, BlockEntityHandler> handlers = new HashMap<>();
|
||||||
|
|
||||||
public BlockEntityProvider() {
|
public BlockEntityProvider() {
|
||||||
handlers.put("minecraft:flower_pot", new FlowerPotHandler());
|
handlers.put("minecraft:flower_pot", new FlowerPotHandler());
|
||||||
|
@ -1,14 +1,14 @@
|
|||||||
package us.myles.ViaVersion.protocols.protocol1_13to1_12_2.providers;
|
package us.myles.ViaVersion.protocols.protocol1_13to1_12_2.providers;
|
||||||
|
|
||||||
import com.google.common.base.Optional;
|
|
||||||
import us.myles.ViaVersion.api.platform.providers.Provider;
|
import us.myles.ViaVersion.api.platform.providers.Provider;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.Optional;
|
||||||
|
|
||||||
public class PaintingProvider implements Provider {
|
public class PaintingProvider implements Provider {
|
||||||
private Map<String, Integer> paintings = new ConcurrentHashMap<>();
|
private final Map<String, Integer> paintings = new HashMap<>();
|
||||||
|
|
||||||
public PaintingProvider() {
|
public PaintingProvider() {
|
||||||
add("kebab");
|
add("kebab");
|
||||||
@ -47,6 +47,6 @@ public class PaintingProvider implements Provider {
|
|||||||
// Handle older versions
|
// Handle older versions
|
||||||
if (!motive.startsWith("minecraft:"))
|
if (!motive.startsWith("minecraft:"))
|
||||||
motive = "minecraft:" + motive.toLowerCase(Locale.ROOT);
|
motive = "minecraft:" + motive.toLowerCase(Locale.ROOT);
|
||||||
return Optional.fromNullable(paintings.get(motive));
|
return Optional.ofNullable(paintings.get(motive));
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -6,12 +6,12 @@ import us.myles.ViaVersion.api.Via;
|
|||||||
import us.myles.ViaVersion.api.data.UserConnection;
|
import us.myles.ViaVersion.api.data.UserConnection;
|
||||||
import us.myles.ViaVersion.protocols.protocol1_13to1_12_2.providers.BlockEntityProvider;
|
import us.myles.ViaVersion.protocols.protocol1_13to1_12_2.providers.BlockEntityProvider;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
|
||||||
|
|
||||||
public class FlowerPotHandler implements BlockEntityProvider.BlockEntityHandler {
|
public class FlowerPotHandler implements BlockEntityProvider.BlockEntityHandler {
|
||||||
private static final Map<Pair<String, Byte>, Integer> flowers = new ConcurrentHashMap<>();
|
private static final Map<Pair<String, Byte>, Integer> flowers = new HashMap<>();
|
||||||
private static final Map<Pair<Byte, Byte>, Integer> flowersNumberId = new ConcurrentHashMap<>();
|
private static final Map<Pair<Byte, Byte>, Integer> flowersNumberId = new HashMap<>();
|
||||||
|
|
||||||
static {
|
static {
|
||||||
register("minecraft:air", (byte) 0, (byte) 0, 5265);
|
register("minecraft:air", (byte) 0, (byte) 0, 5265);
|
||||||
|
@ -1,19 +1,19 @@
|
|||||||
package us.myles.ViaVersion.protocols.protocol1_13to1_12_2.storage;
|
package us.myles.ViaVersion.protocols.protocol1_13to1_12_2.storage;
|
||||||
|
|
||||||
import com.google.common.collect.Sets;
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import us.myles.ViaVersion.api.data.StoredObject;
|
import us.myles.ViaVersion.api.data.StoredObject;
|
||||||
import us.myles.ViaVersion.api.data.UserConnection;
|
import us.myles.ViaVersion.api.data.UserConnection;
|
||||||
import us.myles.ViaVersion.api.minecraft.Position;
|
import us.myles.ViaVersion.api.minecraft.Position;
|
||||||
|
|
||||||
|
import java.util.HashSet;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
|
|
||||||
public class BlockStorage extends StoredObject {
|
public class BlockStorage extends StoredObject {
|
||||||
// This BlockStorage is very exclusive (;
|
private static final Set<Integer> whitelist = new HashSet<>();
|
||||||
private static final Set<Integer> whitelist = Sets.newConcurrentHashSet();
|
private final Map<Position, ReplacementData> blocks = new ConcurrentHashMap<>();
|
||||||
|
|
||||||
static {
|
static {
|
||||||
// Flower pots
|
// Flower pots
|
||||||
@ -37,8 +37,6 @@ public class BlockStorage extends StoredObject {
|
|||||||
whitelist.add(5447 + i);
|
whitelist.add(5447 + i);
|
||||||
}
|
}
|
||||||
|
|
||||||
private Map<Position, ReplacementData> blocks = new ConcurrentHashMap<>();
|
|
||||||
|
|
||||||
public BlockStorage(UserConnection user) {
|
public BlockStorage(UserConnection user) {
|
||||||
super(user);
|
super(user);
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
package us.myles.ViaVersion.protocols.protocol1_14_1to1_14.packets;
|
package us.myles.ViaVersion.protocols.protocol1_14_1to1_14.packets;
|
||||||
|
|
||||||
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_14Types;
|
import us.myles.ViaVersion.api.entities.Entity1_14Types;
|
||||||
import us.myles.ViaVersion.api.protocol.Protocol;
|
import us.myles.ViaVersion.api.protocol.Protocol;
|
||||||
@ -12,90 +11,92 @@ import us.myles.ViaVersion.packets.State;
|
|||||||
import us.myles.ViaVersion.protocols.protocol1_14_1to1_14.metadata.MetadataRewriter1_14_1To1_14;
|
import us.myles.ViaVersion.protocols.protocol1_14_1to1_14.metadata.MetadataRewriter1_14_1To1_14;
|
||||||
import us.myles.ViaVersion.protocols.protocol1_14_1to1_14.storage.EntityTracker1_14_1;
|
import us.myles.ViaVersion.protocols.protocol1_14_1to1_14.storage.EntityTracker1_14_1;
|
||||||
|
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
public class EntityPackets {
|
public class EntityPackets {
|
||||||
|
|
||||||
public static void register(final Protocol protocol) {
|
public static void register(final Protocol protocol) {
|
||||||
|
|
||||||
// Spawn Mob
|
// Spawn Mob
|
||||||
protocol.registerOutgoing(State.PLAY, 0x03, 0x03, new PacketRemapper() {
|
protocol.registerOutgoing(State.PLAY, 0x03, 0x03, new PacketRemapper() {
|
||||||
@Override
|
@Override
|
||||||
public void registerMap() {
|
public void registerMap() {
|
||||||
map(Type.VAR_INT); // 0 - Entity ID
|
map(Type.VAR_INT); // 0 - Entity ID
|
||||||
map(Type.UUID); // 1 - Entity UUID
|
map(Type.UUID); // 1 - Entity UUID
|
||||||
map(Type.VAR_INT); // 2 - Entity Type
|
map(Type.VAR_INT); // 2 - Entity Type
|
||||||
map(Type.DOUBLE); // 3 - X
|
map(Type.DOUBLE); // 3 - X
|
||||||
map(Type.DOUBLE); // 4 - Y
|
map(Type.DOUBLE); // 4 - Y
|
||||||
map(Type.DOUBLE); // 5 - Z
|
map(Type.DOUBLE); // 5 - Z
|
||||||
map(Type.BYTE); // 6 - Yaw
|
map(Type.BYTE); // 6 - Yaw
|
||||||
map(Type.BYTE); // 7 - Pitch
|
map(Type.BYTE); // 7 - Pitch
|
||||||
map(Type.BYTE); // 8 - Head Pitch
|
map(Type.BYTE); // 8 - Head Pitch
|
||||||
map(Type.SHORT); // 9 - Velocity X
|
map(Type.SHORT); // 9 - Velocity X
|
||||||
map(Type.SHORT); // 10 - Velocity Y
|
map(Type.SHORT); // 10 - Velocity Y
|
||||||
map(Type.SHORT); // 11 - Velocity Z
|
map(Type.SHORT); // 11 - Velocity Z
|
||||||
map(Types1_14.METADATA_LIST); // 12 - Metadata
|
map(Types1_14.METADATA_LIST); // 12 - Metadata
|
||||||
|
|
||||||
handler(new PacketHandler() {
|
handler(new PacketHandler() {
|
||||||
@Override
|
@Override
|
||||||
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);
|
||||||
int type = wrapper.get(Type.VAR_INT, 1);
|
int type = wrapper.get(Type.VAR_INT, 1);
|
||||||
|
|
||||||
Entity1_14Types.EntityType entType = Entity1_14Types.getTypeFromId(type);
|
Entity1_14Types.EntityType entType = Entity1_14Types.getTypeFromId(type);
|
||||||
|
|
||||||
// Register Type ID
|
// Register Type ID
|
||||||
wrapper.user().get(EntityTracker1_14_1.class).addEntity(entityId, entType);
|
wrapper.user().get(EntityTracker1_14_1.class).addEntity(entityId, entType);
|
||||||
|
|
||||||
protocol.get(MetadataRewriter1_14_1To1_14.class).handleMetadata(entityId, entType, wrapper.get(Types1_14.METADATA_LIST, 0), wrapper.user());
|
protocol.get(MetadataRewriter1_14_1To1_14.class).handleMetadata(entityId, entType, wrapper.get(Types1_14.METADATA_LIST, 0), wrapper.user());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// Spawn Player
|
// Spawn Player
|
||||||
protocol.registerOutgoing(State.PLAY, 0x05, 0x05, new PacketRemapper() {
|
protocol.registerOutgoing(State.PLAY, 0x05, 0x05, new PacketRemapper() {
|
||||||
@Override
|
@Override
|
||||||
public void registerMap() {
|
public void registerMap() {
|
||||||
map(Type.VAR_INT); // 0 - Entity ID
|
map(Type.VAR_INT); // 0 - Entity ID
|
||||||
map(Type.UUID); // 1 - Player UUID
|
map(Type.UUID); // 1 - Player UUID
|
||||||
map(Type.DOUBLE); // 2 - X
|
map(Type.DOUBLE); // 2 - X
|
||||||
map(Type.DOUBLE); // 3 - Y
|
map(Type.DOUBLE); // 3 - Y
|
||||||
map(Type.DOUBLE); // 4 - Z
|
map(Type.DOUBLE); // 4 - Z
|
||||||
map(Type.BYTE); // 5 - Yaw
|
map(Type.BYTE); // 5 - Yaw
|
||||||
map(Type.BYTE); // 6 - Pitch
|
map(Type.BYTE); // 6 - Pitch
|
||||||
map(Types1_14.METADATA_LIST); // 7 - Metadata
|
map(Types1_14.METADATA_LIST); // 7 - Metadata
|
||||||
|
|
||||||
handler(new PacketHandler() {
|
handler(new PacketHandler() {
|
||||||
@Override
|
@Override
|
||||||
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);
|
||||||
|
|
||||||
Entity1_14Types.EntityType entType = Entity1_14Types.EntityType.PLAYER;
|
Entity1_14Types.EntityType entType = Entity1_14Types.EntityType.PLAYER;
|
||||||
|
|
||||||
// Register Type ID
|
// Register Type ID
|
||||||
wrapper.user().get(EntityTracker1_14_1.class).addEntity(entityId, entType);
|
wrapper.user().get(EntityTracker1_14_1.class).addEntity(entityId, entType);
|
||||||
protocol.get(MetadataRewriter1_14_1To1_14.class).handleMetadata(entityId, entType, wrapper.get(Types1_14.METADATA_LIST, 0), wrapper.user());
|
protocol.get(MetadataRewriter1_14_1To1_14.class).handleMetadata(entityId, entType, wrapper.get(Types1_14.METADATA_LIST, 0), wrapper.user());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// Entity Metadata
|
// Entity Metadata
|
||||||
protocol.registerOutgoing(State.PLAY, 0x43, 0x43, new PacketRemapper() {
|
protocol.registerOutgoing(State.PLAY, 0x43, 0x43, new PacketRemapper() {
|
||||||
@Override
|
@Override
|
||||||
public void registerMap() {
|
public void registerMap() {
|
||||||
map(Type.VAR_INT); // 0 - Entity ID
|
map(Type.VAR_INT); // 0 - Entity ID
|
||||||
map(Types1_14.METADATA_LIST); // 1 - Metadata list
|
map(Types1_14.METADATA_LIST); // 1 - Metadata list
|
||||||
|
|
||||||
handler(new PacketHandler() {
|
handler(new PacketHandler() {
|
||||||
@Override
|
@Override
|
||||||
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);
|
||||||
|
|
||||||
Optional<Entity1_14Types.EntityType> type = wrapper.user().get(EntityTracker1_14_1.class).getEntity(entityId);
|
Optional<Entity1_14Types.EntityType> type = wrapper.user().get(EntityTracker1_14_1.class).getEntity(entityId);
|
||||||
protocol.get(MetadataRewriter1_14_1To1_14.class).handleMetadata(entityId, type.orNull(), wrapper.get(Types1_14.METADATA_LIST, 0), wrapper.user());
|
protocol.get(MetadataRewriter1_14_1To1_14.class).handleMetadata(entityId, type.orElse(null), wrapper.get(Types1_14.METADATA_LIST, 0), wrapper.user());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,12 +1,11 @@
|
|||||||
package us.myles.ViaVersion.protocols.protocol1_14to1_13_2.data;
|
package us.myles.ViaVersion.protocols.protocol1_14to1_13_2.data;
|
||||||
|
|
||||||
import com.google.common.base.Optional;
|
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
public class EntityTypeRewriter {
|
public class EntityTypeRewriter {
|
||||||
private static Map<Integer, Integer> entityTypes = new HashMap<>();
|
private static final Map<Integer, Integer> entityTypes = new HashMap<>();
|
||||||
|
|
||||||
static {
|
static {
|
||||||
regEnt(6, 7); // cave_spider
|
regEnt(6, 7); // cave_spider
|
||||||
@ -105,6 +104,6 @@ public class EntityTypeRewriter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static Optional<Integer> getNewId(int type1_13) {
|
public static Optional<Integer> getNewId(int type1_13) {
|
||||||
return Optional.fromNullable(entityTypes.get(type1_13));
|
return Optional.ofNullable(entityTypes.get(type1_13));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
package us.myles.ViaVersion.protocols.protocol1_14to1_13_2.packets;
|
package us.myles.ViaVersion.protocols.protocol1_14to1_13_2.packets;
|
||||||
|
|
||||||
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_13Types;
|
||||||
import us.myles.ViaVersion.api.entities.Entity1_14Types;
|
import us.myles.ViaVersion.api.entities.Entity1_14Types;
|
||||||
@ -14,14 +13,14 @@ import us.myles.ViaVersion.api.type.Type;
|
|||||||
import us.myles.ViaVersion.api.type.types.version.Types1_13_2;
|
import us.myles.ViaVersion.api.type.types.version.Types1_13_2;
|
||||||
import us.myles.ViaVersion.api.type.types.version.Types1_14;
|
import us.myles.ViaVersion.api.type.types.version.Types1_14;
|
||||||
import us.myles.ViaVersion.packets.State;
|
import us.myles.ViaVersion.packets.State;
|
||||||
import us.myles.ViaVersion.protocols.protocol1_14to1_13_2.metadata.MetadataRewriter1_14To1_13_2;
|
|
||||||
import us.myles.ViaVersion.protocols.protocol1_14to1_13_2.Protocol1_14To1_13_2;
|
import us.myles.ViaVersion.protocols.protocol1_14to1_13_2.Protocol1_14To1_13_2;
|
||||||
import us.myles.ViaVersion.protocols.protocol1_14to1_13_2.data.EntityTypeRewriter;
|
import us.myles.ViaVersion.protocols.protocol1_14to1_13_2.data.EntityTypeRewriter;
|
||||||
|
import us.myles.ViaVersion.protocols.protocol1_14to1_13_2.metadata.MetadataRewriter1_14To1_13_2;
|
||||||
import us.myles.ViaVersion.protocols.protocol1_14to1_13_2.storage.EntityTracker1_14;
|
import us.myles.ViaVersion.protocols.protocol1_14to1_13_2.storage.EntityTracker1_14;
|
||||||
|
|
||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.UUID;
|
import java.util.Optional;
|
||||||
|
|
||||||
public class EntityPackets {
|
public class EntityPackets {
|
||||||
|
|
||||||
@ -52,7 +51,7 @@ public class EntityPackets {
|
|||||||
int typeId = wrapper.get(Type.VAR_INT, 1);
|
int typeId = wrapper.get(Type.VAR_INT, 1);
|
||||||
|
|
||||||
Entity1_13Types.EntityType type1_13 = Entity1_13Types.getTypeFromId(typeId, true);
|
Entity1_13Types.EntityType type1_13 = Entity1_13Types.getTypeFromId(typeId, true);
|
||||||
typeId = EntityTypeRewriter.getNewId(type1_13.getId()).or(type1_13.getId());
|
typeId = EntityTypeRewriter.getNewId(type1_13.getId()).orElse(type1_13.getId());
|
||||||
Entity1_14Types.EntityType type1_14 = Entity1_14Types.getTypeFromId(typeId);
|
Entity1_14Types.EntityType type1_14 = Entity1_14Types.getTypeFromId(typeId);
|
||||||
|
|
||||||
if (type1_14 != null) {
|
if (type1_14 != null) {
|
||||||
@ -129,7 +128,7 @@ public class EntityPackets {
|
|||||||
int entityId = wrapper.get(Type.VAR_INT, 0);
|
int entityId = wrapper.get(Type.VAR_INT, 0);
|
||||||
int type = wrapper.get(Type.VAR_INT, 1);
|
int type = wrapper.get(Type.VAR_INT, 1);
|
||||||
|
|
||||||
type = EntityTypeRewriter.getNewId(type).or(type);
|
type = EntityTypeRewriter.getNewId(type).orElse(type);
|
||||||
wrapper.set(Type.VAR_INT, 1, type);
|
wrapper.set(Type.VAR_INT, 1, type);
|
||||||
|
|
||||||
Entity1_14Types.EntityType entType = Entity1_14Types.getTypeFromId(type);
|
Entity1_14Types.EntityType entType = Entity1_14Types.getTypeFromId(type);
|
||||||
@ -262,7 +261,7 @@ public class EntityPackets {
|
|||||||
int entityId = wrapper.get(Type.VAR_INT, 0);
|
int entityId = wrapper.get(Type.VAR_INT, 0);
|
||||||
|
|
||||||
Optional<Entity1_14Types.EntityType> type = wrapper.user().get(EntityTracker1_14.class).getEntity(entityId);
|
Optional<Entity1_14Types.EntityType> type = wrapper.user().get(EntityTracker1_14.class).getEntity(entityId);
|
||||||
protocol.get(MetadataRewriter1_14To1_13_2.class).handleMetadata(entityId, type.orNull(), wrapper.get(Types1_14.METADATA_LIST, 0), wrapper.user());
|
protocol.get(MetadataRewriter1_14To1_13_2.class).handleMetadata(entityId, type.orElse(null), wrapper.get(Types1_14.METADATA_LIST, 0), wrapper.user());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
package us.myles.ViaVersion.protocols.protocol1_15to1_14_4.packets;
|
package us.myles.ViaVersion.protocols.protocol1_15to1_14_4.packets;
|
||||||
|
|
||||||
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_15Types;
|
import us.myles.ViaVersion.api.entities.Entity1_15Types;
|
||||||
import us.myles.ViaVersion.api.protocol.Protocol;
|
import us.myles.ViaVersion.api.protocol.Protocol;
|
||||||
@ -13,6 +12,7 @@ import us.myles.ViaVersion.protocols.protocol1_15to1_14_4.MetadataRewriter;
|
|||||||
import us.myles.ViaVersion.protocols.protocol1_15to1_14_4.Protocol1_15To1_14_4;
|
import us.myles.ViaVersion.protocols.protocol1_15to1_14_4.Protocol1_15To1_14_4;
|
||||||
import us.myles.ViaVersion.protocols.protocol1_15to1_14_4.storage.EntityTracker1_15;
|
import us.myles.ViaVersion.protocols.protocol1_15to1_14_4.storage.EntityTracker1_15;
|
||||||
|
|
||||||
|
import java.util.Optional;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
public class EntityPackets {
|
public class EntityPackets {
|
||||||
@ -123,7 +123,7 @@ 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);
|
||||||
Optional<Entity1_15Types.EntityType> type = wrapper.user().get(EntityTracker1_15.class).getEntity(entityId);
|
Optional<Entity1_15Types.EntityType> type = wrapper.user().get(EntityTracker1_15.class).getEntity(entityId);
|
||||||
MetadataRewriter.handleMetadata(entityId, type.orNull(), wrapper.get(Types1_14.METADATA_LIST, 0), wrapper.user());
|
MetadataRewriter.handleMetadata(entityId, type.orElse(null), wrapper.get(Types1_14.METADATA_LIST, 0), wrapper.user());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
package us.myles.ViaVersion.protocols.protocol1_9_1_2to1_9_3_4.chunks;
|
package us.myles.ViaVersion.protocols.protocol1_9_1_2to1_9_3_4.chunks;
|
||||||
|
|
||||||
import com.github.steveice10.opennbt.tag.builtin.CompoundTag;
|
import com.github.steveice10.opennbt.tag.builtin.CompoundTag;
|
||||||
import lombok.Getter;
|
|
||||||
import us.myles.ViaVersion.api.PacketWrapper;
|
import us.myles.ViaVersion.api.PacketWrapper;
|
||||||
import us.myles.ViaVersion.api.Via;
|
import us.myles.ViaVersion.api.Via;
|
||||||
import us.myles.ViaVersion.api.data.UserConnection;
|
import us.myles.ViaVersion.api.data.UserConnection;
|
||||||
@ -9,13 +8,12 @@ import us.myles.ViaVersion.api.minecraft.Position;
|
|||||||
import us.myles.ViaVersion.api.type.Type;
|
import us.myles.ViaVersion.api.type.Type;
|
||||||
import us.myles.ViaVersion.protocols.protocol1_9_1_2to1_9_3_4.Protocol1_9_1_2To1_9_3_4;
|
import us.myles.ViaVersion.protocols.protocol1_9_1_2to1_9_3_4.Protocol1_9_1_2To1_9_3_4;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
|
||||||
|
|
||||||
public class BlockEntity {
|
public class BlockEntity {
|
||||||
@Getter
|
private static final Map<String, Integer> types = new HashMap<>();
|
||||||
private static final Map<String, Integer> types = new ConcurrentHashMap<>();
|
|
||||||
|
|
||||||
static {
|
static {
|
||||||
types.put("MobSpawner", 1);
|
types.put("MobSpawner", 1);
|
||||||
|
@ -5,16 +5,16 @@ import com.github.steveice10.opennbt.tag.builtin.IntTag;
|
|||||||
import com.github.steveice10.opennbt.tag.builtin.StringTag;
|
import com.github.steveice10.opennbt.tag.builtin.StringTag;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Mojang changed the way how tile entities inside chunk packets work in 1.10.1
|
* Mojang changed the way how tile entities inside chunk packets work in 1.10.1
|
||||||
* It requires now to have all tile entity data included in the chunk packet, otherwise it'll crash.
|
* It requires now to have all tile entity data included in the chunk packet, otherwise it'll crash.
|
||||||
*/
|
*/
|
||||||
public class FakeTileEntity {
|
public class FakeTileEntity {
|
||||||
private static final Map<Integer, CompoundTag> tileEntities = new ConcurrentHashMap<>();
|
private static final Map<Integer, CompoundTag> tileEntities = new HashMap<>();
|
||||||
|
|
||||||
static {
|
static {
|
||||||
register(Arrays.asList(61, 62), "Furnace");
|
register(Arrays.asList(61, 62), "Furnace");
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
package us.myles.ViaVersion.protocols.protocol1_9to1_8.metadata;
|
package us.myles.ViaVersion.protocols.protocol1_9to1_8.metadata;
|
||||||
|
|
||||||
import com.google.common.base.Optional;
|
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import us.myles.ViaVersion.api.Pair;
|
import us.myles.ViaVersion.api.Pair;
|
||||||
import us.myles.ViaVersion.api.entities.Entity1_10Types;
|
import us.myles.ViaVersion.api.entities.Entity1_10Types;
|
||||||
@ -8,6 +7,7 @@ import us.myles.ViaVersion.api.minecraft.metadata.types.MetaType1_8;
|
|||||||
import us.myles.ViaVersion.api.minecraft.metadata.types.MetaType1_9;
|
import us.myles.ViaVersion.api.minecraft.metadata.types.MetaType1_9;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
import static us.myles.ViaVersion.api.entities.Entity1_10Types.EntityType.*;
|
import static us.myles.ViaVersion.api.entities.Entity1_10Types.EntityType.*;
|
||||||
|
|
||||||
@ -173,7 +173,7 @@ public enum MetaIndex {
|
|||||||
|
|
||||||
private static Optional<MetaIndex> getIndex(Entity1_10Types.EntityType type, int index) {
|
private static Optional<MetaIndex> getIndex(Entity1_10Types.EntityType type, int index) {
|
||||||
Pair pair = new Pair<>(type, index);
|
Pair pair = new Pair<>(type, index);
|
||||||
return Optional.fromNullable(metadataRewrites.get(pair));
|
return Optional.ofNullable(metadataRewrites.get(pair));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static MetaIndex searchIndex(Entity1_10Types.EntityType type, int index) {
|
public static MetaIndex searchIndex(Entity1_10Types.EntityType type, int index) {
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
package us.myles.ViaVersion.protocols.protocol1_9to1_8.packets;
|
package us.myles.ViaVersion.protocols.protocol1_9to1_8.packets;
|
||||||
|
|
||||||
import com.google.common.base.Optional;
|
|
||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
import us.myles.ViaVersion.api.PacketWrapper;
|
import us.myles.ViaVersion.api.PacketWrapper;
|
||||||
import us.myles.ViaVersion.api.Pair;
|
import us.myles.ViaVersion.api.Pair;
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
package us.myles.ViaVersion.protocols.protocol1_9to1_8.packets;
|
package us.myles.ViaVersion.protocols.protocol1_9to1_8.packets;
|
||||||
|
|
||||||
import com.google.common.base.Optional;
|
|
||||||
import us.myles.ViaVersion.api.PacketWrapper;
|
import us.myles.ViaVersion.api.PacketWrapper;
|
||||||
import us.myles.ViaVersion.api.Via;
|
import us.myles.ViaVersion.api.Via;
|
||||||
import us.myles.ViaVersion.api.entities.Entity1_10Types;
|
import us.myles.ViaVersion.api.entities.Entity1_10Types;
|
||||||
@ -23,6 +22,7 @@ import us.myles.ViaVersion.protocols.protocol1_9to1_8.storage.EntityTracker1_9;
|
|||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
public class SpawnPackets {
|
public class SpawnPackets {
|
||||||
public static final ValueTransformer<Integer, Double> toNewDouble = new ValueTransformer<Integer, Double>(Type.DOUBLE) {
|
public static final ValueTransformer<Integer, Double> toNewDouble = new ValueTransformer<Integer, Double>(Type.DOUBLE) {
|
||||||
|
@ -2,7 +2,6 @@ package us.myles.ViaVersion.protocols.protocol1_9to1_8.packets;
|
|||||||
|
|
||||||
import com.github.steveice10.opennbt.tag.builtin.CompoundTag;
|
import com.github.steveice10.opennbt.tag.builtin.CompoundTag;
|
||||||
import com.github.steveice10.opennbt.tag.builtin.StringTag;
|
import com.github.steveice10.opennbt.tag.builtin.StringTag;
|
||||||
import com.google.common.base.Optional;
|
|
||||||
import io.netty.buffer.ByteBuf;
|
import io.netty.buffer.ByteBuf;
|
||||||
import us.myles.ViaVersion.api.PacketWrapper;
|
import us.myles.ViaVersion.api.PacketWrapper;
|
||||||
import us.myles.ViaVersion.api.Via;
|
import us.myles.ViaVersion.api.Via;
|
||||||
@ -28,6 +27,7 @@ import us.myles.ViaVersion.protocols.protocol1_9to1_8.types.Chunk1_9to1_8Type;
|
|||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
public class WorldPackets {
|
public class WorldPackets {
|
||||||
public static void register(Protocol protocol) {
|
public static void register(Protocol protocol) {
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
package us.myles.ViaVersion.protocols.protocol1_9to1_8.providers;
|
package us.myles.ViaVersion.protocols.protocol1_9to1_8.providers;
|
||||||
|
|
||||||
import com.github.steveice10.opennbt.tag.builtin.CompoundTag;
|
import com.github.steveice10.opennbt.tag.builtin.CompoundTag;
|
||||||
import com.google.common.base.Optional;
|
|
||||||
import us.myles.ViaVersion.api.PacketWrapper;
|
import us.myles.ViaVersion.api.PacketWrapper;
|
||||||
import us.myles.ViaVersion.api.data.UserConnection;
|
import us.myles.ViaVersion.api.data.UserConnection;
|
||||||
import us.myles.ViaVersion.api.minecraft.Position;
|
import us.myles.ViaVersion.api.minecraft.Position;
|
||||||
@ -11,6 +10,8 @@ import us.myles.ViaVersion.protocols.protocol1_9to1_8.Protocol1_9To1_8;
|
|||||||
import us.myles.ViaVersion.protocols.protocol1_9to1_8.storage.CommandBlockStorage;
|
import us.myles.ViaVersion.protocols.protocol1_9to1_8.storage.CommandBlockStorage;
|
||||||
import us.myles.ViaVersion.protocols.protocol1_9to1_8.storage.EntityTracker1_9;
|
import us.myles.ViaVersion.protocols.protocol1_9to1_8.storage.EntityTracker1_9;
|
||||||
|
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
public class CommandBlockProvider implements Provider {
|
public class CommandBlockProvider implements Provider {
|
||||||
|
|
||||||
public void addOrUpdateBlock(UserConnection user, Position position, CompoundTag tag) throws Exception {
|
public void addOrUpdateBlock(UserConnection user, Position position, CompoundTag tag) throws Exception {
|
||||||
@ -23,7 +24,7 @@ public class CommandBlockProvider implements Provider {
|
|||||||
checkPermission(user);
|
checkPermission(user);
|
||||||
if (isEnabled())
|
if (isEnabled())
|
||||||
return getStorage(user).getCommandBlock(position);
|
return getStorage(user).getCommandBlock(position);
|
||||||
return Optional.absent();
|
return Optional.empty();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void unloadChunk(UserConnection user, int x, int z) throws Exception {
|
public void unloadChunk(UserConnection user, int x, int z) throws Exception {
|
||||||
|
@ -2,7 +2,6 @@ package us.myles.ViaVersion.protocols.protocol1_9to1_8.storage;
|
|||||||
|
|
||||||
import com.github.steveice10.opennbt.tag.builtin.ByteTag;
|
import com.github.steveice10.opennbt.tag.builtin.ByteTag;
|
||||||
import com.github.steveice10.opennbt.tag.builtin.CompoundTag;
|
import com.github.steveice10.opennbt.tag.builtin.CompoundTag;
|
||||||
import com.google.common.base.Optional;
|
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
import us.myles.ViaVersion.api.Pair;
|
import us.myles.ViaVersion.api.Pair;
|
||||||
@ -11,6 +10,7 @@ import us.myles.ViaVersion.api.data.UserConnection;
|
|||||||
import us.myles.ViaVersion.api.minecraft.Position;
|
import us.myles.ViaVersion.api.minecraft.Position;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.Optional;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
|
|
||||||
public class CommandBlockStorage extends StoredObject {
|
public class CommandBlockStorage extends StoredObject {
|
||||||
@ -55,11 +55,11 @@ public class CommandBlockStorage extends StoredObject {
|
|||||||
|
|
||||||
Map<Position, CompoundTag> blocks = storedCommandBlocks.get(chunkCoords);
|
Map<Position, CompoundTag> blocks = storedCommandBlocks.get(chunkCoords);
|
||||||
if (blocks == null)
|
if (blocks == null)
|
||||||
return Optional.absent();
|
return Optional.empty();
|
||||||
|
|
||||||
CompoundTag tag = blocks.get(position);
|
CompoundTag tag = blocks.get(position);
|
||||||
if (tag == null)
|
if (tag == null)
|
||||||
return Optional.absent();
|
return Optional.empty();
|
||||||
|
|
||||||
tag = tag.clone();
|
tag = tag.clone();
|
||||||
tag.put(new ByteTag("powered", (byte) 0));
|
tag.put(new ByteTag("powered", (byte) 0));
|
||||||
|
@ -11,7 +11,6 @@ import us.myles.ViaVersion.api.boss.BossBar;
|
|||||||
import us.myles.ViaVersion.api.boss.BossColor;
|
import us.myles.ViaVersion.api.boss.BossColor;
|
||||||
import us.myles.ViaVersion.api.boss.BossStyle;
|
import us.myles.ViaVersion.api.boss.BossStyle;
|
||||||
import us.myles.ViaVersion.api.data.UserConnection;
|
import us.myles.ViaVersion.api.data.UserConnection;
|
||||||
import us.myles.ViaVersion.api.entities.Entity1_10Types;
|
|
||||||
import us.myles.ViaVersion.api.entities.Entity1_10Types.EntityType;
|
import us.myles.ViaVersion.api.entities.Entity1_10Types.EntityType;
|
||||||
import us.myles.ViaVersion.api.minecraft.Position;
|
import us.myles.ViaVersion.api.minecraft.Position;
|
||||||
import us.myles.ViaVersion.api.minecraft.item.Item;
|
import us.myles.ViaVersion.api.minecraft.item.Item;
|
||||||
@ -32,7 +31,7 @@ import java.util.concurrent.ConcurrentHashMap;
|
|||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
public class EntityTracker1_9 extends EntityTracker<Entity1_10Types.EntityType> {
|
public class EntityTracker1_9 extends EntityTracker<EntityType> {
|
||||||
private final Map<Integer, UUID> uuidMap = new ConcurrentHashMap<>();
|
private final Map<Integer, UUID> uuidMap = new ConcurrentHashMap<>();
|
||||||
private final Map<Integer, List<Metadata>> metadataBuffer = new ConcurrentHashMap<>();
|
private final Map<Integer, List<Metadata>> metadataBuffer = new ConcurrentHashMap<>();
|
||||||
private final Map<Integer, Integer> vehicleMap = new ConcurrentHashMap<>();
|
private final Map<Integer, Integer> vehicleMap = new ConcurrentHashMap<>();
|
||||||
@ -117,7 +116,7 @@ public class EntityTracker1_9 extends EntityTracker<Entity1_10Types.EntityType>
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void handleMetadata(int entityId, List<Metadata> metadataList) {
|
public void handleMetadata(int entityId, List<Metadata> metadataList) {
|
||||||
EntityType type = getEntity(entityId).orNull();
|
EntityType type = getEntity(entityId).orElse(null);
|
||||||
if (type == null) {
|
if (type == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -293,7 +292,7 @@ public class EntityTracker1_9 extends EntityTracker<Entity1_10Types.EntityType>
|
|||||||
wrapper.write(Type.VAR_INT, entityId);
|
wrapper.write(Type.VAR_INT, entityId);
|
||||||
wrapper.write(Types1_9.METADATA_LIST, metadataList);
|
wrapper.write(Types1_9.METADATA_LIST, metadataList);
|
||||||
getUser().get(ProtocolInfo.class).getPipeline().getProtocol(Protocol1_9To1_8.class).get(MetadataRewriter1_9To1_8.class)
|
getUser().get(ProtocolInfo.class).getPipeline().getProtocol(Protocol1_9To1_8.class).get(MetadataRewriter1_9To1_8.class)
|
||||||
.handleMetadata(entityId, getEntity(entityId).orNull(), metadataList, getUser());
|
.handleMetadata(entityId, getEntity(entityId).orElse(null), metadataList, getUser());
|
||||||
handleMetadata(entityId, metadataList);
|
handleMetadata(entityId, metadataList);
|
||||||
if (!metadataList.isEmpty()) {
|
if (!metadataList.isEmpty()) {
|
||||||
try {
|
try {
|
||||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren