Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
35b1679
chore: add test infrastructure to commons module
Swofty-Developments Apr 19, 2026
d096218
feat: add JacksonSerializer as drop-in replacement for hand-written s…
Swofty-Developments Apr 19, 2026
17e2579
feat: add ServicePushProtocol for typed service-to-server push messages
Swofty-Developments Apr 19, 2026
2d52ac3
feat: add TypedServiceHandler interface and registration in ProxyAPI
Swofty-Developments Apr 19, 2026
98c7e8d
feat: add typed ServicePushProtocol overloads to ServiceToServerManager
Swofty-Developments Apr 19, 2026
1869ab9
feat: wire TypedServiceHandler registration into game server loader
Swofty-Developments Apr 19, 2026
ed3cb9a
feat: migrate bazaar transaction propagation to typed ServicePushProt…
Swofty-Developments Apr 19, 2026
3acddb5
feat: migrate data mutex ServiceToClient handlers to typed ServicePus…
Swofty-Developments Apr 19, 2026
6fb35e3
feat: migrate generic ServiceToClient handlers to typed ServicePushPr…
Swofty-Developments Apr 19, 2026
2861f9e
feat: migrate dark auction, party, and game handlers to typed Service…
Swofty-Developments Apr 19, 2026
e620270
chore: remove legacy untyped ServiceToClient infrastructure
Swofty-Developments Apr 19, 2026
72aa722
refactor: migrate bazaar, auction, and ping ProtocolObjects to Jackso…
Swofty-Developments Apr 19, 2026
fe042f1
refactor: migrate orchestrator, datamutex, and itemtracker ProtocolOb…
Swofty-Developments Apr 19, 2026
62fc40d
refactor: migrate GetFriendDataProtocolObject to JacksonSerializer + …
Swofty-Developments Apr 19, 2026
940e2f5
refactor: migrate friend and presence ProtocolObjects to JacksonSeria…
Swofty-Developments Apr 19, 2026
262e083
refactor: replace string delimiter wire format with JSON envelope
Swofty-Developments Apr 19, 2026
0dc9acb
feat: add Jackson polymorphism annotations to PartyEvent and FriendEv…
Swofty-Developments Apr 19, 2026
8ad0bd9
feat: migrate proxy channels to typed ProtocolObject protocols
Swofty-Developments Apr 19, 2026
9e03598
refactor: standardize success/error fields on all protocol Response t…
Swofty-Developments Apr 19, 2026
8357a00
fix: correct type conversion in PunishPlayerEndpoint
Swofty-Developments Apr 19, 2026
179fd6a
fix: exclude proxy protocols from service listener scan and correct p…
Swofty-Developments Apr 19, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
8 changes: 8 additions & 0 deletions commons/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ java {
}

