Skip to content

Commit 324777d

Browse files
committed
Merge remote-tracking branch 'origin/master'
2 parents a1935c2 + 77d6830 commit 324777d

File tree

66 files changed

+645
-245
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

66 files changed

+645
-245
lines changed

api/src/main/java/com/viaversion/viaversion/api/configuration/ViaVersionConfig.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -285,6 +285,13 @@ public interface ViaVersionConfig extends Config {
285285
*/
286286
boolean isSuppressConversionWarnings();
287287

288+
/**
289+
* Should we hide errors that occur when trying to convert text components?
290+
*
291+
* @return true if enabled
292+
*/
293+
boolean isSuppressTextComponentConversionWarnings();
294+
288295
/**
289296
* Should we disable the 1.13 auto-complete feature to stop spam kicks? (for any server lower than 1.13)
290297
*

api/src/main/java/com/viaversion/viaversion/api/minecraft/BlockChangeRecord1_16_2.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ public byte getSectionZ() {
5858

5959
@Override
6060
public short getY(int chunkSectionY) {
61-
Preconditions.checkArgument(chunkSectionY >= 0, "Invalid chunkSectionY: " + chunkSectionY);
61+
Preconditions.checkArgument(chunkSectionY >= 0, "Invalid chunkSectionY: %s", chunkSectionY);
6262
return (short) ((chunkSectionY << 4) + sectionY);
6363
}
6464

api/src/main/java/com/viaversion/viaversion/api/minecraft/Holder.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
package com.viaversion.viaversion.api.minecraft;
2424

2525
import it.unimi.dsi.fastutil.ints.Int2IntFunction;
26+
import java.util.function.Function;
2627

2728
public interface Holder<T> {
2829

@@ -89,4 +90,12 @@ static <T> Holder<T> of(final T value) {
8990
* @return a new holder with the id rewritten, or self
9091
*/
9192
Holder<T> updateId(final Int2IntFunction rewriteFunction);
93+
94+
/**
95+
* Returns a new holder with the value rewritten using the given function, or self if this is an id holder or the value did not change.
96+
*
97+
* @param rewriteFunction the function to rewrite the value
98+
* @return a new holder with the value rewritten, or self
99+
*/
100+
Holder<T> updateValue(final Function<T, T> rewriteFunction);
92101
}

api/src/main/java/com/viaversion/viaversion/api/minecraft/IdHolder.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424

2525
import com.google.common.base.Preconditions;
2626
import it.unimi.dsi.fastutil.ints.Int2IntFunction;
27+
import java.util.function.Function;
2728

2829
record IdHolder<T>(int id) implements Holder<T> {
2930

@@ -57,4 +58,9 @@ public Holder<T> updateId(final Int2IntFunction rewriteFunction) {
5758
}
5859
return Holder.of(rewrittenId);
5960
}
61+
62+
@Override
63+
public Holder<T> updateValue(final Function<T, T> rewriteFunction) {
64+
return this;
65+
}
6066
}

