Skip to content

Commit 1f3fb75

Browse files
feat: added party and friends menus to the My Profile item
1 parent 1b9fc84 commit 1f3fb75

26 files changed

Lines changed: 1859 additions & 33 deletions

File tree

commons/src/main/java/net/swofty/commons/party/PartyEvent.java

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,29 @@ private static PartyEvent createDummyInstance(Class<?> clazz) throws Exception {
164164
var constructor = clazz.getDeclaredConstructor(net.swofty.commons.party.PendingParty.class);
165165
return (PartyEvent) constructor.newInstance(pendingParty);
166166
}
167+
case "PartyPlayerDisconnectEvent" -> {
168+
var constructor = clazz.getDeclaredConstructor(UUID.class);
169+
return (PartyEvent) constructor.newInstance(UUID.randomUUID());
170+
}
171+
case "PartyPlayerRejoinEvent" -> {
172+
var constructor = clazz.getDeclaredConstructor(UUID.class);
173+
return (PartyEvent) constructor.newInstance(UUID.randomUUID());
174+
}
175+
case "PartyMemberDisconnectedResponseEvent" -> {
176+
var fullParty = FullParty.create(UUID.randomUUID(), UUID.randomUUID());
177+
var constructor = clazz.getDeclaredConstructor(FullParty.class, UUID.class, long.class);
178+
return (PartyEvent) constructor.newInstance(fullParty, UUID.randomUUID(), 300L);
179+
}
180+
case "PartyMemberRejoinedResponseEvent" -> {
181+
var fullParty = FullParty.create(UUID.randomUUID(), UUID.randomUUID());
182+
var constructor = clazz.getDeclaredConstructor(FullParty.class, UUID.class);
183+
return (PartyEvent) constructor.newInstance(fullParty, UUID.randomUUID());
184+
}
185+
case "PartyMemberDisconnectTimeoutResponseEvent" -> {
186+
var fullParty = FullParty.create(UUID.randomUUID(), UUID.randomUUID());
187+
var constructor = clazz.getDeclaredConstructor(FullParty.class, UUID.class, boolean.class);
188+
return (PartyEvent) constructor.newInstance(fullParty, UUID.randomUUID(), false);
189+
}
167190
default -> throw new IllegalArgumentException("Unknown party event class: " + className);
168191
}
169192
}
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
package net.swofty.commons.party.events;
2+
3+
import net.swofty.commons.party.PartyEvent;
4+
import net.swofty.commons.protocol.Serializer;
5+
import org.json.JSONObject;
6+
7+
import java.util.List;
8+
import java.util.UUID;
9+
10+
public class PartyPlayerDisconnectEvent extends PartyEvent {
11+
private final UUID disconnectedPlayer;
12+
13+
public PartyPlayerDisconnectEvent(UUID disconnectedPlayer) {
14+
super(null);
15+
this.disconnectedPlayer = disconnectedPlayer;
16+
}
17+
18+
public UUID getDisconnectedPlayer() { return disconnectedPlayer; }
19+
20+
@Override
21+
public List<UUID> getParticipants() {
22+
return List.of(disconnectedPlayer);
23+
}
24+
25+
@Override
26+
public Serializer<PartyPlayerDisconnectEvent> getSerializer() {
27+
return new Serializer<PartyPlayerDisconnectEvent>() {
28+
@Override
29+
public String serialize(PartyPlayerDisconnectEvent value) {
30+
JSONObject json = new JSONObject();
31+
json.put("disconnectedPlayer", value.disconnectedPlayer.toString());
32+
return json.toString();
33+
}
34+
35+
@Override
36+
public PartyPlayerDisconnectEvent deserialize(String json) {
37+
JSONObject jsonObject = new JSONObject(json);
38+
UUID disconnectedPlayer = UUID.fromString(jsonObject.getString("disconnectedPlayer"));
39+
return new PartyPlayerDisconnectEvent(disconnectedPlayer);
40+
}
41+
42+
@Override
43+
public PartyPlayerDisconnectEvent clone(PartyPlayerDisconnectEvent value) {
44+
return new PartyPlayerDisconnectEvent(value.disconnectedPlayer);
45+
}
46+
};
47+
}
48+
}
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
package net.swofty.commons.party.events;
2+
3+
import net.swofty.commons.party.PartyEvent;
4+
import net.swofty.commons.protocol.Serializer;
5+
import org.json.JSONObject;
6+
7+
import java.util.List;
8+
import java.util.UUID;
9+
10+
public class PartyPlayerRejoinEvent extends PartyEvent {
11+
private final UUID rejoinedPlayer;
12+
13+
public PartyPlayerRejoinEvent(UUID rejoinedPlayer) {
14+
super(null);
15+
this.rejoinedPlayer = rejoinedPlayer;
16+
}
17+
18+
public UUID getRejoinedPlayer() { return rejoinedPlayer; }
19+
20+
@Override
21+
public List<UUID> getParticipants() {
22+
return List.of(rejoinedPlayer);
23+
}
24+
25+
@Override
26+
public Serializer<PartyPlayerRejoinEvent> getSerializer() {
27+
return new Serializer<PartyPlayerRejoinEvent>() {
28+
@Override
29+
public String serialize(PartyPlayerRejoinEvent value) {
30+
JSONObject json = new JSONObject();
31+
json.put("rejoinedPlayer", value.rejoinedPlayer.toString());
32+
return json.toString();
33+
}
34+
35+
@Override
36+
public PartyPlayerRejoinEvent deserialize(String json) {
37+
JSONObject jsonObject = new JSONObject(json);
38+
UUID rejoinedPlayer = UUID.fromString(jsonObject.getString("rejoinedPlayer"));
39+
return new PartyPlayerRejoinEvent(rejoinedPlayer);
40+
}
41+
42+
@Override
43+
public PartyPlayerRejoinEvent clone(PartyPlayerRejoinEvent value) {
44+
return new PartyPlayerRejoinEvent(value.rejoinedPlayer);
45+
}
46+
};
47+
}
48+
}
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
package net.swofty.commons.party.events.response;
2+
3+
import net.swofty.commons.party.FullParty;
4+
import net.swofty.commons.party.PartyResponseEvent;
5+
import net.swofty.commons.protocol.Serializer;
6+
import org.json.JSONObject;
7+
8+
import java.util.UUID;
9+
10+
public class PartyMemberDisconnectTimeoutResponseEvent extends PartyResponseEvent {
11+
private final UUID timedOutPlayer;
12+
private final boolean wasLeader;
13+
14+
public PartyMemberDisconnectTimeoutResponseEvent(FullParty party, UUID timedOutPlayer, boolean wasLeader) {
15+
super(party);
16+
this.timedOutPlayer = timedOutPlayer;
17+
this.wasLeader = wasLeader;
18+
}
19+
20+
public UUID getTimedOutPlayer() { return timedOutPlayer; }
21+
public boolean wasLeader() { return wasLeader; }
22+
23+
@Override
24+
public Serializer<PartyMemberDisconnectTimeoutResponseEvent> getSerializer() {
25+
return new Serializer<PartyMemberDisconnectTimeoutResponseEvent>() {
26+
@Override
27+
public String serialize(PartyMemberDisconnectTimeoutResponseEvent value) {
28+
JSONObject json = new JSONObject();
29+
Serializer<FullParty> partySerializer = FullParty.getStaticSerializer();
30+
31+
json.put("party", partySerializer.serialize((FullParty) value.getParty()));
32+
json.put("timedOutPlayer", value.timedOutPlayer.toString());
33+
json.put("wasLeader", value.wasLeader);
34+
return json.toString();
35+
}
36+
37+
@Override
38+
public PartyMemberDisconnectTimeoutResponseEvent deserialize(String json) {
39+
JSONObject jsonObject = new JSONObject(json);
40+
FullParty party = FullParty.getStaticSerializer().deserialize(jsonObject.getString("party"));
41+
UUID timedOutPlayer = UUID.fromString(jsonObject.getString("timedOutPlayer"));
42+
boolean wasLeader = jsonObject.getBoolean("wasLeader");
43+
return new PartyMemberDisconnectTimeoutResponseEvent(party, timedOutPlayer, wasLeader);
44+
}
45+
46+
@Override
47+
public PartyMemberDisconnectTimeoutResponseEvent clone(PartyMemberDisconnectTimeoutResponseEvent value) {
48+
return new PartyMemberDisconnectTimeoutResponseEvent((FullParty) value.getParty(), value.timedOutPlayer, value.wasLeader);
49+
}
50+
};
51+
}
52+
}
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
package net.swofty.commons.party.events.response;
2+
3+
import net.swofty.commons.party.FullParty;
4+
import net.swofty.commons.party.PartyResponseEvent;
5+
import net.swofty.commons.protocol.Serializer;
6+
import org.json.JSONObject;
7+
8+
import java.util.UUID;
9+
10+
public class PartyMemberDisconnectedResponseEvent extends PartyResponseEvent {
11+
private final UUID disconnectedPlayer;
12+
private final long timeoutSeconds;
13+
14+
public PartyMemberDisconnectedResponseEvent(FullParty party, UUID disconnectedPlayer, long timeoutSeconds) {
15+
super(party);
16+
this.disconnectedPlayer = disconnectedPlayer;
17+
this.timeoutSeconds = timeoutSeconds;
18+
}
19+
20+
public UUID getDisconnectedPlayer() { return disconnectedPlayer; }
21+
public long getTimeoutSeconds() { return timeoutSeconds; }
22+
23+
@Override
24+
public Serializer<PartyMemberDisconnectedResponseEvent> getSerializer() {
25+
return new Serializer<PartyMemberDisconnectedResponseEvent>() {
26+
@Override
27+
public String serialize(PartyMemberDisconnectedResponseEvent value) {
28+
JSONObject json = new JSONObject();
29+
Serializer<FullParty> partySerializer = FullParty.getStaticSerializer();
30+
31+
json.put("party", partySerializer.serialize((FullParty) value.getParty()));
32+
json.put("disconnectedPlayer", value.disconnectedPlayer.toString());
33+
json.put("timeoutSeconds", value.timeoutSeconds);
34+
return json.toString();
35+
}
36+
37+
@Override
38+
public PartyMemberDisconnectedResponseEvent deserialize(String json) {
39+
JSONObject jsonObject = new JSONObject(json);
40+
FullParty party = FullParty.getStaticSerializer().deserialize(jsonObject.getString("party"));
41+
UUID disconnectedPlayer = UUID.fromString(jsonObject.getString("disconnectedPlayer"));
42+
long timeoutSeconds = jsonObject.getLong("timeoutSeconds");
43+
return new PartyMemberDisconnectedResponseEvent(party, disconnectedPlayer, timeoutSeconds);
44+
}
45+
46+
@Override
47+
public PartyMemberDisconnectedResponseEvent clone(PartyMemberDisconnectedResponseEvent value) {
48+
return new PartyMemberDisconnectedResponseEvent((FullParty) value.getParty(), value.disconnectedPlayer, value.timeoutSeconds);
49+
}
50+
};
51+
}
52+
}
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
package net.swofty.commons.party.events.response;
2+
3+
import net.swofty.commons.party.FullParty;
4+
import net.swofty.commons.party.PartyResponseEvent;
5+
import net.swofty.commons.protocol.Serializer;
6+
import org.json.JSONObject;
7+
8+
import java.util.UUID;
9+
10+
public class PartyMemberRejoinedResponseEvent extends PartyResponseEvent {
11+
private final UUID rejoinedPlayer;
12+
13+
public PartyMemberRejoinedResponseEvent(FullParty party, UUID rejoinedPlayer) {
14+
super(party);
15+
this.rejoinedPlayer = rejoinedPlayer;
16+
}
17+
18+
public UUID getRejoinedPlayer() { return rejoinedPlayer; }
19+
20+
@Override
21+
public Serializer<PartyMemberRejoinedResponseEvent> getSerializer() {
22+
return new Serializer<PartyMemberRejoinedResponseEvent>() {
23+
@Override
24+
public String serialize(PartyMemberRejoinedResponseEvent value) {
25+
JSONObject json = new JSONObject();
26+
Serializer<FullParty> partySerializer = FullParty.getStaticSerializer();
27+
28+
json.put("party", partySerializer.serialize((FullParty) value.getParty()));
29+
json.put("rejoinedPlayer", value.rejoinedPlayer.toString());
30+
return json.toString();
31+
}
32+
33+
@Override
34+
public PartyMemberRejoinedResponseEvent deserialize(String json) {
35+
JSONObject jsonObject = new JSONObject(json);
36+
FullParty party = FullParty.getStaticSerializer().deserialize(jsonObject.getString("party"));
37+
UUID rejoinedPlayer = UUID.fromString(jsonObject.getString("rejoinedPlayer"));
38+
return new PartyMemberRejoinedResponseEvent(party, rejoinedPlayer);
39+
}
40+
41+
@Override
42+
public PartyMemberRejoinedResponseEvent clone(PartyMemberRejoinedResponseEvent value) {
43+
return new PartyMemberRejoinedResponseEvent((FullParty) value.getParty(), value.rejoinedPlayer);
44+
}
45+
};
46+
}
47+
}

0 commit comments

Comments
 (0)