dependencies {
implementation(libs.json)
implementation(libs.snakeyaml)
implementation(project(":packer"))
implementation(libs.mongodb.bson)
Expand All @@ -32,6 +33,13 @@ dependencies {

implementation(libs.configurate.yaml)
implementation(libs.javapoet)

testImplementation("org.junit.jupiter:junit-jupiter:6.0.3")
testRuntimeOnly("org.junit.platform:junit-platform-launcher")
}

tasks.test {
useJUnitPlatform()
}

sourceSets {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -876,15 +876,15 @@ public enum ItemType {

DIAMOND_BLOCK(Material.DIAMOND_BLOCK, Rarity.COMMON),

DIAMOND_BOOTS(Material.DIAMOND_BOOTS, Rarity.COMMON),
DIAMOND_BOOTS(Material.DIAMOND_BOOTS, Rarity.RARE),

DIAMOND_CHESTPLATE(Material.DIAMOND_CHESTPLATE, Rarity.COMMON),
DIAMOND_CHESTPLATE(Material.DIAMOND_CHESTPLATE, Rarity.RARE),

DIAMOND_HELMET(Material.DIAMOND_HELMET, Rarity.COMMON),
DIAMOND_HELMET(Material.DIAMOND_HELMET, Rarity.RARE),

DIAMOND_HOE(Material.DIAMOND_HOE, Rarity.COMMON),

DIAMOND_LEGGINGS(Material.DIAMOND_LEGGINGS, Rarity.COMMON),
DIAMOND_LEGGINGS(Material.DIAMOND_LEGGINGS, Rarity.RARE),

DIAMOND_MAGMAFISH(Material.PLAYER_HEAD, Rarity.COMMON),

Expand Down
9 changes: 8 additions & 1 deletion commons/src/main/java/net/swofty/commons/friend/Friend.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package net.swofty.commons.friend;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Getter;
import lombok.Setter;
import net.swofty.commons.protocol.Serializer;
Expand All @@ -16,7 +18,12 @@ public class Friend {
private boolean bestFriend;
private final long addedTimestamp;

public Friend(UUID uuid, String nickname, boolean bestFriend, long addedTimestamp) {
@JsonCreator
public Friend(
@JsonProperty("uuid") UUID uuid,
@JsonProperty("nickname") String nickname,
@JsonProperty("bestFriend") boolean bestFriend,
@JsonProperty("addedTimestamp") long addedTimestamp) {
this.uuid = uuid;
this.nickname = nickname;
this.bestFriend = bestFriend;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package net.swofty.commons.friend;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Getter;
import lombok.Setter;
import net.swofty.commons.protocol.Serializer;
Expand All @@ -17,7 +19,11 @@ public class FriendData {
@Setter
private FriendSettings settings;

public FriendData(UUID playerUuid, List<Friend> friends, FriendSettings settings) {
@JsonCreator
public FriendData(
@JsonProperty("playerUuid") UUID playerUuid,
@JsonProperty("friends") List<Friend> friends,
@JsonProperty("settings") FriendSettings settings) {
this.playerUuid = playerUuid;
this.friends = friends;
this.settings = settings;
Expand Down
18 changes: 18 additions & 0 deletions commons/src/main/java/net/swofty/commons/friend/FriendEvent.java
Original file line number Diff line number Diff line change
@@ -1,14 +1,32 @@
package net.swofty.commons.friend;

import com.fasterxml.jackson.annotation.JsonSubTypes;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
import lombok.Getter;
import lombok.NonNull;
import net.swofty.commons.friend.events.*;
import net.swofty.commons.friend.events.response.*;
import net.swofty.commons.protocol.Serializer;

import java.util.Arrays;
import java.util.List;
import java.util.UUID;

@Getter
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, property = "@type")
@JsonSubTypes({
@JsonSubTypes.Type(value = FriendAcceptRequestEvent.class),
@JsonSubTypes.Type(value = FriendAddRequestEvent.class),
@JsonSubTypes.Type(value = FriendDenyRequestEvent.class),
@JsonSubTypes.Type(value = FriendListRequestEvent.class),
@JsonSubTypes.Type(value = FriendRemoveAllRequestEvent.class),
@JsonSubTypes.Type(value = FriendRemoveRequestEvent.class),
@JsonSubTypes.Type(value = FriendRequestsListEvent.class),
@JsonSubTypes.Type(value = FriendSetNicknameRequestEvent.class),
@JsonSubTypes.Type(value = FriendToggleBestRequestEvent.class),
@JsonSubTypes.Type(value = FriendToggleSettingRequestEvent.class),
@JsonSubTypes.Type(value = FriendResponseEvent.class)
})
public abstract class FriendEvent {
public FriendEvent() {
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,26 @@
package net.swofty.commons.friend;

import com.fasterxml.jackson.annotation.JsonSubTypes;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
import net.swofty.commons.friend.events.response.*;

@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, property = "@type")
@JsonSubTypes({
@JsonSubTypes.Type(value = FriendAddedResponseEvent.class),
@JsonSubTypes.Type(value = FriendBestToggledResponseEvent.class),
@JsonSubTypes.Type(value = FriendDeniedResponseEvent.class),
@JsonSubTypes.Type(value = FriendJoinNotificationEvent.class),
@JsonSubTypes.Type(value = FriendLeaveNotificationEvent.class),
@JsonSubTypes.Type(value = FriendListResponseEvent.class),
@JsonSubTypes.Type(value = FriendNicknameSetResponseEvent.class),
@JsonSubTypes.Type(value = FriendRemoveAllResponseEvent.class),
@JsonSubTypes.Type(value = FriendRemovedResponseEvent.class),
@JsonSubTypes.Type(value = FriendRequestExpiredResponseEvent.class),
@JsonSubTypes.Type(value = FriendRequestReceivedResponseEvent.class),
@JsonSubTypes.Type(value = FriendRequestSentResponseEvent.class),
@JsonSubTypes.Type(value = FriendRequestsListResponseEvent.class),
@JsonSubTypes.Type(value = FriendSettingToggledResponseEvent.class)
})
public abstract class FriendResponseEvent extends FriendEvent {
public FriendResponseEvent() {
super();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package net.swofty.commons.friend;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Getter;
import lombok.Setter;
import net.swofty.commons.protocol.Serializer;
Expand All @@ -11,7 +13,10 @@ public class FriendSettings {
private boolean acceptingRequests;
private boolean joinLeaveNotifications;

public FriendSettings(boolean acceptingRequests, boolean joinLeaveNotifications) {
@JsonCreator
public FriendSettings(
@JsonProperty("acceptingRequests") boolean acceptingRequests,
@JsonProperty("joinLeaveNotifications") boolean joinLeaveNotifications) {
this.acceptingRequests = acceptingRequests;
this.joinLeaveNotifications = joinLeaveNotifications;
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package net.swofty.commons.friend;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Getter;
import net.swofty.commons.protocol.Serializer;
import org.json.JSONObject;
Expand All @@ -15,7 +17,13 @@ public class PendingFriendRequest {
private final String toName;
private final long timestamp;

public PendingFriendRequest(UUID from, UUID to, String fromName, String toName, long timestamp) {
@JsonCreator
public PendingFriendRequest(
@JsonProperty("from") UUID from,
@JsonProperty("to") UUID to,
@JsonProperty("fromName") String fromName,
@JsonProperty("toName") String toName,
@JsonProperty("timestamp") long timestamp) {
this.from = from;
this.to = to;
this.fromName = fromName;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package net.swofty.commons.friend.events;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Getter;
import net.swofty.commons.friend.FriendEvent;
import net.swofty.commons.protocol.Serializer;
Expand All @@ -13,7 +15,8 @@ public class FriendAcceptRequestEvent extends FriendEvent {
private final UUID accepter;
private final UUID requester;

public FriendAcceptRequestEvent(UUID accepter, UUID requester) {
@JsonCreator
public FriendAcceptRequestEvent(@JsonProperty("accepter") UUID accepter, @JsonProperty("requester") UUID requester) {
super();
this.accepter = accepter;
this.requester = requester;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package net.swofty.commons.friend.events;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Getter;
import net.swofty.commons.friend.FriendEvent;
import net.swofty.commons.protocol.Serializer;
Expand All @@ -13,7 +15,8 @@ public class FriendAddRequestEvent extends FriendEvent {
private final UUID sender;
private final UUID target;

public FriendAddRequestEvent(UUID sender, UUID target) {
@JsonCreator
public FriendAddRequestEvent(@JsonProperty("sender") UUID sender, @JsonProperty("target") UUID target) {
super();
this.sender = sender;
this.target = target;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package net.swofty.commons.friend.events;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Getter;
import net.swofty.commons.friend.FriendEvent;
import net.swofty.commons.protocol.Serializer;
Expand All @@ -13,7 +15,8 @@ public class FriendDenyRequestEvent extends FriendEvent {
private final UUID denier;
private final UUID requester;

public FriendDenyRequestEvent(UUID denier, UUID requester) {
@JsonCreator
public FriendDenyRequestEvent(@JsonProperty("denier") UUID denier, @JsonProperty("requester") UUID requester) {
super();
this.denier = denier;
this.requester = requester;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package net.swofty.commons.friend.events;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Getter;
import net.swofty.commons.friend.FriendEvent;
import net.swofty.commons.protocol.Serializer;
Expand All @@ -14,7 +16,8 @@ public class FriendListRequestEvent extends FriendEvent {
private final int page;
private final boolean bestOnly;

public FriendListRequestEvent(UUID player, int page, boolean bestOnly) {
@JsonCreator
public FriendListRequestEvent(@JsonProperty("player") UUID player, @JsonProperty("page") int page, @JsonProperty("bestOnly") boolean bestOnly) {
super();
this.player = player;
this.page = page;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package net.swofty.commons.friend.events;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Getter;
import net.swofty.commons.friend.FriendEvent;
import net.swofty.commons.protocol.Serializer;
Expand All @@ -12,7 +14,8 @@
public class FriendRemoveAllRequestEvent extends FriendEvent {
private final UUID player;

public FriendRemoveAllRequestEvent(UUID player) {
@JsonCreator
public FriendRemoveAllRequestEvent(@JsonProperty("player") UUID player) {
super();
this.player = player;
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package net.swofty.commons.friend.events;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Getter;
import net.swofty.commons.friend.FriendEvent;
import net.swofty.commons.protocol.Serializer;
Expand All @@ -13,7 +15,8 @@ public class FriendRemoveRequestEvent extends FriendEvent {
private final UUID remover;
private final UUID target;

public FriendRemoveRequestEvent(UUID remover, UUID target) {
@JsonCreator
public FriendRemoveRequestEvent(@JsonProperty("remover") UUID remover, @JsonProperty("target") UUID target) {
super();
this.remover = remover;
this.target = target;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package net.swofty.commons.friend.events;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Getter;
import net.swofty.commons.friend.FriendEvent;
import net.swofty.commons.protocol.Serializer;
Expand All @@ -13,7 +15,8 @@ public class FriendRequestsListEvent extends FriendEvent {
private final UUID player;
private final int page;

public FriendRequestsListEvent(UUID player, int page) {
@JsonCreator
public FriendRequestsListEvent(@JsonProperty("player") UUID player, @JsonProperty("page") int page) {
super();
this.player = player;
this.page = page;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package net.swofty.commons.friend.events;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Getter;
import net.swofty.commons.friend.FriendEvent;
import net.swofty.commons.protocol.Serializer;
Expand All @@ -14,7 +16,8 @@ public class FriendSetNicknameRequestEvent extends FriendEvent {
private final UUID target;
private final String nickname;

public FriendSetNicknameRequestEvent(UUID player, UUID target, String nickname) {
@JsonCreator
public FriendSetNicknameRequestEvent(@JsonProperty("player") UUID player, @JsonProperty("target") UUID target, @JsonProperty("nickname") String nickname) {
super();
this.player = player;
this.target = target;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package net.swofty.commons.friend.events;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Getter;
import net.swofty.commons.friend.FriendEvent;
import net.swofty.commons.protocol.Serializer;
Expand All @@ -13,7 +15,8 @@ public class FriendToggleBestRequestEvent extends FriendEvent {
private final UUID player;
private final UUID target;

public FriendToggleBestRequestEvent(UUID player, UUID target) {
@JsonCreator
public FriendToggleBestRequestEvent(@JsonProperty("player") UUID player, @JsonProperty("target") UUID target) {
super();
this.player = player;
this.target = target;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package net.swofty.commons.friend.events;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Getter;
import net.swofty.commons.friend.FriendEvent;
import net.swofty.commons.friend.FriendSettingType;
Expand All @@ -14,7 +16,8 @@ public class FriendToggleSettingRequestEvent extends FriendEvent {
private final UUID player;
private final FriendSettingType settingType;

public FriendToggleSettingRequestEvent(UUID player, FriendSettingType settingType) {
@JsonCreator
public FriendToggleSettingRequestEvent(@JsonProperty("player") UUID player, @JsonProperty("settingType") FriendSettingType settingType) {
super();
this.player = player;
this.settingType = settingType;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package net.swofty.commons.friend.events.response;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Getter;
import net.swofty.commons.friend.FriendResponseEvent;
import net.swofty.commons.protocol.Serializer;
Expand All @@ -15,7 +17,8 @@ public class FriendAddedResponseEvent extends FriendResponseEvent {
private final String player1Name;
private final String player2Name;

public FriendAddedResponseEvent(UUID player1, UUID player2, String player1Name, String player2Name) {
@JsonCreator
public FriendAddedResponseEvent(@JsonProperty("player1") UUID player1, @JsonProperty("player2") UUID player2, @JsonProperty("player1Name") String player1Name, @JsonProperty("player2Name") String player2Name) {
super();
this.player1 = player1;
this.player2 = player2;
Expand Down
Loading
Loading