summaryrefslogtreecommitdiff
path: root/shared/src/main/java/kz/ilotterytea
diff options
context:
space:
mode:
Diffstat (limited to 'shared/src/main/java/kz/ilotterytea')
-rw-r--r--shared/src/main/java/kz/ilotterytea/frogartha/FrogarthaConstants.java4
-rw-r--r--shared/src/main/java/kz/ilotterytea/frogartha/domain/RoomTopic.java5
-rw-r--r--shared/src/main/java/kz/ilotterytea/frogartha/domain/actions/JoinRoomAction.java32
-rw-r--r--shared/src/main/java/kz/ilotterytea/frogartha/domain/actions/LeaveRoomAction.java20
-rw-r--r--shared/src/main/java/kz/ilotterytea/frogartha/domain/events/IdentifiedEvent.java25
-rw-r--r--shared/src/main/java/kz/ilotterytea/frogartha/domain/events/PlayerJoinedRoomEvent.java35
-rw-r--r--shared/src/main/java/kz/ilotterytea/frogartha/domain/events/PlayerLeftRoomEvent.java25
-rw-r--r--shared/src/main/java/kz/ilotterytea/frogartha/domain/events/SenderJoinedRoomEvent.java51
-rw-r--r--shared/src/main/java/kz/ilotterytea/frogartha/domain/events/SenderLeftRoomEvent.java25
-rw-r--r--shared/src/main/java/kz/ilotterytea/frogartha/domain/server/Acknowledge.java42
-rw-r--r--shared/src/main/java/kz/ilotterytea/frogartha/exceptions/PlayerKickException.java8
-rw-r--r--shared/src/main/java/kz/ilotterytea/frogartha/utils/SerializerUtils.java16
12 files changed, 242 insertions, 46 deletions
diff --git a/shared/src/main/java/kz/ilotterytea/frogartha/FrogarthaConstants.java b/shared/src/main/java/kz/ilotterytea/frogartha/FrogarthaConstants.java
index d5cdb06..84dc6b0 100644
--- a/shared/src/main/java/kz/ilotterytea/frogartha/FrogarthaConstants.java
+++ b/shared/src/main/java/kz/ilotterytea/frogartha/FrogarthaConstants.java
@@ -10,4 +10,8 @@ public class FrogarthaConstants {
public static final float MAX_JUMP_HEIGHT = 2f;
public static final float JUMP_SPEED = 10f;
}
+
+ public static class Room {
+ public static final int MAX_PLAYERS = 30;
+ }
}
diff --git a/shared/src/main/java/kz/ilotterytea/frogartha/domain/RoomTopic.java b/shared/src/main/java/kz/ilotterytea/frogartha/domain/RoomTopic.java
new file mode 100644
index 0000000..5b2f47e
--- /dev/null
+++ b/shared/src/main/java/kz/ilotterytea/frogartha/domain/RoomTopic.java
@@ -0,0 +1,5 @@
+package kz.ilotterytea.frogartha.domain;
+
+public enum RoomTopic {
+ POND
+}
diff --git a/shared/src/main/java/kz/ilotterytea/frogartha/domain/actions/JoinRoomAction.java b/shared/src/main/java/kz/ilotterytea/frogartha/domain/actions/JoinRoomAction.java
new file mode 100644
index 0000000..fa19d27
--- /dev/null
+++ b/shared/src/main/java/kz/ilotterytea/frogartha/domain/actions/JoinRoomAction.java
@@ -0,0 +1,32 @@
+package kz.ilotterytea.frogartha.domain.actions;
+
+import com.github.czyzby.websocket.serialization.SerializationException;
+import com.github.czyzby.websocket.serialization.Transferable;
+import com.github.czyzby.websocket.serialization.impl.Deserializer;
+import com.github.czyzby.websocket.serialization.impl.Serializer;
+import kz.ilotterytea.frogartha.domain.RoomTopic;
+
+public class JoinRoomAction implements Transferable<JoinRoomAction> {
+ private RoomTopic topic;
+
+ public JoinRoomAction() {
+ }
+
+ public JoinRoomAction(RoomTopic topic) {
+ this.topic = topic;
+ }
+
+ public RoomTopic getTopic() {
+ return topic;
+ }
+
+ @Override
+ public void serialize(Serializer serializer) throws SerializationException {
+ serializer.serializeInt(topic.ordinal());
+ }
+
+ @Override
+ public JoinRoomAction deserialize(Deserializer deserializer) throws SerializationException {
+ return new JoinRoomAction(RoomTopic.values()[deserializer.deserializeInt()]);
+ }
+}
diff --git a/shared/src/main/java/kz/ilotterytea/frogartha/domain/actions/LeaveRoomAction.java b/shared/src/main/java/kz/ilotterytea/frogartha/domain/actions/LeaveRoomAction.java
new file mode 100644
index 0000000..2ae304a
--- /dev/null
+++ b/shared/src/main/java/kz/ilotterytea/frogartha/domain/actions/LeaveRoomAction.java
@@ -0,0 +1,20 @@
+package kz.ilotterytea.frogartha.domain.actions;
+
+import com.github.czyzby.websocket.serialization.SerializationException;
+import com.github.czyzby.websocket.serialization.Transferable;
+import com.github.czyzby.websocket.serialization.impl.Deserializer;
+import com.github.czyzby.websocket.serialization.impl.Serializer;
+
+public class LeaveRoomAction implements Transferable<LeaveRoomAction> {
+ public LeaveRoomAction() {
+ }
+
+ @Override
+ public void serialize(Serializer serializer) throws SerializationException {
+ }
+
+ @Override
+ public LeaveRoomAction deserialize(Deserializer deserializer) throws SerializationException {
+ return new LeaveRoomAction();
+ }
+}
diff --git a/shared/src/main/java/kz/ilotterytea/frogartha/domain/events/IdentifiedEvent.java b/shared/src/main/java/kz/ilotterytea/frogartha/domain/events/IdentifiedEvent.java
new file mode 100644
index 0000000..d2d9e1e
--- /dev/null
+++ b/shared/src/main/java/kz/ilotterytea/frogartha/domain/events/IdentifiedEvent.java
@@ -0,0 +1,25 @@
+package kz.ilotterytea.frogartha.domain.events;
+
+import com.github.czyzby.websocket.serialization.SerializationException;
+import com.github.czyzby.websocket.serialization.Transferable;
+import com.github.czyzby.websocket.serialization.impl.Deserializer;
+import com.github.czyzby.websocket.serialization.impl.Serializer;
+
+public class IdentifiedEvent extends Event implements Transferable<IdentifiedEvent> {
+ public IdentifiedEvent() {
+ }
+
+ public IdentifiedEvent(int playerId) {
+ this.playerId = playerId;
+ }
+
+ @Override
+ public void serialize(Serializer serializer) throws SerializationException {
+ serializer.serializeInt(playerId);
+ }
+
+ @Override
+ public IdentifiedEvent deserialize(Deserializer deserializer) throws SerializationException {
+ return new IdentifiedEvent(deserializer.deserializeInt());
+ }
+}
diff --git a/shared/src/main/java/kz/ilotterytea/frogartha/domain/events/PlayerJoinedRoomEvent.java b/shared/src/main/java/kz/ilotterytea/frogartha/domain/events/PlayerJoinedRoomEvent.java
new file mode 100644
index 0000000..f9389a3
--- /dev/null
+++ b/shared/src/main/java/kz/ilotterytea/frogartha/domain/events/PlayerJoinedRoomEvent.java
@@ -0,0 +1,35 @@
+package kz.ilotterytea.frogartha.domain.events;
+
+import com.github.czyzby.websocket.serialization.SerializationException;
+import com.github.czyzby.websocket.serialization.Transferable;
+import com.github.czyzby.websocket.serialization.impl.Deserializer;
+import com.github.czyzby.websocket.serialization.impl.Serializer;
+import kz.ilotterytea.frogartha.domain.PlayerData;
+
+public class PlayerJoinedRoomEvent extends Event implements Transferable<PlayerJoinedRoomEvent> {
+ private PlayerData data;
+
+ public PlayerJoinedRoomEvent() {
+ }
+
+ public PlayerJoinedRoomEvent(int playerId, PlayerData data) {
+ super(playerId);
+ this.data = data;
+ }
+
+ public PlayerData getData() {
+ return data;
+ }
+
+ @Override
+ public void serialize(Serializer serializer) throws SerializationException {
+ serializer
+ .serializeInt(playerId)
+ .serializeTransferable(data);
+ }
+
+ @Override
+ public PlayerJoinedRoomEvent deserialize(Deserializer deserializer) throws SerializationException {
+ return new PlayerJoinedRoomEvent(deserializer.deserializeInt(), deserializer.deserializeTransferable(new PlayerData()));
+ }
+}
diff --git a/shared/src/main/java/kz/ilotterytea/frogartha/domain/events/PlayerLeftRoomEvent.java b/shared/src/main/java/kz/ilotterytea/frogartha/domain/events/PlayerLeftRoomEvent.java
new file mode 100644
index 0000000..5472e95
--- /dev/null
+++ b/shared/src/main/java/kz/ilotterytea/frogartha/domain/events/PlayerLeftRoomEvent.java
@@ -0,0 +1,25 @@
+package kz.ilotterytea.frogartha.domain.events;
+
+import com.github.czyzby.websocket.serialization.SerializationException;
+import com.github.czyzby.websocket.serialization.Transferable;
+import com.github.czyzby.websocket.serialization.impl.Deserializer;
+import com.github.czyzby.websocket.serialization.impl.Serializer;
+
+public class PlayerLeftRoomEvent extends Event implements Transferable<PlayerLeftRoomEvent> {
+ public PlayerLeftRoomEvent() {
+ }
+
+ public PlayerLeftRoomEvent(int playerId) {
+ super(playerId);
+ }
+
+ @Override
+ public void serialize(Serializer serializer) throws SerializationException {
+ serializer.serializeInt(playerId);
+ }
+
+ @Override
+ public PlayerLeftRoomEvent deserialize(Deserializer deserializer) throws SerializationException {
+ return new PlayerLeftRoomEvent(deserializer.deserializeInt());
+ }
+}
diff --git a/shared/src/main/java/kz/ilotterytea/frogartha/domain/events/SenderJoinedRoomEvent.java b/shared/src/main/java/kz/ilotterytea/frogartha/domain/events/SenderJoinedRoomEvent.java
new file mode 100644
index 0000000..b032c47
--- /dev/null
+++ b/shared/src/main/java/kz/ilotterytea/frogartha/domain/events/SenderJoinedRoomEvent.java
@@ -0,0 +1,51 @@
+package kz.ilotterytea.frogartha.domain.events;
+
+import com.github.czyzby.websocket.serialization.SerializationException;
+import com.github.czyzby.websocket.serialization.Transferable;
+import com.github.czyzby.websocket.serialization.impl.Deserializer;
+import com.github.czyzby.websocket.serialization.impl.Serializer;
+import kz.ilotterytea.frogartha.domain.PlayerData;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.stream.Collectors;
+
+public class SenderJoinedRoomEvent extends Event implements Transferable<SenderJoinedRoomEvent> {
+ private List<Integer> ids;
+ private List<PlayerData> players;
+
+ public SenderJoinedRoomEvent() {
+ }
+
+ public SenderJoinedRoomEvent(int playerId, List<Integer> ids, List<PlayerData> players) {
+ super(playerId);
+ this.ids = ids;
+ this.players = players;
+ }
+
+ public List<Integer> getIds() {
+ return ids;
+ }
+
+ public List<PlayerData> getPlayers() {
+ return players;
+ }
+
+ @Override
+ public void serialize(Serializer serializer) throws SerializationException {
+ serializer.serializeInt(playerId)
+ .serializeIntArray(ids.stream().mapToInt(Integer::intValue).toArray())
+ .serializeTransferableArray(players.toArray(new PlayerData[]{}));
+ }
+
+ @Override
+ public SenderJoinedRoomEvent deserialize(Deserializer deserializer) throws SerializationException {
+ List<Integer> ids = Arrays.stream(deserializer.deserializeIntArray()).boxed().collect(Collectors.toList());
+ return new SenderJoinedRoomEvent(
+ deserializer.deserializeInt(),
+ new ArrayList<>(ids),
+ new ArrayList<>(Arrays.asList(deserializer.deserializeTransferableArray(new PlayerData(), size -> new PlayerData[ids.size()])))
+ );
+ }
+}
diff --git a/shared/src/main/java/kz/ilotterytea/frogartha/domain/events/SenderLeftRoomEvent.java b/shared/src/main/java/kz/ilotterytea/frogartha/domain/events/SenderLeftRoomEvent.java
new file mode 100644
index 0000000..2c2b35b
--- /dev/null
+++ b/shared/src/main/java/kz/ilotterytea/frogartha/domain/events/SenderLeftRoomEvent.java
@@ -0,0 +1,25 @@
+package kz.ilotterytea.frogartha.domain.events;
+
+import com.github.czyzby.websocket.serialization.SerializationException;
+import com.github.czyzby.websocket.serialization.Transferable;
+import com.github.czyzby.websocket.serialization.impl.Deserializer;
+import com.github.czyzby.websocket.serialization.impl.Serializer;
+
+public class SenderLeftRoomEvent extends Event implements Transferable<SenderLeftRoomEvent> {
+ public SenderLeftRoomEvent() {
+ }
+
+ public SenderLeftRoomEvent(int playerId) {
+ super(playerId);
+ }
+
+ @Override
+ public void serialize(Serializer serializer) throws SerializationException {
+ serializer.serializeInt(playerId);
+ }
+
+ @Override
+ public SenderLeftRoomEvent deserialize(Deserializer deserializer) throws SerializationException {
+ return new SenderLeftRoomEvent(deserializer.deserializeInt());
+ }
+}
diff --git a/shared/src/main/java/kz/ilotterytea/frogartha/domain/server/Acknowledge.java b/shared/src/main/java/kz/ilotterytea/frogartha/domain/server/Acknowledge.java
deleted file mode 100644
index 8ca0f66..0000000
--- a/shared/src/main/java/kz/ilotterytea/frogartha/domain/server/Acknowledge.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package kz.ilotterytea.frogartha.domain.server;
-
-import com.github.czyzby.websocket.serialization.SerializationException;
-import com.github.czyzby.websocket.serialization.Transferable;
-import com.github.czyzby.websocket.serialization.impl.Deserializer;
-import com.github.czyzby.websocket.serialization.impl.Serializer;
-
-public class Acknowledge implements Transferable<Acknowledge> {
- public enum AcknowledgeCode {
- IDENTIFIED
- }
-
- private AcknowledgeCode code;
-
- public Acknowledge() {
- }
-
- public Acknowledge(AcknowledgeCode code) {
- this.code = code;
- }
-
- public AcknowledgeCode getCode() {
- return code;
- }
-
- @Override
- public String toString() {
- return "Acknowledge{" +
- "code=" + code.toString() +
- '}';
- }
-
- @Override
- public void serialize(Serializer serializer) throws SerializationException {
- serializer.serializeInt(code.ordinal());
- }
-
- @Override
- public Acknowledge deserialize(Deserializer deserializer) throws SerializationException {
- return new Acknowledge(AcknowledgeCode.values()[deserializer.deserializeInt()]);
- }
-}
diff --git a/shared/src/main/java/kz/ilotterytea/frogartha/exceptions/PlayerKickException.java b/shared/src/main/java/kz/ilotterytea/frogartha/exceptions/PlayerKickException.java
index ec0deb4..ad9c408 100644
--- a/shared/src/main/java/kz/ilotterytea/frogartha/exceptions/PlayerKickException.java
+++ b/shared/src/main/java/kz/ilotterytea/frogartha/exceptions/PlayerKickException.java
@@ -25,6 +25,14 @@ public class PlayerKickException extends RuntimeException implements Transferabl
return new PlayerKickException("Kicked for jump spamming");
}
+ public static PlayerKickException illegalOperation() {
+ return new PlayerKickException("Illegal operation");
+ }
+
+ public static PlayerKickException notInRoom() {
+ return new PlayerKickException("You are not in room");
+ }
+
@Override
public void serialize(Serializer serializer) throws SerializationException {
serializer.serializeString(getMessage());
diff --git a/shared/src/main/java/kz/ilotterytea/frogartha/utils/SerializerUtils.java b/shared/src/main/java/kz/ilotterytea/frogartha/utils/SerializerUtils.java
index 2df2acf..e005937 100644
--- a/shared/src/main/java/kz/ilotterytea/frogartha/utils/SerializerUtils.java
+++ b/shared/src/main/java/kz/ilotterytea/frogartha/utils/SerializerUtils.java
@@ -3,20 +3,28 @@ package kz.ilotterytea.frogartha.utils;
import com.github.czyzby.websocket.serialization.impl.ManualSerializer;
import kz.ilotterytea.frogartha.domain.Identity;
import kz.ilotterytea.frogartha.domain.actions.ChangedDirectionAction;
+import kz.ilotterytea.frogartha.domain.actions.JoinRoomAction;
+import kz.ilotterytea.frogartha.domain.actions.LeaveRoomAction;
import kz.ilotterytea.frogartha.domain.actions.PlayerJumpAction;
-import kz.ilotterytea.frogartha.domain.events.ChangedDirectionEvent;
-import kz.ilotterytea.frogartha.domain.events.PlayerJumpEvent;
-import kz.ilotterytea.frogartha.domain.server.Acknowledge;
+import kz.ilotterytea.frogartha.domain.events.*;
import kz.ilotterytea.frogartha.exceptions.PlayerKickException;
public class SerializerUtils {
public static void registerTypes(ManualSerializer serializer) {
- serializer.register(new Acknowledge());
serializer.register(new Identity());
serializer.register(new PlayerKickException());
serializer.register(new PlayerJumpAction());
serializer.register(new PlayerJumpEvent());
serializer.register(new ChangedDirectionAction());
serializer.register(new ChangedDirectionEvent());
+ serializer.register(new IdentifiedEvent());
+
+ serializer.register(new JoinRoomAction());
+ serializer.register(new PlayerJoinedRoomEvent());
+ serializer.register(new SenderJoinedRoomEvent());
+
+ serializer.register(new LeaveRoomAction());
+ serializer.register(new PlayerLeftRoomEvent());
+ serializer.register(new SenderLeftRoomEvent());
}
}