Skip to content

Commit

Permalink
Update to 1.20.4 (fix #14)
Browse files Browse the repository at this point in the history
  • Loading branch information
TheKodeToad committed Feb 15, 2024
1 parent fa2dcc7 commit 8cca671
Show file tree
Hide file tree
Showing 6 changed files with 83 additions and 85 deletions.
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
plugins {
id 'fabric-loom' version '1.3-SNAPSHOT'
id 'fabric-loom' version '1.5-SNAPSHOT'
id 'maven-publish'
}

Expand Down
14 changes: 7 additions & 7 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,16 @@
org.gradle.jvmargs=-Xmx1G
# Fabric Properties
# check these on https://modmuss50.me/fabric.html
minecraft_version=1.20.1
yarn_mappings=1.20.1+build.10
loader_version=0.14.22
minecraft_version=1.20.4
yarn_mappings=1.20.4+build.3
loader_version=0.15.6
# Mod Properties
mod_version=1.2.2
maven_group=io.toadlabs
archives_base_name=numeralping
# Dependencies
# check this on https://modmuss50.me/fabric.html
fabric_version=0.86.1+1.20.1
yacl_version=3.0.0-beta.7+1.20
mod_menu_version=7.2.1
devauth_version=1.1.2
fabric_version=0.96.1+1.20.4
yacl_version=3.3.1+1.20.4
mod_menu_version=9.0.0
devauth_version=1.2.0
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.2.1-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,9 +53,8 @@ public String shiftPing(String string) {
for (int index = 0; index < string.length(); index++) {
characters[index] = string.charAt(index);

if (Character.isDigit(characters[index])) {
if (characters[index] >= '0' && characters[index] <= '9')
characters[index] += 8272;
}
}

return String.valueOf(characters);
Expand Down
79 changes: 39 additions & 40 deletions src/main/java/io/toadlabs/numeralping/mixin/ServerEntryMixin.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,55 +25,54 @@
@Mixin(value = MultiplayerServerListWidget.ServerEntry.class, priority = 0)
public class ServerEntryMixin {

@ModifyArgs(method = "render", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/DrawContext;drawText(Lnet/minecraft/client/font/TextRenderer;Lnet/minecraft/text/Text;IIIZ)I", ordinal = 0))
public void shiftText(Args args) {
NumeralConfig config = NumeralConfig.instance();
@ModifyArgs(method = "render", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/DrawContext;drawText(Lnet/minecraft/client/font/TextRenderer;Lnet/minecraft/text/Text;IIIZ)I", ordinal = 0))
public void shiftText(Args args) {
NumeralConfig config = NumeralConfig.instance();

if (config.serverList) {
args.set(2, ((int) args.get(2)) + 10 - client.textRenderer.getWidth(getPingText(config, server.ping)));
}
}
if (config.serverList) {
args.set(2, ((int) args.get(2)) + 10 - client.textRenderer.getWidth(getPingText(config, server.ping)));
}
}

// hide the tooltip if it's redundant
@ModifyArgs(method = "render", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/screen/multiplayer/MultiplayerScreen;setMultiplayerScreenTooltip(Ljava/util/List;)V"), require = 0)
public void setTooltip(Args args) {
var tooltip = (List<Text>) args.get(0);
if (tooltip != null && tooltip.size() == 1 && NumeralConfig.instance().serverList && tooltip.get(0).getContent() instanceof TranslatableTextContent translatable && translatable.getKey().equals("multiplayer.status.ping")) {
args.set(0, null);
}
}
// hide the tooltip if it's redundant
@ModifyArgs(method = "render", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/screen/multiplayer/MultiplayerScreen;setMultiplayerScreenTooltip(Ljava/util/List;)V"), require = 0)
public void setTooltip(Args args) {
var tooltip = (List<Text>) args.get(0);
if (tooltip != null && tooltip.size() == 1 && NumeralConfig.instance().serverList && tooltip.get(0).getContent() instanceof TranslatableTextContent translatable && translatable.getKey().equals("multiplayer.status.ping")) {
args.set(0, null);
}
}

@Redirect(method = "render", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/DrawContext;drawTexture(Lnet/minecraft/util/Identifier;IIFFIIII)V", ordinal = 0))
public void renderDetailedLatency(DrawContext instance, Identifier id, int x, int y, float u, float v, int width,
int height, int textureWidth, int textureHeight) {
NumeralConfig config = NumeralConfig.instance();
@Redirect(method = "render", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/DrawContext;drawGuiTexture(Lnet/minecraft/util/Identifier;IIII)V", ordinal = 0))
public void renderDetailedLatency(DrawContext instance, Identifier texture, int x, int y, int width, int height) {
NumeralConfig config = NumeralConfig.instance();

if (server.ping >= 0 && config.serverList) {
String text = getPingText(config, server.ping);
if (server.ping >= 0 && config.serverList) {
String text = getPingText(config, server.ping);

if (config.smallPing) {
y--;
} else {
y++;
}
if (config.smallPing) {
y--;
} else {
y++;
}

instance.drawText(client.textRenderer, text, x + 11 - client.textRenderer.getWidth(text), y,
Utils.getPingColour((int) server.ping), false);
return;
}
instance.drawText(client.textRenderer, text, x + 11 - client.textRenderer.getWidth(text), y,
Utils.getPingColour((int) server.ping), false);
return;
}

instance.drawTexture(id, x, y, u, v, width, height, textureWidth, textureHeight);
}
instance.drawGuiTexture(texture, x, y, width, height);
}

@Unique
private String getPingText(NumeralConfig config, long ping) {
return config.shiftPing(Long.toString(ping));
}
@Unique
private String getPingText(NumeralConfig config, long ping) {
return config.shiftPing(Long.toString(ping));
}

@Shadow
private @Final ServerInfo server;
@Shadow
private @Final ServerInfo server;

@Shadow
private @Final MinecraftClient client;
@Shadow
private @Final MinecraftClient client;

}
68 changes: 34 additions & 34 deletions src/main/java/io/toadlabs/numeralping/util/Utils.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,38 +6,38 @@

public final class Utils {

public static int getPingColour(int latency) {
int level;

NumeralConfig config = NumeralConfig.instance();

if (latency == -2) {
level = latency;
} else if (latency < 0) {
level = 5;
} else if (latency < config.defaultPingThreshold) {
level = 0;
} else if (latency < config.levelOnePingThreshold) {
level = 1;
} else if (latency < config.levelTwoPingThreshold) {
level = 2;
} else if (latency < config.levelThreePingThreshold) {
level = 3;
} else {
level = 4;
}

// What is this crazy syntax?
// Thanks IntelliJ
Color colour = switch (level) {
case 1 -> config.levelOnePingColour;
case 2 -> config.levelTwoPingColour;
case 3 -> config.levelThreePingColour;
case 4 -> config.levelFourPingColour;
case 5 -> config.levelFivePingColour;
default -> config.defaultPingColour;
};

return colour.getRGB();
}
public static int getPingColour(int latency) {
int level;

NumeralConfig config = NumeralConfig.instance();

if (latency == -2) {
level = latency;
} else if (latency < 0) {
level = 5;
} else if (latency < config.defaultPingThreshold) {
level = 0;
} else if (latency < config.levelOnePingThreshold) {
level = 1;
} else if (latency < config.levelTwoPingThreshold) {
level = 2;
} else if (latency < config.levelThreePingThreshold) {
level = 3;
} else {
level = 4;
}

// What is this crazy syntax?
// Thanks IntelliJ
Color colour = switch (level) {
case 1 -> config.levelOnePingColour;
case 2 -> config.levelTwoPingColour;
case 3 -> config.levelThreePingColour;
case 4 -> config.levelFourPingColour;
case 5 -> config.levelFivePingColour;
default -> config.defaultPingColour;
};

return colour.getRGB();
}
}

0 comments on commit 8cca671

Please sign in to comment.