api/src/main/java/com/viaversion/viaversion/api/minecraft/Particle.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ public void write(final PacketWrapper wrapper) {
121121

122122
@Override
123123
public ParticleData<T> copy() {
124-
return new ParticleData<>(type, copy(value));
124+
return new ParticleData<>(type, Copyable.copy(value));
125125
}
126126

127127
@Override

api/src/main/java/com/viaversion/viaversion/api/minecraft/ValueHolder.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
package com.viaversion.viaversion.api.minecraft;
2424

2525
import it.unimi.dsi.fastutil.ints.Int2IntFunction;
26+
import java.util.function.Function;
2627

2728
record ValueHolder<T>(T value) implements Holder<T> {
2829

@@ -45,4 +46,10 @@ public int id() {
4546
public Holder<T> updateId(final Int2IntFunction rewriteFunction) {
4647
return this;
4748
}
49+
50+
@Override
51+
public Holder<T> updateValue(final Function<T, T> rewriteFunction) {
52+
final T rewrittenValue = rewriteFunction.apply(value);
53+
return rewrittenValue != value ? Holder.of(rewrittenValue) : this;
54+
}
4855
}

api/src/main/java/com/viaversion/viaversion/api/minecraft/data/FilledStructuredData.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
package com.viaversion.viaversion.api.minecraft.data;
2424

2525
import com.google.common.base.Preconditions;
26+
import com.viaversion.viaversion.util.Copyable;
2627
import io.netty.buffer.ByteBuf;
2728
import java.util.Objects;
2829

@@ -61,7 +62,7 @@ public StructuredDataKey<T> key() {
6162

6263
@Override
6364
public StructuredData<T> copy() {
64-
return new FilledStructuredData<>(this.key, this.copy(this.value), this.id);
65+
return new FilledStructuredData<>(this.key, Copyable.copy(this.value), this.id);
6566
}
6667

6768
@Override

api/src/main/java/com/viaversion/viaversion/api/minecraft/item/data/AdventureModePredicate.java

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,17 @@
2222
*/
2323
package com.viaversion.viaversion.api.minecraft.item.data;
2424

25+
import com.viaversion.viaversion.api.connection.UserConnection;
2526
import com.viaversion.viaversion.api.minecraft.data.StructuredData;
27+
import com.viaversion.viaversion.api.protocol.Protocol;
2628
import com.viaversion.viaversion.api.type.Type;
2729
import com.viaversion.viaversion.api.type.types.ArrayType;
2830
import com.viaversion.viaversion.util.Copyable;
31+
import com.viaversion.viaversion.util.Rewritable;
2932
import io.netty.buffer.ByteBuf;
30-
import it.unimi.dsi.fastutil.ints.Int2IntFunction;
3133

32-
public record AdventureModePredicate(BlockPredicate[] predicates, boolean showInTooltip) implements Copyable {
34+
public record AdventureModePredicate(BlockPredicate[] predicates,
35+
boolean showInTooltip) implements Copyable, Rewritable {
3336

3437
public AdventureModePredicate(final BlockPredicate[] predicates) {
3538
this(predicates, true);
@@ -70,16 +73,17 @@ public void write(final ByteBuf buffer, final AdventureModePredicate value) {
7073
}
7174
}
7275

73-
public AdventureModePredicate rewrite(final Int2IntFunction blockIdRewriter) {
76+
@Override
77+
public AdventureModePredicate rewrite(final UserConnection connection, final Protocol<?, ?, ?, ?> protocol, final boolean clientbound) {
7478
final BlockPredicate[] predicates = new BlockPredicate[this.predicates.length];
7579
for (int i = 0; i < predicates.length; i++) {
76-
predicates[i] = this.predicates[i].rewrite(blockIdRewriter);
80+
predicates[i] = this.predicates[i].rewrite(connection, protocol, clientbound);
7781
}
7882
return new AdventureModePredicate(predicates, showInTooltip);
7983
}
8084

8185
@Override
8286
public AdventureModePredicate copy() {
83-
return new AdventureModePredicate(copy(predicates), showInTooltip);
87+
return new AdventureModePredicate(Copyable.copy(predicates), showInTooltip);
8488
}
8589
}

api/src/main/java/com/viaversion/viaversion/api/minecraft/item/data/ArmorTrim.java

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,15 @@
2222
*/
2323
package com.viaversion.viaversion.api.minecraft.item.data;
2424

25+
import com.viaversion.viaversion.api.connection.UserConnection;
2526
import com.viaversion.viaversion.api.minecraft.Holder;
27+
import com.viaversion.viaversion.api.protocol.Protocol;
2628
import com.viaversion.viaversion.api.type.Type;
29+
import com.viaversion.viaversion.util.Rewritable;
2730
import io.netty.buffer.ByteBuf;
28-
import it.unimi.dsi.fastutil.ints.Int2IntFunction;
2931

30-
public record ArmorTrim(Holder<ArmorTrimMaterial> material, Holder<ArmorTrimPattern> pattern, boolean showInTooltip) {
32+
public record ArmorTrim(Holder<ArmorTrimMaterial> material, Holder<ArmorTrimPattern> pattern,
33+
boolean showInTooltip) implements Rewritable {
3134

3235
public ArmorTrim(Holder<ArmorTrimMaterial> material, Holder<ArmorTrimPattern> pattern) {
3336
this(material, pattern, true);
@@ -96,15 +99,16 @@ public void write(final ByteBuf buffer, final ArmorTrim value) {
9699
}
97100
};
98101

99-
public ArmorTrim rewrite(final Int2IntFunction idRewriteFunction) {
102+
@Override
103+
public ArmorTrim rewrite(final UserConnection connection, final Protocol<?, ?, ?, ?> protocol, final boolean clientbound) {
100104
Holder<ArmorTrimMaterial> material = this.material;
101105
if (material.isDirect()) {
102-
material = Holder.of(material.value().rewrite(idRewriteFunction));
106+
material = Holder.of(material.value().rewrite(connection, protocol, clientbound));
103107
}
104108

105109
Holder<ArmorTrimPattern> pattern = this.pattern;
106110
if (pattern.isDirect()) {
107-
pattern = Holder.of(pattern.value().rewrite(idRewriteFunction));
111+
pattern = Holder.of(pattern.value().rewrite(connection, protocol, clientbound));
108112
}
109113
return new ArmorTrim(material, pattern, showInTooltip);
110114
}

api/src/main/java/com/viaversion/viaversion/api/minecraft/item/data/ArmorTrimMaterial.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,16 +23,19 @@
2323
package com.viaversion.viaversion.api.minecraft.item.data;
2424

2525
import com.viaversion.nbt.tag.Tag;
26+
import com.viaversion.viaversion.api.connection.UserConnection;
27+
import com.viaversion.viaversion.api.protocol.Protocol;
2628
import com.viaversion.viaversion.api.type.Types;
2729
import com.viaversion.viaversion.api.type.types.misc.HolderType;
2830
import com.viaversion.viaversion.util.Copyable;
31+
import com.viaversion.viaversion.util.Rewritable;
2932
import io.netty.buffer.ByteBuf;
30-
import it.unimi.dsi.fastutil.ints.Int2IntFunction;
3133
import it.unimi.dsi.fastutil.objects.Object2ObjectArrayMap;
3234
import java.util.Map;
3335

3436
public record ArmorTrimMaterial(String assetName, int itemId, float itemModelIndex,
35-
Map<String, String> overrideArmorMaterials, Tag description) implements Copyable {
37+
Map<String, String> overrideArmorMaterials,
38+
Tag description) implements Copyable, Rewritable {
3639

3740
public ArmorTrimMaterial(final String assetName, final int itemId, final Map<String, String> overrideArmorMaterials, final Tag description) {
3841
this(assetName, itemId, 0F, overrideArmorMaterials, description);
@@ -175,8 +178,9 @@ public void writeDirect(final ByteBuf buffer, final ArmorTrimMaterial value) {
175178
}
176179
};
177180

178-
public ArmorTrimMaterial rewrite(final Int2IntFunction idRewriteFunction) {
179-
return new ArmorTrimMaterial(assetName, idRewriteFunction.applyAsInt(itemId), itemModelIndex, overrideArmorMaterials, description);
181+
@Override
182+
public ArmorTrimMaterial rewrite(final UserConnection connection, final Protocol<?, ?, ?, ?> protocol, final boolean clientbound) {
183+
return new ArmorTrimMaterial(assetName, Rewritable.rewriteItem(protocol, clientbound, itemId), itemModelIndex, overrideArmorMaterials, description);
180184
}
181185

182186
@Override

0 commit comments

Comments
 (0)