Skip to content

Commit 8a9bf70

Browse files
Add option to disable display entity emulation in 1.19.4->.3 (#1022)
1 parent 5070e51 commit 8a9bf70

File tree

4 files changed

+26
-0
lines changed

4 files changed

+26
-0
lines changed

common/src/main/java/com/viaversion/viabackwards/ViaBackwardsConfig.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ public class ViaBackwardsConfig extends Config implements com.viaversion.viaback
3939
private boolean scaffoldingToWater;
4040
private boolean mapDarknessEffect;
4141
private boolean mapCustomModelData;
42+
private boolean mapDisplayEntities;
4243
private boolean suppressEmulationWarnings;
4344

4445
public ViaBackwardsConfig(File configFile, Logger logger) {
@@ -63,6 +64,7 @@ private void loadFields() {
6364
scaffoldingToWater = getBoolean("scaffolding-to-water", false);
6465
mapDarknessEffect = getBoolean("map-darkness-effect", true);
6566
mapCustomModelData = getBoolean("map-custom-model-data", true);
67+
mapDisplayEntities = getBoolean("map-display-entities", true);
6668
suppressEmulationWarnings = getBoolean("suppress-emulation-warnings", false);
6769
}
6870

@@ -121,6 +123,11 @@ public boolean mapCustomModelData() {
121123
return mapCustomModelData;
122124
}
123125

126+
@Override
127+
public boolean mapDisplayEntities() {
128+
return mapDisplayEntities;
129+
}
130+
124131
@Override
125132
public boolean suppressEmulationWarnings() {
126133
return suppressEmulationWarnings;

common/src/main/java/com/viaversion/viabackwards/api/ViaBackwardsConfig.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,13 @@ public interface ViaBackwardsConfig extends Config {
9999
*/
100100
boolean mapCustomModelData();
101101

102+
/**
103+
* If enabled, 1.19.3 clients will receive display entities as armor stands with custom entity data on 1.19.4+ servers.
104+
*
105+
* @return true if enabled
106+
*/
107+
boolean mapDisplayEntities();
108+
102109
/**
103110
* Suppresses warnings of missing emulations for certain features that are not supported (e.g. world height in 1.17+).
104111
*

common/src/main/java/com/viaversion/viabackwards/protocol/v1_19_4to1_19_3/rewriter/EntityPacketRewriter1_19_4.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import com.viaversion.nbt.tag.CompoundTag;
2121
import com.viaversion.nbt.tag.ListTag;
2222
import com.viaversion.nbt.tag.NumberTag;
23+
import com.viaversion.viabackwards.ViaBackwards;
2324
import com.viaversion.viabackwards.api.entities.storage.EntityPositionHandler;
2425
import com.viaversion.viabackwards.api.entities.storage.EntityReplacement;
2526
import com.viaversion.viabackwards.api.rewriters.EntityRewriter;
@@ -70,6 +71,13 @@ public void register() {
7071
final int entityId = wrapper.get(Types.VAR_INT, 0);
7172
final int entityType = wrapper.get(Types.VAR_INT, 1);
7273

74+
if (!ViaBackwards.getConfig().mapDisplayEntities()) {
75+
if (entityType == EntityTypes1_19_4.BLOCK_DISPLAY.getId() || entityType == EntityTypes1_19_4.ITEM_DISPLAY.getId() || entityType == EntityTypes1_19_4.TEXT_DISPLAY.getId()) {
76+
wrapper.cancel();
77+
return;
78+
}
79+
}
80+
7381
// First track (and remap) entity, then put storage for block display entity
7482
getSpawnTrackerWithDataHandler1_19(EntityTypes1_19_4.FALLING_BLOCK).handle(wrapper);
7583
if (entityType != EntityTypes1_19_4.BLOCK_DISPLAY.getId()) {

common/src/main/resources/assets/viabackwards/config.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,5 +38,9 @@ map-darkness-effect: true
3838
# If enabled, 1.21.3 clients will receive the first float of 1.21.4+ custom model data as int. Disable if you handle this change yourself.
3939
map-custom-model-data: true
4040
#
41+
# If enabled, 1.19.3 clients will receive display entities as armor stands with custom entity data on 1.19.4+ servers. Note that
42+
# this does not support all features display entities offer.
43+
map-display-entities: true
44+
#
4145
# Suppresses warnings of missing emulations for certain features that are not supported (e.g. world height in 1.17+).
4246
suppress-emulation-warnings: false

0 commit comments

Comments
 (0)