Skip to content

Commit 92e8038

Browse files
Add Hytale reason-to-message resolver for revocation UX
1 parent 4d7793a commit 92e8038

2 files changed

Lines changed: 44 additions & 0 deletions

File tree

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package io.github.legendaryforge.legendary.core.internal.platform.hytale;
2+
3+
import io.github.legendaryforge.legendary.core.api.id.ResourceId;
4+
import java.util.Map;
5+
import java.util.Objects;
6+
7+
/**
8+
* Platform-side mapping from core reason IDs to player-facing messages.
9+
*
10+
* <p>Core emits stable reason IDs. Platforms decide how to present them.
11+
*/
12+
public final class LegendaryReasonMessageResolver {
13+
14+
private static final Map<ResourceId, String> MESSAGES =
15+
Map.of(new ResourceId("legendary", "out_of_bounds"), "Participation revoked: left arena bounds.");
16+
17+
private LegendaryReasonMessageResolver() {}
18+
19+
public static String messageFor(ResourceId reasonId) {
20+
Objects.requireNonNull(reasonId, "reasonId");
21+
return MESSAGES.getOrDefault(reasonId, "Participation revoked.");
22+
}
23+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package io.github.legendaryforge.legendary.core.internal.platform.hytale;
2+
3+
import static org.junit.jupiter.api.Assertions.*;
4+
5+
import io.github.legendaryforge.legendary.core.api.id.ResourceId;
6+
import org.junit.jupiter.api.Test;
7+
8+
final class LegendaryReasonMessageResolverTest {
9+
10+
@Test
11+
void knownReasonResolvesToSpecificMessage() {
12+
String msg = LegendaryReasonMessageResolver.messageFor(new ResourceId("legendary", "out_of_bounds"));
13+
assertEquals("Participation revoked: left arena bounds.", msg);
14+
}
15+
16+
@Test
17+
void unknownReasonFallsBackToGenericMessage() {
18+
String msg = LegendaryReasonMessageResolver.messageFor(new ResourceId("legendary", "unknown"));
19+
assertEquals("Participation revoked.", msg);
20+
}
21+
}

0 commit comments

Comments
 (0)