-
-
Notifications
You must be signed in to change notification settings - Fork 80
Expand file tree
/
Copy pathFriendToggleSettingRequestEvent.java
More file actions
57 lines (49 loc) · 1.97 KB
/
FriendToggleSettingRequestEvent.java
File metadata and controls
57 lines (49 loc) · 1.97 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
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;
import net.swofty.commons.protocol.Serializer;
import org.json.JSONObject;
import java.util.List;
import java.util.UUID;
@Getter
public class FriendToggleSettingRequestEvent extends FriendEvent {
private final UUID player;
private final FriendSettingType settingType;
@JsonCreator
public FriendToggleSettingRequestEvent(@JsonProperty("player") UUID player, @JsonProperty("settingType") FriendSettingType settingType) {
super();
this.player = player;
this.settingType = settingType;
}
@Override
public List<UUID> getParticipants() {
return List.of(player);
}
@Override
public Serializer<FriendToggleSettingRequestEvent> getSerializer() {
return new Serializer<>() {
@Override
public String serialize(FriendToggleSettingRequestEvent value) {
JSONObject json = new JSONObject();
json.put("player", value.player.toString());
json.put("settingType", value.settingType.name());
return json.toString();
}
@Override
public FriendToggleSettingRequestEvent deserialize(String json) {
JSONObject jsonObject = new JSONObject(json);
return new FriendToggleSettingRequestEvent(
UUID.fromString(jsonObject.getString("player")),
FriendSettingType.valueOf(jsonObject.getString("settingType"))
);
}
@Override
public FriendToggleSettingRequestEvent clone(FriendToggleSettingRequestEvent value) {
return new FriendToggleSettingRequestEvent(value.player, value.settingType);
}
};
}
}