Skip to content

Commit ea6f34b

Browse files
authored
Merge pull request #13 from tildejustin/main
4.1.1: validate x coordinate and color every line of error message
2 parents e065894 + c3377f6 commit ea6f34b

File tree

9 files changed

+30
-16
lines changed

9 files changed

+30
-16
lines changed

1.12/src/main/java/net/set/spawn/mod/mixin/ServerPlayerEntityMixin.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,9 @@ private void failOnNonRandomSpawns(CallbackInfo ci, @Share("seed") LocalRef<Seed
6969
@Inject(method = "onSpawn", at = @At("TAIL"))
7070
private void sendErrorMessage(CallbackInfo ci) {
7171
if (this.setSpawnError != null) {
72-
this.sendMessage(new LiteralTextContent(this.setSpawnError + " This run is not verifiable.").setStyle(new Style().withColor(Formatting.RED)));
72+
Text message = new LiteralTextContent(this.setSpawnError + " This run is not verifiable.");
73+
message.getStyle().withColor(Formatting.RED);
74+
this.sendMessage(message);
7375
this.setSpawnError = null;
7476
}
7577
}

1.13.x/src/main/java/net/set/spawn/mod/mixin/ServerPlayerEntityMixin.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,10 +45,14 @@ private int setSpawn(Random random, int bounds, Operation<Integer> original, @Lo
4545
return originalResult;
4646
}
4747

48-
// Transform x and z coordinates into correct Random#nextInt result.
49-
int result = ((MathHelper.floor(seedObject.getX()) - worldSpawn.getX()) + spawnRadius) + ((MathHelper.floor(seedObject.getZ()) - worldSpawn.getZ()) + spawnRadius) * (spawnRadius * 2 + 1);
48+
// Transform x and z coordinates into corresponding Random#nextInt result.
49+
int spawnDiameter = spawnRadius * 2 + 1;
50+
int x = MathHelper.floor(seedObject.getX());
51+
int z = MathHelper.floor(seedObject.getZ());
52+
int xLocal = x - worldSpawn.getX() + spawnRadius;
53+
int result = xLocal + (z - worldSpawn.getZ() + spawnRadius) * spawnDiameter;
5054

51-
if (result >= 0 && result < bounds) {
55+
if (xLocal >=0 && xLocal < spawnDiameter && result >= 0 && result < bounds) {
5256
// we save the original result in case the set spawn is invalid, see fallbackOnInvalidSpawn
5357
System.out.println("Setting spawn");
5458
originalRandomResult.set(originalResult);
@@ -83,7 +87,7 @@ private void failOnNonRandomSpawns(CallbackInfo ci, @Share("seed") LocalRef<Seed
8387
@Inject(method = "listenToScreenHandler", at = @At("TAIL"))
8488
private void sendErrorMessage(CallbackInfo ci) {
8589
if (this.setSpawnError != null) {
86-
this.sendMessage(new LiteralText(this.setSpawnError + " This run is not verifiable.").setStyle(new Style().setFormatting(Formatting.RED)), false);
90+
this.sendMessage(new LiteralText(this.setSpawnError + " This run is not verifiable.").formatted(Formatting.RED), false);
8791
this.setSpawnError = null;
8892
}
8993
}

1.14-1.18.2/src/main/java/net/set/spawn/mod/mixin/ServerPlayerEntityMixin.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import net.minecraft.server.network.ServerPlayerEntity;
88
import net.minecraft.server.world.ServerWorld;
99
import net.minecraft.text.*;
10+
import net.minecraft.util.Formatting;
1011
import net.minecraft.util.math.*;
1112
import net.set.spawn.mod.*;
1213
import net.set.spawn.mod.interfaces.MinecraftServerExtended;
@@ -47,9 +48,10 @@ private int setSpawn(Random random, int bounds, Operation<Integer> original, @Lo
4748
int spawnDiameter = spawnRadius * 2 + 1;
4849
int x = MathHelper.floor(seedObject.getX());
4950
int z = MathHelper.floor(seedObject.getZ());
50-
int result = (x - worldSpawn.getX() + spawnRadius) + (z - worldSpawn.getZ() + spawnRadius) * spawnDiameter;
51+
int xLocal = x - worldSpawn.getX() + spawnRadius;
52+
int result = xLocal + (z - worldSpawn.getZ() + spawnRadius) * spawnDiameter;
5153

52-
if (result >= 0 && result < bounds) {
54+
if (xLocal >=0 && xLocal < spawnDiameter && result >= 0 && result < bounds) {
5355
// we save the original result in case the set spawn is invalid, see fallbackOnInvalidSpawn
5456
System.out.println("Setting spawn");
5557
originalRandomResult.set(originalResult);
@@ -95,7 +97,7 @@ private void sendErrorMessage(CallbackInfo ci) {
9597
@Inject(method = "method_14235(Lnet/minecraft/class_1703;)V", at = @At("TAIL"), require = 0)
9698
private void sendErrorMessage2(CallbackInfo ci) {
9799
if (this.setSpawnError != null) {
98-
this.sendMessage(new LiteralText("§c" + this.setSpawnError + " This run is not verifiable."), false);
100+
this.sendMessage(new LiteralText(this.setSpawnError + " This run is not verifiable.").formatted(Formatting.RED), false);
99101
this.setSpawnError = null;
100102
}
101103
}

1.19-1.21.4/src/main/java/net/set/spawn/mod/mixin/ServerPlayerEntityMixin.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import net.minecraft.server.network.ServerPlayerEntity;
88
import net.minecraft.server.world.ServerWorld;
99
import net.minecraft.text.Text;
10+
import net.minecraft.util.Formatting;
1011
import net.minecraft.util.math.*;
1112
import net.minecraft.util.math.random.Random;
1213
import net.set.spawn.mod.*;
@@ -50,9 +51,10 @@ private int setSpawn(Random random, int bounds, Operation<Integer> original, @Lo
5051
int spawnDiameter = spawnRadius * 2 + 1;
5152
int x = MathHelper.floor(seedObject.getX());
5253
int z = MathHelper.floor(seedObject.getZ());
53-
int result = (x - worldSpawn.getX() + spawnRadius) + (z - worldSpawn.getZ() + spawnRadius) * spawnDiameter;
54+
int xLocal = x - worldSpawn.getX() + spawnRadius;
55+
int result = xLocal + (z - worldSpawn.getZ() + spawnRadius) * spawnDiameter;
5456

55-
if (result >= 0 && result < bounds) {
57+
if (xLocal >=0 && xLocal < spawnDiameter && result >= 0 && result < bounds) {
5658
// we save the original result in case the set spawn is invalid, see fallbackOnInvalidSpawn
5759
originalRandomResult.set(originalResult);
5860
System.out.println("Setting spawn");
@@ -105,7 +107,7 @@ private void failOnNonRandomSpawns2(CallbackInfoReturnable<Boolean> cir, @Share(
105107
@Inject(method = "onSpawn", at = @At("TAIL"))
106108
private void sendErrorMessage(CallbackInfo ci) {
107109
if (this.setSpawnError != null) {
108-
this.sendMessage(Text.literal("§c" + this.setSpawnError + " This run is not verifiable."), false);
110+
this.sendMessage(Text.literal(this.setSpawnError + " This run is not verifiable.").formatted(Formatting.RED), false);
109111
this.setSpawnError = null;
110112
}
111113
}

1.3-1.5.2/src/main/java/net/set/spawn/mod/mixin/ServerPlayerEntityMixin.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public abstract class ServerPlayerEntityMixin {
2121
private String setSpawnError;
2222

2323
@Shadow
24-
public abstract void method_3331(String par1);
24+
public abstract void method_3331(String message);
2525

2626
@WrapOperation(method = "<init>", at = @At(value = "INVOKE", target = "Ljava/util/Random;nextInt(I)I", ordinal = 0))
2727
private int setSpawnX(Random random, int bounds, Operation<Integer> original, @Local(argsOnly = true) MinecraftServer server, @Local BlockPos worldSpawn, @Share("seed") LocalRef<Seed> seed, @Share("zCoord") LocalRef<Integer> zCoord, @Share("isRandomSpawn") LocalBooleanRef isRandomSpawn) {

1.6.x/src/main/java/net/set/spawn/mod/mixin/ServerPlayerEntityMixin.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ public abstract class ServerPlayerEntityMixin {
2323
private String setSpawnError;
2424

2525
@Shadow
26-
public abstract void method_5505(ChatMessage par1);
26+
public abstract void method_5505(ChatMessage message);
2727

2828
@WrapOperation(method = "<init>", at = @At(value = "INVOKE", target = "Ljava/util/Random;nextInt(I)I", ordinal = 0))
2929
private int setSpawnX(Random random, int bounds, Operation<Integer> original, @Local(argsOnly = true) MinecraftServer server, @Local BlockPos worldSpawn, @Local(ordinal = 3) int spawnRadius, @Share("seed") LocalRef<Seed> seed, @Share("zCoord") LocalRef<Integer> zCoord, @Share("isRandomSpawn") LocalBooleanRef isRandomSpawn) {

1.7.x/src/main/java/net/set/spawn/mod/mixin/ServerPlayerEntityMixin.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,9 @@ private void failOnNonRandomSpawns(CallbackInfo ci, @Share("seed") LocalRef<Seed
6969
@Inject(method = "listenToScreenHandler", at = @At("TAIL"))
7070
private void sendErrorMessage(CallbackInfo ci) {
7171
if (this.setSpawnError != null) {
72-
this.sendMessage(new LiteralText(this.setSpawnError + " This run is not verifiable.").setStyle(new Style().setFormatting(Formatting.RED)));
72+
Text message = new LiteralText(this.setSpawnError + " This run is not verifiable.");
73+
message.getStyle().setFormatting(Formatting.RED);
74+
this.sendMessage(message);
7375
this.setSpawnError = null;
7476
}
7577
}

1.8-1.12.2/src/main/java/net/set/spawn/mod/mixin/ServerPlayerEntityMixin.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,9 @@ private void failOnNonRandomSpawns(CallbackInfo ci, @Share("seed") LocalRef<Seed
6969
@Inject(method = "listenToScreenHandler", at = @At("TAIL"))
7070
private void sendErrorMessage(CallbackInfo ci) {
7171
if (this.setSpawnError != null) {
72-
this.sendMessage(new LiteralText(this.setSpawnError + " This run is not verifiable.").setStyle(new Style().setFormatting(Formatting.RED)));
72+
Text message = new LiteralText(this.setSpawnError + " This run is not verifiable.");
73+
message.getStyle().setFormatting(Formatting.RED);
74+
this.sendMessage(message);
7375
this.setSpawnError = null;
7476
}
7577
}

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ org.gradle.jvmargs = -Xmx2G
22
org.gradle.parallel = true
33
org.gradle.caching = true
44

5-
mod_version = 4.1.0
5+
mod_version = 4.1.1
66
archives_name = setspawnmod
77
base_archives_name = setspawnmod-common
88
maven_group = me.bdamja

0 commit comments

Comments
 (0)