3
0
Mirror von https://github.com/ViaVersion/ViaBackwards.git synchronisiert 2024-10-03 08:51:05 +02:00
Dieser Commit ist enthalten in:
KennyTV 2021-03-13 18:39:15 +01:00
Ursprung f498d59303
Commit 35ced30047
Es konnte kein GPG-Schlüssel zu dieser Signatur gefunden werden
GPG-Schlüssel-ID: 6BE3B555EBC5982B
13 geänderte Dateien mit 30 neuen und 87 gelöschten Zeilen

Datei anzeigen

@ -1,7 +1,9 @@
package nl.matsv.viabackwards.api; package nl.matsv.viabackwards.api;
import nl.matsv.viabackwards.api.data.BackwardsMappings; import nl.matsv.viabackwards.api.data.BackwardsMappings;
import nl.matsv.viabackwards.api.entities.storage.EntityTracker;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import us.myles.ViaVersion.api.data.UserConnection;
import us.myles.ViaVersion.api.protocol.ClientboundPacketType; import us.myles.ViaVersion.api.protocol.ClientboundPacketType;
import us.myles.ViaVersion.api.protocol.Protocol; import us.myles.ViaVersion.api.protocol.Protocol;
import us.myles.ViaVersion.api.protocol.ProtocolRegistry; import us.myles.ViaVersion.api.protocol.ProtocolRegistry;
@ -25,6 +27,15 @@ public abstract class BackwardsProtocol<C1 extends ClientboundPacketType, C2 ext
ProtocolRegistry.addMappingLoaderFuture(getClass(), protocolClass, runnable); ProtocolRegistry.addMappingLoaderFuture(getClass(), protocolClass, runnable);
} }
protected void initEntityTracker(UserConnection user) {
EntityTracker entityTracker = user.get(EntityTracker.class);
if (entityTracker == null) {
user.put(entityTracker = new EntityTracker(user));
}
entityTracker.initProtocol(this);
}
@Override @Override
public boolean hasMappingDataToLoad() { public boolean hasMappingDataToLoad() {
// Manually load them later, since they depend on VV's mappings // Manually load them later, since they depend on VV's mappings

Datei anzeigen

@ -16,11 +16,12 @@ 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.HashMap;
import java.util.Map; import java.util.Map;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
public class EntityTracker extends StoredObject { public class EntityTracker extends StoredObject {
private final Map<BackwardsProtocol, ProtocolEntityTracker> trackers = new ConcurrentHashMap<>(); private final Map<BackwardsProtocol, ProtocolEntityTracker> trackers = new HashMap<>();
private int currentWorldSectionHeight = 16; private int currentWorldSectionHeight = 16;
private int currentMinY; private int currentMinY;
@ -89,7 +90,7 @@ public class EntityTracker extends StoredObject {
public static final class StoredEntity { public static final class StoredEntity {
private final int entityId; private final int entityId;
private final EntityType type; private final EntityType type;
private final Map<Class<? extends EntityStorage>, EntityStorage> storedObjects = new ConcurrentHashMap<>(); private Map<Class<? extends EntityStorage>, EntityStorage> storedObjects;
private StoredEntity(final int entityId, final EntityType type) { private StoredEntity(final int entityId, final EntityType type) {
this.entityId = entityId; this.entityId = entityId;
@ -105,7 +106,7 @@ public class EntityTracker extends StoredObject {
*/ */
@Nullable @Nullable
public <T extends EntityStorage> T get(Class<T> objectClass) { public <T extends EntityStorage> T get(Class<T> objectClass) {
return (T) storedObjects.get(objectClass); return storedObjects != null ? (T) storedObjects.get(objectClass) : null;
} }
/** /**
@ -115,7 +116,7 @@ public class EntityTracker extends StoredObject {
* @return True if the object is in the storage * @return True if the object is in the storage
*/ */
public boolean has(Class<? extends EntityStorage> objectClass) { public boolean has(Class<? extends EntityStorage> objectClass) {
return storedObjects.containsKey(objectClass); return storedObjects != null && storedObjects.containsKey(objectClass);
} }
/** /**
@ -124,6 +125,9 @@ public class EntityTracker extends StoredObject {
* @param object The object to store. * @param object The object to store.
*/ */
public void put(EntityStorage object) { public void put(EntityStorage object) {
if (storedObjects == null) {
storedObjects = new ConcurrentHashMap<>();
}
storedObjects.put(object.getClass(), object); storedObjects.put(object.getClass(), object);
} }

Datei anzeigen

@ -48,18 +48,6 @@ public class MetaStorage {
return null; return null;
} }
public Metadata getOrDefault(int index, Metadata data) {
return getOrDefault(index, false, data);
}
public Metadata getOrDefault(int index, boolean removeIfExists, Metadata data) {
Metadata existingData = get(index);
if (removeIfExists && existingData != null) {
delete(existingData);
}
return existingData != null ? existingData : data;
}
public List<Metadata> getMetaDataList() { public List<Metadata> getMetaDataList() {
return metaDataList; return metaDataList;
} }

Datei anzeigen

@ -12,7 +12,6 @@ package nl.matsv.viabackwards.protocol.protocol1_10to1_11;
import nl.matsv.viabackwards.api.BackwardsProtocol; import nl.matsv.viabackwards.api.BackwardsProtocol;
import nl.matsv.viabackwards.api.data.BackwardsMappings; import nl.matsv.viabackwards.api.data.BackwardsMappings;
import nl.matsv.viabackwards.api.entities.storage.EntityTracker;
import nl.matsv.viabackwards.api.rewriters.SoundRewriter; import nl.matsv.viabackwards.api.rewriters.SoundRewriter;
import nl.matsv.viabackwards.protocol.protocol1_10to1_11.packets.BlockItemPackets1_11; import nl.matsv.viabackwards.protocol.protocol1_10to1_11.packets.BlockItemPackets1_11;
import nl.matsv.viabackwards.protocol.protocol1_10to1_11.packets.EntityPackets1_11; import nl.matsv.viabackwards.protocol.protocol1_10to1_11.packets.EntityPackets1_11;
@ -51,17 +50,11 @@ public class Protocol1_10To1_11 extends BackwardsProtocol<ClientboundPackets1_9_
user.put(new ClientWorld(user)); user.put(new ClientWorld(user));
} }
// Register EntityTracker if it doesn't exist yet. initEntityTracker(user);
if (!user.has(EntityTracker.class)) {
user.put(new EntityTracker(user));
}
if (!user.has(WindowTracker.class)) { if (!user.has(WindowTracker.class)) {
user.put(new WindowTracker(user)); user.put(new WindowTracker(user));
} }
// Init protocol in EntityTracker
user.get(EntityTracker.class).initProtocol(this);
} }
public EntityPackets1_11 getEntityPackets() { public EntityPackets1_11 getEntityPackets() {

Datei anzeigen

@ -11,7 +11,6 @@
package nl.matsv.viabackwards.protocol.protocol1_11_1to1_12; package nl.matsv.viabackwards.protocol.protocol1_11_1to1_12;
import nl.matsv.viabackwards.api.BackwardsProtocol; import nl.matsv.viabackwards.api.BackwardsProtocol;
import nl.matsv.viabackwards.api.entities.storage.EntityTracker;
import nl.matsv.viabackwards.protocol.protocol1_11_1to1_12.data.ShoulderTracker; import nl.matsv.viabackwards.protocol.protocol1_11_1to1_12.data.ShoulderTracker;
import nl.matsv.viabackwards.protocol.protocol1_11_1to1_12.packets.BlockItemPackets1_12; import nl.matsv.viabackwards.protocol.protocol1_11_1to1_12.packets.BlockItemPackets1_12;
import nl.matsv.viabackwards.protocol.protocol1_11_1to1_12.packets.ChatPackets1_12; import nl.matsv.viabackwards.protocol.protocol1_11_1to1_12.packets.ChatPackets1_12;
@ -69,15 +68,9 @@ public class Protocol1_11_1To1_12 extends BackwardsProtocol<ClientboundPackets1_
user.put(new ClientWorld(user)); user.put(new ClientWorld(user));
} }
// Register EntityTracker if it doesn't exist yet. initEntityTracker(user);
if (!user.has(EntityTracker.class)) {
user.put(new EntityTracker(user));
}
user.put(new ShoulderTracker(user)); user.put(new ShoulderTracker(user));
// Init protocol in EntityTracker
user.get(EntityTracker.class).initProtocol(this);
} }
public EntityPackets1_12 getEntityPackets() { public EntityPackets1_12 getEntityPackets() {

Datei anzeigen

@ -11,7 +11,6 @@
package nl.matsv.viabackwards.protocol.protocol1_11to1_11_1; package nl.matsv.viabackwards.protocol.protocol1_11to1_11_1;
import nl.matsv.viabackwards.api.BackwardsProtocol; import nl.matsv.viabackwards.api.BackwardsProtocol;
import nl.matsv.viabackwards.api.entities.storage.EntityTracker;
import nl.matsv.viabackwards.protocol.protocol1_11to1_11_1.packets.EntityPackets1_11_1; import nl.matsv.viabackwards.protocol.protocol1_11to1_11_1.packets.EntityPackets1_11_1;
import nl.matsv.viabackwards.protocol.protocol1_11to1_11_1.packets.ItemPackets1_11_1; import nl.matsv.viabackwards.protocol.protocol1_11to1_11_1.packets.ItemPackets1_11_1;
import us.myles.ViaVersion.api.data.UserConnection; import us.myles.ViaVersion.api.data.UserConnection;
@ -40,13 +39,7 @@ public class Protocol1_11To1_11_1 extends BackwardsProtocol<ClientboundPackets1_
user.put(new ClientWorld(user)); user.put(new ClientWorld(user));
} }
// Register EntityTracker if it doesn't exist yet. initEntityTracker(user);
if (!user.has(EntityTracker.class)) {
user.put(new EntityTracker(user));
}
// Init protocol in EntityTracker
user.get(EntityTracker.class).initProtocol(this);
} }
public EntityPackets1_11_1 getEntityPackets() { public EntityPackets1_11_1 getEntityPackets() {

Datei anzeigen

@ -12,7 +12,6 @@ package nl.matsv.viabackwards.protocol.protocol1_12_2to1_13;
import nl.matsv.viabackwards.ViaBackwards; import nl.matsv.viabackwards.ViaBackwards;
import nl.matsv.viabackwards.api.BackwardsProtocol; import nl.matsv.viabackwards.api.BackwardsProtocol;
import nl.matsv.viabackwards.api.entities.storage.EntityTracker;
import nl.matsv.viabackwards.api.rewriters.TranslatableRewriter; import nl.matsv.viabackwards.api.rewriters.TranslatableRewriter;
import nl.matsv.viabackwards.protocol.protocol1_12_2to1_13.data.BackwardsMappings; import nl.matsv.viabackwards.protocol.protocol1_12_2to1_13.data.BackwardsMappings;
import nl.matsv.viabackwards.protocol.protocol1_12_2to1_13.data.PaintingMapping; import nl.matsv.viabackwards.protocol.protocol1_12_2to1_13.data.PaintingMapping;
@ -93,13 +92,7 @@ public class Protocol1_12_2To1_13 extends BackwardsProtocol<ClientboundPackets1_
user.put(new ClientWorld(user)); user.put(new ClientWorld(user));
} }
// Register EntityTracker if it doesn't exist yet. initEntityTracker(user);
if (!user.has(EntityTracker.class)) {
user.put(new EntityTracker(user));
}
// Init protocol in EntityTracker
user.get(EntityTracker.class).initProtocol(this);
// Register Block Storage // Register Block Storage
if (!user.has(BackwardsBlockStorage.class)) { if (!user.has(BackwardsBlockStorage.class)) {

Datei anzeigen

@ -2,7 +2,6 @@ package nl.matsv.viabackwards.protocol.protocol1_13_2to1_14;
import nl.matsv.viabackwards.api.BackwardsProtocol; import nl.matsv.viabackwards.api.BackwardsProtocol;
import nl.matsv.viabackwards.api.data.BackwardsMappings; import nl.matsv.viabackwards.api.data.BackwardsMappings;
import nl.matsv.viabackwards.api.entities.storage.EntityTracker;
import nl.matsv.viabackwards.api.rewriters.TranslatableRewriter; import nl.matsv.viabackwards.api.rewriters.TranslatableRewriter;
import nl.matsv.viabackwards.protocol.protocol1_13_2to1_14.data.CommandRewriter1_14; import nl.matsv.viabackwards.protocol.protocol1_13_2to1_14.data.CommandRewriter1_14;
import nl.matsv.viabackwards.protocol.protocol1_13_2to1_14.packets.BlockItemPackets1_14; import nl.matsv.viabackwards.protocol.protocol1_13_2to1_14.packets.BlockItemPackets1_14;
@ -171,13 +170,7 @@ public class Protocol1_13_2To1_14 extends BackwardsProtocol<ClientboundPackets1_
user.put(new ClientWorld(user)); user.put(new ClientWorld(user));
} }
// Register EntityTracker if it doesn't exist yet. initEntityTracker(user);
if (!user.has(EntityTracker.class)) {
user.put(new EntityTracker(user));
}
// Init protocol in EntityTracker
user.get(EntityTracker.class).initProtocol(this);
if (!user.has(ChunkLightStorage.class)) { if (!user.has(ChunkLightStorage.class)) {
user.put(new ChunkLightStorage(user)); user.put(new ChunkLightStorage(user));

Datei anzeigen

@ -1,12 +1,10 @@
package nl.matsv.viabackwards.protocol.protocol1_14to1_14_1; package nl.matsv.viabackwards.protocol.protocol1_14to1_14_1;
import nl.matsv.viabackwards.api.BackwardsProtocol; import nl.matsv.viabackwards.api.BackwardsProtocol;
import nl.matsv.viabackwards.api.entities.storage.EntityTracker;
import nl.matsv.viabackwards.protocol.protocol1_14to1_14_1.packets.EntityPackets1_14_1; import nl.matsv.viabackwards.protocol.protocol1_14to1_14_1.packets.EntityPackets1_14_1;
import us.myles.ViaVersion.api.data.UserConnection; import us.myles.ViaVersion.api.data.UserConnection;
import us.myles.ViaVersion.protocols.protocol1_14to1_13_2.ClientboundPackets1_14; import us.myles.ViaVersion.protocols.protocol1_14to1_13_2.ClientboundPackets1_14;
import us.myles.ViaVersion.protocols.protocol1_14to1_13_2.ServerboundPackets1_14; import us.myles.ViaVersion.protocols.protocol1_14to1_13_2.ServerboundPackets1_14;
import us.myles.ViaVersion.protocols.protocol1_15to1_14_4.ClientboundPackets1_15;
public class Protocol1_14To1_14_1 extends BackwardsProtocol<ClientboundPackets1_14, ClientboundPackets1_14, ServerboundPackets1_14, ServerboundPackets1_14> { public class Protocol1_14To1_14_1 extends BackwardsProtocol<ClientboundPackets1_14, ClientboundPackets1_14, ServerboundPackets1_14, ServerboundPackets1_14> {
@ -21,12 +19,6 @@ public class Protocol1_14To1_14_1 extends BackwardsProtocol<ClientboundPackets1_
@Override @Override
public void init(UserConnection user) { public void init(UserConnection user) {
// Register EntityTracker if it doesn't exist yet. initEntityTracker(user);
if (!user.has(EntityTracker.class)) {
user.put(new EntityTracker(user));
}
// Init protocol in EntityTracker
user.get(EntityTracker.class).initProtocol(this);
} }
} }

Datei anzeigen

@ -1,7 +1,6 @@
package nl.matsv.viabackwards.protocol.protocol1_15_2to1_16; package nl.matsv.viabackwards.protocol.protocol1_15_2to1_16;
import nl.matsv.viabackwards.api.BackwardsProtocol; import nl.matsv.viabackwards.api.BackwardsProtocol;
import nl.matsv.viabackwards.api.entities.storage.EntityTracker;
import nl.matsv.viabackwards.api.rewriters.SoundRewriter; import nl.matsv.viabackwards.api.rewriters.SoundRewriter;
import nl.matsv.viabackwards.api.rewriters.TranslatableRewriter; import nl.matsv.viabackwards.api.rewriters.TranslatableRewriter;
import nl.matsv.viabackwards.protocol.protocol1_15_2to1_16.chat.TranslatableRewriter1_16; import nl.matsv.viabackwards.protocol.protocol1_15_2to1_16.chat.TranslatableRewriter1_16;
@ -181,12 +180,10 @@ public class Protocol1_15_2To1_16 extends BackwardsProtocol<ClientboundPackets1_
if (!user.has(ClientWorld.class)) { if (!user.has(ClientWorld.class)) {
user.put(new ClientWorld(user)); user.put(new ClientWorld(user));
} }
if (!user.has(EntityTracker.class)) {
user.put(new EntityTracker(user));
}
user.put(new PlayerSneakStorage(user)); user.put(new PlayerSneakStorage(user));
user.put(new WorldNameTracker(user)); user.put(new WorldNameTracker(user));
user.get(EntityTracker.class).initProtocol(this); initEntityTracker(user);
} }
public BlockItemPackets1_16 getBlockItemPackets() { public BlockItemPackets1_16 getBlockItemPackets() {

Datei anzeigen

@ -2,7 +2,6 @@ package nl.matsv.viabackwards.protocol.protocol1_16_1to1_16_2;
import nl.matsv.viabackwards.api.BackwardsProtocol; import nl.matsv.viabackwards.api.BackwardsProtocol;
import nl.matsv.viabackwards.api.data.BackwardsMappings; import nl.matsv.viabackwards.api.data.BackwardsMappings;
import nl.matsv.viabackwards.api.entities.storage.EntityTracker;
import nl.matsv.viabackwards.api.rewriters.SoundRewriter; import nl.matsv.viabackwards.api.rewriters.SoundRewriter;
import nl.matsv.viabackwards.api.rewriters.TranslatableRewriter; import nl.matsv.viabackwards.api.rewriters.TranslatableRewriter;
import nl.matsv.viabackwards.protocol.protocol1_16_1to1_16_2.data.CommandRewriter1_16_2; import nl.matsv.viabackwards.protocol.protocol1_16_1to1_16_2.data.CommandRewriter1_16_2;
@ -118,10 +117,7 @@ public class Protocol1_16_1To1_16_2 extends BackwardsProtocol<ClientboundPackets
@Override @Override
public void init(UserConnection user) { public void init(UserConnection user) {
if (!user.has(EntityTracker.class)) { initEntityTracker(user);
user.put(new EntityTracker(user));
}
user.get(EntityTracker.class).initProtocol(this);
} }
public BlockItemPackets1_16_2 getBlockItemPackets() { public BlockItemPackets1_16_2 getBlockItemPackets() {

Datei anzeigen

@ -200,10 +200,7 @@ public class Protocol1_16_4To1_17 extends BackwardsProtocol<ClientboundPackets1_
@Override @Override
public void init(UserConnection user) { public void init(UserConnection user) {
if (!user.has(EntityTracker.class)) { initEntityTracker(user);
user.put(new EntityTracker(user));
}
user.get(EntityTracker.class).initProtocol(this);
} }
public BlockItemPackets1_17 getBlockItemPackets() { public BlockItemPackets1_17 getBlockItemPackets() {

Datei anzeigen

@ -12,7 +12,6 @@ package nl.matsv.viabackwards.protocol.protocol1_9_4to1_10;
import nl.matsv.viabackwards.api.BackwardsProtocol; import nl.matsv.viabackwards.api.BackwardsProtocol;
import nl.matsv.viabackwards.api.data.BackwardsMappings; import nl.matsv.viabackwards.api.data.BackwardsMappings;
import nl.matsv.viabackwards.api.entities.storage.EntityTracker;
import nl.matsv.viabackwards.api.rewriters.SoundRewriter; import nl.matsv.viabackwards.api.rewriters.SoundRewriter;
import nl.matsv.viabackwards.protocol.protocol1_9_4to1_10.packets.BlockItemPackets1_10; import nl.matsv.viabackwards.protocol.protocol1_9_4to1_10.packets.BlockItemPackets1_10;
import nl.matsv.viabackwards.protocol.protocol1_9_4to1_10.packets.EntityPackets1_10; import nl.matsv.viabackwards.protocol.protocol1_9_4to1_10.packets.EntityPackets1_10;
@ -87,13 +86,7 @@ public class Protocol1_9_4To1_10 extends BackwardsProtocol<ClientboundPackets1_9
user.put(new ClientWorld(user)); user.put(new ClientWorld(user));
} }
// Register EntityTracker if it doesn't exist yet. initEntityTracker(user);
if (!user.has(EntityTracker.class)) {
user.put(new EntityTracker(user));
}
// Init protocol in EntityTracker
user.get(EntityTracker.class).initProtocol(this);
} }
public EntityPackets1_10 getEntityPackets() { public EntityPackets1_10 getEntityPackets() {