diff options
| author | Mike Vink <mike1994vink@gmail.com> | 2021-08-03 19:06:15 +0200 |
|---|---|---|
| committer | Mike Vink <mike1994vink@gmail.com> | 2021-08-03 19:06:15 +0200 |
| commit | 4852e6c08a0dd759a60b34b0d03c1f1eedc23805 (patch) | |
| tree | 918ac17d0d933adb649fe757c0ef8cb922e29e17 /api | |
| parent | 7c3249f9c13551840fc4c48abaa06fbbf377d481 (diff) | |
feat(battle): to-trip fightrequest
Diffstat (limited to 'api')
| -rw-r--r-- | api/src/main/java/akkamon/api/MessagingEngine.java | 27 | ||||
| -rw-r--r-- | api/src/main/java/akkamon/api/models/BattleRequestBody.java | 5 | ||||
| -rw-r--r-- | api/src/main/java/akkamon/api/models/Event.java | 21 | ||||
| -rw-r--r-- | api/src/main/java/akkamon/api/models/EventType.java | 7 | ||||
| -rw-r--r-- | api/src/main/java/akkamon/api/models/battle/BattleInitEvent.java (renamed from api/src/main/java/akkamon/api/models/BattleInitEvent.java) | 4 | ||||
| -rw-r--r-- | api/src/main/java/akkamon/api/models/outgoing/HeartBeatEvent.java (renamed from api/src/main/java/akkamon/api/models/HeartBeatEvent.java) | 4 | ||||
| -rw-r--r-- | api/src/main/java/akkamon/api/models/outgoing/InteractionStartEvent.java (renamed from api/src/main/java/akkamon/api/models/InteractionStartEvent.java) | 4 | ||||
| -rw-r--r-- | api/src/main/java/akkamon/api/models/outgoing/OutgoingInteractionRequest.java (renamed from api/src/main/java/akkamon/api/models/OutgoingInteractionRequest.java) | 4 |
8 files changed, 60 insertions, 16 deletions
diff --git a/api/src/main/java/akkamon/api/MessagingEngine.java b/api/src/main/java/akkamon/api/MessagingEngine.java index aa559d0..0ac07fd 100644 --- a/api/src/main/java/akkamon/api/MessagingEngine.java +++ b/api/src/main/java/akkamon/api/MessagingEngine.java @@ -3,12 +3,19 @@ package akkamon.api; import akka.actor.typed.ActorRef; import akka.actor.typed.ActorSystem; import akkamon.api.models.*; +import akkamon.api.models.battle.BattleInitEvent; +import akkamon.api.models.outgoing.HeartBeatEvent; +import akkamon.api.models.outgoing.InteractionStartEvent; +import akkamon.api.models.outgoing.OutgoingInteractionRequest; import akkamon.domain.AkkamonMessageEngine; import akkamon.domain.actors.AkkamonBattle; import akkamon.domain.actors.AkkamonNexus; import akkamon.domain.AkkamonSession; -import akkamon.domain.InteractionHandshaker; +import akkamon.domain.actors.tasks.interactions.InteractionHandshaker; +import akkamon.domain.model.akkamon.Mon; +import akkamon.domain.model.battle.requests.JsonToMove; import com.google.gson.Gson; +import com.google.gson.GsonBuilder; import java.util.*; import java.util.concurrent.ScheduledThreadPoolExecutor; @@ -23,7 +30,9 @@ public class MessagingEngine implements AkkamonMessageEngine { private Map<AkkamonNexus.TrainerID, AkkamonSession> trainerIDToAkkamonSessions = new HashMap<>(); private Map<String, ActorRef<InteractionHandshaker.Command>> pendingInteractioRequestToHandshaker = new HashMap<>(); - private Gson gson = new Gson(); + private final Gson gson = new GsonBuilder() + .registerTypeAdapter(Mon.Move.class, new JsonToMove()) + .create(); public MessagingEngine() { this.nexus = ActorSystem.create(AkkamonNexus.create(this), "akkamon-system"); @@ -198,7 +207,13 @@ public class MessagingEngine implements AkkamonMessageEngine { } } + @Override + public void removeTrainerSessionFromHeartBeat(AkkamonNexus.TrainerID trainerID, AkkamonSession session) { + trainerIDToAkkamonSessions.remove(trainerID); + } + void incoming(AkkamonSession session, String message) { + // System.out.println(message); Event event = gson.fromJson(message, Event.class); if (event == null) { System.out.println("Received non-supported message DTO."); @@ -263,6 +278,14 @@ public class MessagingEngine implements AkkamonMessageEngine { nexus )); break; + case BATTLE_ACTION_REQUEST: + nexus.tell( + new AkkamonBattle.RequestAction( + event.trainerID, + event.body + ) + ); + break; case HEART_BEAT: //System.out.println("My <3 beats!"); break; diff --git a/api/src/main/java/akkamon/api/models/BattleRequestBody.java b/api/src/main/java/akkamon/api/models/BattleRequestBody.java deleted file mode 100644 index 2a1a423..0000000 --- a/api/src/main/java/akkamon/api/models/BattleRequestBody.java +++ /dev/null @@ -1,5 +0,0 @@ -package akkamon.api.models; - -public class BattleRequestBody { - public -} diff --git a/api/src/main/java/akkamon/api/models/Event.java b/api/src/main/java/akkamon/api/models/Event.java index 7ee3ee1..1c9dcc4 100644 --- a/api/src/main/java/akkamon/api/models/Event.java +++ b/api/src/main/java/akkamon/api/models/Event.java @@ -1,8 +1,9 @@ package akkamon.api.models; +import akkamon.domain.model.battle.requests.BattleRequestBody; import akkamon.domain.actors.AkkamonNexus; -import akkamon.domain.Direction; -import akkamon.domain.TilePos; +import akkamon.domain.actors.tasks.heartbeat.Direction; +import akkamon.domain.actors.tasks.heartbeat.TilePos; public class Event { public EventType type; @@ -12,5 +13,19 @@ public class Event { public Interaction interaction; public String requestName; public boolean value; - public BattleRequestBody battleRequestBody; + public BattleRequestBody body; + + @Override + public String toString() { + return "Event{" + + "type=" + type + + ", trainerID=" + trainerID + + ", direction=" + direction + + ", tilePos=" + tilePos + + ", interaction=" + interaction + + ", requestName='" + requestName + '\'' + + ", value=" + value + + ", body=" + body + + '}'; + } } diff --git a/api/src/main/java/akkamon/api/models/EventType.java b/api/src/main/java/akkamon/api/models/EventType.java index 497da49..295eb4c 100644 --- a/api/src/main/java/akkamon/api/models/EventType.java +++ b/api/src/main/java/akkamon/api/models/EventType.java @@ -30,10 +30,13 @@ public enum EventType { @SerializedName("InteractionReplyEvent") INTERACTION_REPLY, + @SerializedName("InteractionStarting") + INTERACTION_START, + @SerializedName("BattleInitEvent") BATTLE_INIT, - @SerializedName("InteractionStarting") - INTERACTION_START + @SerializedName("BattleActionRequest") + BATTLE_ACTION_REQUEST, } diff --git a/api/src/main/java/akkamon/api/models/BattleInitEvent.java b/api/src/main/java/akkamon/api/models/battle/BattleInitEvent.java index c0f2fbe..2755155 100644 --- a/api/src/main/java/akkamon/api/models/BattleInitEvent.java +++ b/api/src/main/java/akkamon/api/models/battle/BattleInitEvent.java @@ -1,5 +1,7 @@ -package akkamon.api.models; +package akkamon.api.models.battle; +import akkamon.api.models.Event; +import akkamon.api.models.EventType; import akkamon.domain.actors.AkkamonNexus; import akkamon.domain.model.battle.BattleMessage; import akkamon.domain.model.battle.state.BattleState; diff --git a/api/src/main/java/akkamon/api/models/HeartBeatEvent.java b/api/src/main/java/akkamon/api/models/outgoing/HeartBeatEvent.java index 2ec98ad..24cf357 100644 --- a/api/src/main/java/akkamon/api/models/HeartBeatEvent.java +++ b/api/src/main/java/akkamon/api/models/outgoing/HeartBeatEvent.java @@ -1,5 +1,7 @@ -package akkamon.api.models; +package akkamon.api.models.outgoing; +import akkamon.api.models.Event; +import akkamon.api.models.EventType; import akkamon.domain.actors.AkkamonNexus; import java.util.Map; diff --git a/api/src/main/java/akkamon/api/models/InteractionStartEvent.java b/api/src/main/java/akkamon/api/models/outgoing/InteractionStartEvent.java index ce00437..acb6365 100644 --- a/api/src/main/java/akkamon/api/models/InteractionStartEvent.java +++ b/api/src/main/java/akkamon/api/models/outgoing/InteractionStartEvent.java @@ -1,5 +1,7 @@ -package akkamon.api.models; +package akkamon.api.models.outgoing; +import akkamon.api.models.Event; +import akkamon.api.models.EventType; import com.google.gson.JsonElement; public class InteractionStartEvent extends Event { diff --git a/api/src/main/java/akkamon/api/models/OutgoingInteractionRequest.java b/api/src/main/java/akkamon/api/models/outgoing/OutgoingInteractionRequest.java index 9360384..4a9d021 100644 --- a/api/src/main/java/akkamon/api/models/OutgoingInteractionRequest.java +++ b/api/src/main/java/akkamon/api/models/outgoing/OutgoingInteractionRequest.java @@ -1,5 +1,7 @@ -package akkamon.api.models; +package akkamon.api.models.outgoing; +import akkamon.api.models.Event; +import akkamon.api.models.EventType; import akkamon.domain.actors.AkkamonNexus; public class OutgoingInteractionRequest extends Event { |
