2017-07-08 14:33:09 +00:00
|
|
|
|
|
|
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
|
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
|
|
|
|
|
|
|
<modelVersion>4.0.0</modelVersion>
|
|
|
|
|
|
|
|
<parent>
|
|
|
|
<groupId>org.mage</groupId>
|
|
|
|
<artifactId>mage-root</artifactId>
|
2020-12-19 19:59:44 +00:00
|
|
|
<version>1.4.47</version>
|
2017-07-08 14:33:09 +00:00
|
|
|
</parent>
|
|
|
|
|
|
|
|
<artifactId>mage-common</artifactId>
|
|
|
|
<packaging>jar</packaging>
|
|
|
|
<name>Mage Common Classes</name>
|
|
|
|
|
|
|
|
<dependencies>
|
|
|
|
<dependency>
|
|
|
|
<groupId>${project.groupId}</groupId>
|
|
|
|
<artifactId>mage</artifactId>
|
|
|
|
<version>${project.version}</version>
|
|
|
|
</dependency>
|
|
|
|
<dependency>
|
|
|
|
<groupId>com.googlecode.jspf</groupId>
|
|
|
|
<artifactId>jspf-core</artifactId>
|
|
|
|
<version>0.9.1</version>
|
|
|
|
</dependency>
|
[WIP] Consumable JSON game logs
As discussed in https://github.com/magefree/mage/issues/4515
This exposes a JSON log of game interactions that can be analyzed.
This is just a first pass, to get up to speed with how the messaging works. It'd like to trim down the messages much
further so they don't include redundant information in each message. Also gson supports much more advances serialization
options; such as using the @Expose annotation. We should probably use that, but I ran into some issues (I'm not a java
developer, so still learning).
TODO:
These currently only exist on the client side; ideally we'd submit this logs back up to a central server after the
games completion; thinking this could be simple via an S3 file drop, and a Lambda function to process and expose the
logs; maybe via a kafka stream.
Examples of log messages are below:
```
{
"gameId": "2cede8c5-ff8e-4f8c-b9ac-66af53c0a254",
"sessionId": "5c4o149-678483-je42ycva-1-je42ycw2-4",
"type": "GAME_SELECT",
"value": {
"gameView": {
"priorityTime": 3000,
"players": [
{
"name": "computer",
"life": 20,
"counters": {}
},
{
"name": "hooptie",
"life": 20,
"counters": {}
}
],
"hand": {
"425d774f-ee0c-4a9b-8516-c98f886943f0": {
"name": "Springleaf Drum",
"power": "0",
"toughness": "0",
"loyalty": "",
"manaCost": [
"{1}"
],
"convertedManaCost": 1,
"type": 0,
"paid": false,
"id": "425d774f-ee0c-4a9b-8516-c98f886943f0"
},
"dd41bb4b-7fc3-4a3c-a69c-d18e281a1bff": {
"name": "Blade of the Bloodchief",
"power": "0",
"toughness": "0",
"loyalty": "",
"manaCost": [
"{1}"
],
"convertedManaCost": 1,
"type": 0,
"paid": false,
"id": "dd41bb4b-7fc3-4a3c-a69c-d18e281a1bff"
},
"06eb0a6c-1e70-4dc0-bd1c-93b6ea444806": {
"name": "Ornithopter",
"power": "0",
"toughness": "2",
"loyalty": "",
"manaCost": [
"{0}"
],
"convertedManaCost": 0,
"type": 0,
"paid": false,
"id": "06eb0a6c-1e70-4dc0-bd1c-93b6ea444806"
},
"a2f9cc13-e71a-4c9c-96aa-5424ea1a6b64": {
"name": "Springleaf Drum",
"power": "0",
"toughness": "0",
"loyalty": "",
"manaCost": [
"{1}"
],
"convertedManaCost": 1,
"type": 0,
"paid": false,
"id": "a2f9cc13-e71a-4c9c-96aa-5424ea1a6b64"
},
"91239f4f-9003-4c48-8ca1-4c318f892489": {
"name": "Cranial Plating",
"power": "0",
"toughness": "0",
"loyalty": "",
"manaCost": [
"{2}"
],
"convertedManaCost": 2,
"type": 0,
"paid": false,
"id": "91239f4f-9003-4c48-8ca1-4c318f892489"
},
"feb268d8-0535-4a9c-8915-83dd92a08c4c": {
"name": "Arcbound Ravager",
"power": "0",
"toughness": "0",
"loyalty": "",
"manaCost": [
"{2}"
],
"convertedManaCost": 2,
"type": 0,
"paid": false,
"id": "feb268d8-0535-4a9c-8915-83dd92a08c4c"
}
},
"canPlayInHand": [
"06eb0a6c-1e70-4dc0-bd1c-93b6ea444806"
],
"stack": {},
"combat": [],
"phase": "PRECOMBAT_MAIN",
"step": "PRECOMBAT_MAIN"
},
"message": "Play spells and abilities.",
"options": {
"queryType": "SELECT"
}
}
}
{
"gameId": "2cede8c5-ff8e-4f8c-b9ac-66af53c0a254",
"sessionId": "5c4o149-678483-je42ycva-1-je42ycw2-4",
"type": "SEND_PLAYER_UUID",
"value": "06eb0a6c-1e70-4dc0-bd1c-93b6ea444806"
}
{
"gameId": "2cede8c5-ff8e-4f8c-b9ac-66af53c0a254",
"sessionId": "5c4o149-678483-je42ycva-1-je42ycw2-4",
"type": "GAME_CHOOSE_PILE",
"value": {
"choices": {
"1ecf8671-be4c-4060-a76b-af614235a5b7": "Cast Ornithopter"
}
}
}
{
"gameId": "2cede8c5-ff8e-4f8c-b9ac-66af53c0a254",
"sessionId": "5c4o149-3v2cj2-je43178o-1-je43179f-4",
"type": "GAME_INIT",
"value": {
"priorityTime": 3000,
"players": [
{
"name": "computer",
"life": 20,
"counters": {}
},
{
"name": "hooptie",
"life": 20,
"counters": {}
}
],
"hand": {
"425d774f-ee0c-4a9b-8516-c98f886943f0": {
"name": "Springleaf Drum",
"power": "0",
"toughness": "0",
"loyalty": "",
"manaCost": [
"{1}"
],
"convertedManaCost": 1,
"type": 0,
"paid": false,
"id": "425d774f-ee0c-4a9b-8516-c98f886943f0"
},
"dd41bb4b-7fc3-4a3c-a69c-d18e281a1bff": {
"name": "Blade of the Bloodchief",
"power": "0",
"toughness": "0",
"loyalty": "",
"manaCost": [
"{1}"
],
"convertedManaCost": 1,
"type": 0,
"paid": false,
"id": "dd41bb4b-7fc3-4a3c-a69c-d18e281a1bff"
},
"06eb0a6c-1e70-4dc0-bd1c-93b6ea444806": {
"name": "Ornithopter",
"power": "0",
"toughness": "2",
"loyalty": "",
"manaCost": [
"{0}"
],
"convertedManaCost": 0,
"type": 0,
"paid": false,
"id": "06eb0a6c-1e70-4dc0-bd1c-93b6ea444806"
},
"a2f9cc13-e71a-4c9c-96aa-5424ea1a6b64": {
"name": "Springleaf Drum",
"power": "0",
"toughness": "0",
"loyalty": "",
"manaCost": [
"{1}"
],
"convertedManaCost": 1,
"type": 0,
"paid": false,
"id": "a2f9cc13-e71a-4c9c-96aa-5424ea1a6b64"
},
"91239f4f-9003-4c48-8ca1-4c318f892489": {
"name": "Cranial Plating",
"power": "0",
"toughness": "0",
"loyalty": "",
"manaCost": [
"{2}"
],
"convertedManaCost": 2,
"type": 0,
"paid": false,
"id": "91239f4f-9003-4c48-8ca1-4c318f892489"
},
"feb268d8-0535-4a9c-8915-83dd92a08c4c": {
"name": "Arcbound Ravager",
"power": "0",
"toughness": "0",
"loyalty": "",
"manaCost": [
"{2}"
],
"convertedManaCost": 2,
"type": 0,
"paid": false,
"id": "feb268d8-0535-4a9c-8915-83dd92a08c4c"
}
},
"canPlayInHand": [
"06eb0a6c-1e70-4dc0-bd1c-93b6ea444806"
],
"stack": {},
"combat": [],
"phase": "PRECOMBAT_MAIN",
"step": "PRECOMBAT_MAIN"
}
}
{
"gameId": "2cede8c5-ff8e-4f8c-b9ac-66af53c0a254",
"sessionId": "5c4o149-3v2cj2-je43178o-1-je43179f-4",
"type": "GAME_SELECT",
"value": {
"gameView": {
"priorityTime": 3000,
"players": [
{
"name": "computer",
"life": 20,
"counters": {}
},
{
"name": "hooptie",
"life": 20,
"counters": {}
}
],
"hand": {
"425d774f-ee0c-4a9b-8516-c98f886943f0": {
"name": "Springleaf Drum",
"power": "0",
"toughness": "0",
"loyalty": "",
"manaCost": [
"{1}"
],
"convertedManaCost": 1,
"type": 0,
"paid": false,
"id": "425d774f-ee0c-4a9b-8516-c98f886943f0"
},
"dd41bb4b-7fc3-4a3c-a69c-d18e281a1bff": {
"name": "Blade of the Bloodchief",
"power": "0",
"toughness": "0",
"loyalty": "",
"manaCost": [
"{1}"
],
"convertedManaCost": 1,
"type": 0,
"paid": false,
"id": "dd41bb4b-7fc3-4a3c-a69c-d18e281a1bff"
},
"06eb0a6c-1e70-4dc0-bd1c-93b6ea444806": {
"name": "Ornithopter",
"power": "0",
"toughness": "2",
"loyalty": "",
"manaCost": [
"{0}"
],
"convertedManaCost": 0,
"type": 0,
"paid": false,
"id": "06eb0a6c-1e70-4dc0-bd1c-93b6ea444806"
},
"a2f9cc13-e71a-4c9c-96aa-5424ea1a6b64": {
"name": "Springleaf Drum",
"power": "0",
"toughness": "0",
"loyalty": "",
"manaCost": [
"{1}"
],
"convertedManaCost": 1,
"type": 0,
"paid": false,
"id": "a2f9cc13-e71a-4c9c-96aa-5424ea1a6b64"
},
"91239f4f-9003-4c48-8ca1-4c318f892489": {
"name": "Cranial Plating",
"power": "0",
"toughness": "0",
"loyalty": "",
"manaCost": [
"{2}"
],
"convertedManaCost": 2,
"type": 0,
"paid": false,
"id": "91239f4f-9003-4c48-8ca1-4c318f892489"
},
"feb268d8-0535-4a9c-8915-83dd92a08c4c": {
"name": "Arcbound Ravager",
"power": "0",
"toughness": "0",
"loyalty": "",
"manaCost": [
"{2}"
],
"convertedManaCost": 2,
"type": 0,
"paid": false,
"id": "feb268d8-0535-4a9c-8915-83dd92a08c4c"
}
},
"canPlayInHand": [
"06eb0a6c-1e70-4dc0-bd1c-93b6ea444806"
],
"stack": {},
"combat": [],
"phase": "PRECOMBAT_MAIN",
"step": "PRECOMBAT_MAIN"
},
"message": "Play spells and abilities.",
"options": {
"queryType": "SELECT"
}
}
}
{
"gameId": "2cede8c5-ff8e-4f8c-b9ac-66af53c0a254",
"sessionId": "5c4o149-678483-je42ycva-1-je42ycw2-4",
"type": "SEND_PLAYER_UUID",
"value": "1ecf8671-be4c-4060-a76b-af614235a5b7"
}
```
2018-02-27 00:23:00 +00:00
|
|
|
|
2017-07-08 14:33:09 +00:00
|
|
|
<dependency>
|
|
|
|
<groupId>org.jboss.remoting</groupId>
|
|
|
|
<artifactId>jboss-remoting</artifactId>
|
|
|
|
<version>2.5.4.SP5</version>
|
|
|
|
</dependency>
|
|
|
|
<dependency>
|
|
|
|
<groupId>org.jboss</groupId>
|
|
|
|
<artifactId>jboss-common-core</artifactId>
|
2019-02-17 12:12:57 +00:00
|
|
|
<version>2.5.0.Final</version>
|
2017-07-08 14:33:09 +00:00
|
|
|
</dependency>
|
|
|
|
<dependency>
|
|
|
|
<groupId>jboss</groupId>
|
|
|
|
<artifactId>jboss-serialization</artifactId>
|
2019-02-17 12:12:57 +00:00
|
|
|
<version>4.2.2.GA</version>
|
2017-07-08 14:33:09 +00:00
|
|
|
</dependency>
|
|
|
|
<dependency>
|
|
|
|
<groupId>concurrent</groupId>
|
|
|
|
<artifactId>concurrent</artifactId>
|
|
|
|
<version>1.3.4</version>
|
|
|
|
</dependency>
|
2020-07-08 15:16:16 +00:00
|
|
|
<dependency>
|
|
|
|
<groupId>trove</groupId>
|
|
|
|
<artifactId>trove</artifactId>
|
|
|
|
<version>1.0.2</version>
|
|
|
|
</dependency>
|
[WIP] Consumable JSON game logs
As discussed in https://github.com/magefree/mage/issues/4515
This exposes a JSON log of game interactions that can be analyzed.
This is just a first pass, to get up to speed with how the messaging works. It'd like to trim down the messages much
further so they don't include redundant information in each message. Also gson supports much more advances serialization
options; such as using the @Expose annotation. We should probably use that, but I ran into some issues (I'm not a java
developer, so still learning).
TODO:
These currently only exist on the client side; ideally we'd submit this logs back up to a central server after the
games completion; thinking this could be simple via an S3 file drop, and a Lambda function to process and expose the
logs; maybe via a kafka stream.
Examples of log messages are below:
```
{
"gameId": "2cede8c5-ff8e-4f8c-b9ac-66af53c0a254",
"sessionId": "5c4o149-678483-je42ycva-1-je42ycw2-4",
"type": "GAME_SELECT",
"value": {
"gameView": {
"priorityTime": 3000,
"players": [
{
"name": "computer",
"life": 20,
"counters": {}
},
{
"name": "hooptie",
"life": 20,
"counters": {}
}
],
"hand": {
"425d774f-ee0c-4a9b-8516-c98f886943f0": {
"name": "Springleaf Drum",
"power": "0",
"toughness": "0",
"loyalty": "",
"manaCost": [
"{1}"
],
"convertedManaCost": 1,
"type": 0,
"paid": false,
"id": "425d774f-ee0c-4a9b-8516-c98f886943f0"
},
"dd41bb4b-7fc3-4a3c-a69c-d18e281a1bff": {
"name": "Blade of the Bloodchief",
"power": "0",
"toughness": "0",
"loyalty": "",
"manaCost": [
"{1}"
],
"convertedManaCost": 1,
"type": 0,
"paid": false,
"id": "dd41bb4b-7fc3-4a3c-a69c-d18e281a1bff"
},
"06eb0a6c-1e70-4dc0-bd1c-93b6ea444806": {
"name": "Ornithopter",
"power": "0",
"toughness": "2",
"loyalty": "",
"manaCost": [
"{0}"
],
"convertedManaCost": 0,
"type": 0,
"paid": false,
"id": "06eb0a6c-1e70-4dc0-bd1c-93b6ea444806"
},
"a2f9cc13-e71a-4c9c-96aa-5424ea1a6b64": {
"name": "Springleaf Drum",
"power": "0",
"toughness": "0",
"loyalty": "",
"manaCost": [
"{1}"
],
"convertedManaCost": 1,
"type": 0,
"paid": false,
"id": "a2f9cc13-e71a-4c9c-96aa-5424ea1a6b64"
},
"91239f4f-9003-4c48-8ca1-4c318f892489": {
"name": "Cranial Plating",
"power": "0",
"toughness": "0",
"loyalty": "",
"manaCost": [
"{2}"
],
"convertedManaCost": 2,
"type": 0,
"paid": false,
"id": "91239f4f-9003-4c48-8ca1-4c318f892489"
},
"feb268d8-0535-4a9c-8915-83dd92a08c4c": {
"name": "Arcbound Ravager",
"power": "0",
"toughness": "0",
"loyalty": "",
"manaCost": [
"{2}"
],
"convertedManaCost": 2,
"type": 0,
"paid": false,
"id": "feb268d8-0535-4a9c-8915-83dd92a08c4c"
}
},
"canPlayInHand": [
"06eb0a6c-1e70-4dc0-bd1c-93b6ea444806"
],
"stack": {},
"combat": [],
"phase": "PRECOMBAT_MAIN",
"step": "PRECOMBAT_MAIN"
},
"message": "Play spells and abilities.",
"options": {
"queryType": "SELECT"
}
}
}
{
"gameId": "2cede8c5-ff8e-4f8c-b9ac-66af53c0a254",
"sessionId": "5c4o149-678483-je42ycva-1-je42ycw2-4",
"type": "SEND_PLAYER_UUID",
"value": "06eb0a6c-1e70-4dc0-bd1c-93b6ea444806"
}
{
"gameId": "2cede8c5-ff8e-4f8c-b9ac-66af53c0a254",
"sessionId": "5c4o149-678483-je42ycva-1-je42ycw2-4",
"type": "GAME_CHOOSE_PILE",
"value": {
"choices": {
"1ecf8671-be4c-4060-a76b-af614235a5b7": "Cast Ornithopter"
}
}
}
{
"gameId": "2cede8c5-ff8e-4f8c-b9ac-66af53c0a254",
"sessionId": "5c4o149-3v2cj2-je43178o-1-je43179f-4",
"type": "GAME_INIT",
"value": {
"priorityTime": 3000,
"players": [
{
"name": "computer",
"life": 20,
"counters": {}
},
{
"name": "hooptie",
"life": 20,
"counters": {}
}
],
"hand": {
"425d774f-ee0c-4a9b-8516-c98f886943f0": {
"name": "Springleaf Drum",
"power": "0",
"toughness": "0",
"loyalty": "",
"manaCost": [
"{1}"
],
"convertedManaCost": 1,
"type": 0,
"paid": false,
"id": "425d774f-ee0c-4a9b-8516-c98f886943f0"
},
"dd41bb4b-7fc3-4a3c-a69c-d18e281a1bff": {
"name": "Blade of the Bloodchief",
"power": "0",
"toughness": "0",
"loyalty": "",
"manaCost": [
"{1}"
],
"convertedManaCost": 1,
"type": 0,
"paid": false,
"id": "dd41bb4b-7fc3-4a3c-a69c-d18e281a1bff"
},
"06eb0a6c-1e70-4dc0-bd1c-93b6ea444806": {
"name": "Ornithopter",
"power": "0",
"toughness": "2",
"loyalty": "",
"manaCost": [
"{0}"
],
"convertedManaCost": 0,
"type": 0,
"paid": false,
"id": "06eb0a6c-1e70-4dc0-bd1c-93b6ea444806"
},
"a2f9cc13-e71a-4c9c-96aa-5424ea1a6b64": {
"name": "Springleaf Drum",
"power": "0",
"toughness": "0",
"loyalty": "",
"manaCost": [
"{1}"
],
"convertedManaCost": 1,
"type": 0,
"paid": false,
"id": "a2f9cc13-e71a-4c9c-96aa-5424ea1a6b64"
},
"91239f4f-9003-4c48-8ca1-4c318f892489": {
"name": "Cranial Plating",
"power": "0",
"toughness": "0",
"loyalty": "",
"manaCost": [
"{2}"
],
"convertedManaCost": 2,
"type": 0,
"paid": false,
"id": "91239f4f-9003-4c48-8ca1-4c318f892489"
},
"feb268d8-0535-4a9c-8915-83dd92a08c4c": {
"name": "Arcbound Ravager",
"power": "0",
"toughness": "0",
"loyalty": "",
"manaCost": [
"{2}"
],
"convertedManaCost": 2,
"type": 0,
"paid": false,
"id": "feb268d8-0535-4a9c-8915-83dd92a08c4c"
}
},
"canPlayInHand": [
"06eb0a6c-1e70-4dc0-bd1c-93b6ea444806"
],
"stack": {},
"combat": [],
"phase": "PRECOMBAT_MAIN",
"step": "PRECOMBAT_MAIN"
}
}
{
"gameId": "2cede8c5-ff8e-4f8c-b9ac-66af53c0a254",
"sessionId": "5c4o149-3v2cj2-je43178o-1-je43179f-4",
"type": "GAME_SELECT",
"value": {
"gameView": {
"priorityTime": 3000,
"players": [
{
"name": "computer",
"life": 20,
"counters": {}
},
{
"name": "hooptie",
"life": 20,
"counters": {}
}
],
"hand": {
"425d774f-ee0c-4a9b-8516-c98f886943f0": {
"name": "Springleaf Drum",
"power": "0",
"toughness": "0",
"loyalty": "",
"manaCost": [
"{1}"
],
"convertedManaCost": 1,
"type": 0,
"paid": false,
"id": "425d774f-ee0c-4a9b-8516-c98f886943f0"
},
"dd41bb4b-7fc3-4a3c-a69c-d18e281a1bff": {
"name": "Blade of the Bloodchief",
"power": "0",
"toughness": "0",
"loyalty": "",
"manaCost": [
"{1}"
],
"convertedManaCost": 1,
"type": 0,
"paid": false,
"id": "dd41bb4b-7fc3-4a3c-a69c-d18e281a1bff"
},
"06eb0a6c-1e70-4dc0-bd1c-93b6ea444806": {
"name": "Ornithopter",
"power": "0",
"toughness": "2",
"loyalty": "",
"manaCost": [
"{0}"
],
"convertedManaCost": 0,
"type": 0,
"paid": false,
"id": "06eb0a6c-1e70-4dc0-bd1c-93b6ea444806"
},
"a2f9cc13-e71a-4c9c-96aa-5424ea1a6b64": {
"name": "Springleaf Drum",
"power": "0",
"toughness": "0",
"loyalty": "",
"manaCost": [
"{1}"
],
"convertedManaCost": 1,
"type": 0,
"paid": false,
"id": "a2f9cc13-e71a-4c9c-96aa-5424ea1a6b64"
},
"91239f4f-9003-4c48-8ca1-4c318f892489": {
"name": "Cranial Plating",
"power": "0",
"toughness": "0",
"loyalty": "",
"manaCost": [
"{2}"
],
"convertedManaCost": 2,
"type": 0,
"paid": false,
"id": "91239f4f-9003-4c48-8ca1-4c318f892489"
},
"feb268d8-0535-4a9c-8915-83dd92a08c4c": {
"name": "Arcbound Ravager",
"power": "0",
"toughness": "0",
"loyalty": "",
"manaCost": [
"{2}"
],
"convertedManaCost": 2,
"type": 0,
"paid": false,
"id": "feb268d8-0535-4a9c-8915-83dd92a08c4c"
}
},
"canPlayInHand": [
"06eb0a6c-1e70-4dc0-bd1c-93b6ea444806"
],
"stack": {},
"combat": [],
"phase": "PRECOMBAT_MAIN",
"step": "PRECOMBAT_MAIN"
},
"message": "Play spells and abilities.",
"options": {
"queryType": "SELECT"
}
}
}
{
"gameId": "2cede8c5-ff8e-4f8c-b9ac-66af53c0a254",
"sessionId": "5c4o149-678483-je42ycva-1-je42ycw2-4",
"type": "SEND_PLAYER_UUID",
"value": "1ecf8671-be4c-4060-a76b-af614235a5b7"
}
```
2018-02-27 00:23:00 +00:00
|
|
|
<dependency>
|
|
|
|
<groupId>com.google.code.gson</groupId>
|
|
|
|
<artifactId>gson</artifactId>
|
2020-07-27 09:47:50 +00:00
|
|
|
<version>2.8.6</version>
|
[WIP] Consumable JSON game logs
As discussed in https://github.com/magefree/mage/issues/4515
This exposes a JSON log of game interactions that can be analyzed.
This is just a first pass, to get up to speed with how the messaging works. It'd like to trim down the messages much
further so they don't include redundant information in each message. Also gson supports much more advances serialization
options; such as using the @Expose annotation. We should probably use that, but I ran into some issues (I'm not a java
developer, so still learning).
TODO:
These currently only exist on the client side; ideally we'd submit this logs back up to a central server after the
games completion; thinking this could be simple via an S3 file drop, and a Lambda function to process and expose the
logs; maybe via a kafka stream.
Examples of log messages are below:
```
{
"gameId": "2cede8c5-ff8e-4f8c-b9ac-66af53c0a254",
"sessionId": "5c4o149-678483-je42ycva-1-je42ycw2-4",
"type": "GAME_SELECT",
"value": {
"gameView": {
"priorityTime": 3000,
"players": [
{
"name": "computer",
"life": 20,
"counters": {}
},
{
"name": "hooptie",
"life": 20,
"counters": {}
}
],
"hand": {
"425d774f-ee0c-4a9b-8516-c98f886943f0": {
"name": "Springleaf Drum",
"power": "0",
"toughness": "0",
"loyalty": "",
"manaCost": [
"{1}"
],
"convertedManaCost": 1,
"type": 0,
"paid": false,
"id": "425d774f-ee0c-4a9b-8516-c98f886943f0"
},
"dd41bb4b-7fc3-4a3c-a69c-d18e281a1bff": {
"name": "Blade of the Bloodchief",
"power": "0",
"toughness": "0",
"loyalty": "",
"manaCost": [
"{1}"
],
"convertedManaCost": 1,
"type": 0,
"paid": false,
"id": "dd41bb4b-7fc3-4a3c-a69c-d18e281a1bff"
},
"06eb0a6c-1e70-4dc0-bd1c-93b6ea444806": {
"name": "Ornithopter",
"power": "0",
"toughness": "2",
"loyalty": "",
"manaCost": [
"{0}"
],
"convertedManaCost": 0,
"type": 0,
"paid": false,
"id": "06eb0a6c-1e70-4dc0-bd1c-93b6ea444806"
},
"a2f9cc13-e71a-4c9c-96aa-5424ea1a6b64": {
"name": "Springleaf Drum",
"power": "0",
"toughness": "0",
"loyalty": "",
"manaCost": [
"{1}"
],
"convertedManaCost": 1,
"type": 0,
"paid": false,
"id": "a2f9cc13-e71a-4c9c-96aa-5424ea1a6b64"
},
"91239f4f-9003-4c48-8ca1-4c318f892489": {
"name": "Cranial Plating",
"power": "0",
"toughness": "0",
"loyalty": "",
"manaCost": [
"{2}"
],
"convertedManaCost": 2,
"type": 0,
"paid": false,
"id": "91239f4f-9003-4c48-8ca1-4c318f892489"
},
"feb268d8-0535-4a9c-8915-83dd92a08c4c": {
"name": "Arcbound Ravager",
"power": "0",
"toughness": "0",
"loyalty": "",
"manaCost": [
"{2}"
],
"convertedManaCost": 2,
"type": 0,
"paid": false,
"id": "feb268d8-0535-4a9c-8915-83dd92a08c4c"
}
},
"canPlayInHand": [
"06eb0a6c-1e70-4dc0-bd1c-93b6ea444806"
],
"stack": {},
"combat": [],
"phase": "PRECOMBAT_MAIN",
"step": "PRECOMBAT_MAIN"
},
"message": "Play spells and abilities.",
"options": {
"queryType": "SELECT"
}
}
}
{
"gameId": "2cede8c5-ff8e-4f8c-b9ac-66af53c0a254",
"sessionId": "5c4o149-678483-je42ycva-1-je42ycw2-4",
"type": "SEND_PLAYER_UUID",
"value": "06eb0a6c-1e70-4dc0-bd1c-93b6ea444806"
}
{
"gameId": "2cede8c5-ff8e-4f8c-b9ac-66af53c0a254",
"sessionId": "5c4o149-678483-je42ycva-1-je42ycw2-4",
"type": "GAME_CHOOSE_PILE",
"value": {
"choices": {
"1ecf8671-be4c-4060-a76b-af614235a5b7": "Cast Ornithopter"
}
}
}
{
"gameId": "2cede8c5-ff8e-4f8c-b9ac-66af53c0a254",
"sessionId": "5c4o149-3v2cj2-je43178o-1-je43179f-4",
"type": "GAME_INIT",
"value": {
"priorityTime": 3000,
"players": [
{
"name": "computer",
"life": 20,
"counters": {}
},
{
"name": "hooptie",
"life": 20,
"counters": {}
}
],
"hand": {
"425d774f-ee0c-4a9b-8516-c98f886943f0": {
"name": "Springleaf Drum",
"power": "0",
"toughness": "0",
"loyalty": "",
"manaCost": [
"{1}"
],
"convertedManaCost": 1,
"type": 0,
"paid": false,
"id": "425d774f-ee0c-4a9b-8516-c98f886943f0"
},
"dd41bb4b-7fc3-4a3c-a69c-d18e281a1bff": {
"name": "Blade of the Bloodchief",
"power": "0",
"toughness": "0",
"loyalty": "",
"manaCost": [
"{1}"
],
"convertedManaCost": 1,
"type": 0,
"paid": false,
"id": "dd41bb4b-7fc3-4a3c-a69c-d18e281a1bff"
},
"06eb0a6c-1e70-4dc0-bd1c-93b6ea444806": {
"name": "Ornithopter",
"power": "0",
"toughness": "2",
"loyalty": "",
"manaCost": [
"{0}"
],
"convertedManaCost": 0,
"type": 0,
"paid": false,
"id": "06eb0a6c-1e70-4dc0-bd1c-93b6ea444806"
},
"a2f9cc13-e71a-4c9c-96aa-5424ea1a6b64": {
"name": "Springleaf Drum",
"power": "0",
"toughness": "0",
"loyalty": "",
"manaCost": [
"{1}"
],
"convertedManaCost": 1,
"type": 0,
"paid": false,
"id": "a2f9cc13-e71a-4c9c-96aa-5424ea1a6b64"
},
"91239f4f-9003-4c48-8ca1-4c318f892489": {
"name": "Cranial Plating",
"power": "0",
"toughness": "0",
"loyalty": "",
"manaCost": [
"{2}"
],
"convertedManaCost": 2,
"type": 0,
"paid": false,
"id": "91239f4f-9003-4c48-8ca1-4c318f892489"
},
"feb268d8-0535-4a9c-8915-83dd92a08c4c": {
"name": "Arcbound Ravager",
"power": "0",
"toughness": "0",
"loyalty": "",
"manaCost": [
"{2}"
],
"convertedManaCost": 2,
"type": 0,
"paid": false,
"id": "feb268d8-0535-4a9c-8915-83dd92a08c4c"
}
},
"canPlayInHand": [
"06eb0a6c-1e70-4dc0-bd1c-93b6ea444806"
],
"stack": {},
"combat": [],
"phase": "PRECOMBAT_MAIN",
"step": "PRECOMBAT_MAIN"
}
}
{
"gameId": "2cede8c5-ff8e-4f8c-b9ac-66af53c0a254",
"sessionId": "5c4o149-3v2cj2-je43178o-1-je43179f-4",
"type": "GAME_SELECT",
"value": {
"gameView": {
"priorityTime": 3000,
"players": [
{
"name": "computer",
"life": 20,
"counters": {}
},
{
"name": "hooptie",
"life": 20,
"counters": {}
}
],
"hand": {
"425d774f-ee0c-4a9b-8516-c98f886943f0": {
"name": "Springleaf Drum",
"power": "0",
"toughness": "0",
"loyalty": "",
"manaCost": [
"{1}"
],
"convertedManaCost": 1,
"type": 0,
"paid": false,
"id": "425d774f-ee0c-4a9b-8516-c98f886943f0"
},
"dd41bb4b-7fc3-4a3c-a69c-d18e281a1bff": {
"name": "Blade of the Bloodchief",
"power": "0",
"toughness": "0",
"loyalty": "",
"manaCost": [
"{1}"
],
"convertedManaCost": 1,
"type": 0,
"paid": false,
"id": "dd41bb4b-7fc3-4a3c-a69c-d18e281a1bff"
},
"06eb0a6c-1e70-4dc0-bd1c-93b6ea444806": {
"name": "Ornithopter",
"power": "0",
"toughness": "2",
"loyalty": "",
"manaCost": [
"{0}"
],
"convertedManaCost": 0,
"type": 0,
"paid": false,
"id": "06eb0a6c-1e70-4dc0-bd1c-93b6ea444806"
},
"a2f9cc13-e71a-4c9c-96aa-5424ea1a6b64": {
"name": "Springleaf Drum",
"power": "0",
"toughness": "0",
"loyalty": "",
"manaCost": [
"{1}"
],
"convertedManaCost": 1,
"type": 0,
"paid": false,
"id": "a2f9cc13-e71a-4c9c-96aa-5424ea1a6b64"
},
"91239f4f-9003-4c48-8ca1-4c318f892489": {
"name": "Cranial Plating",
"power": "0",
"toughness": "0",
"loyalty": "",
"manaCost": [
"{2}"
],
"convertedManaCost": 2,
"type": 0,
"paid": false,
"id": "91239f4f-9003-4c48-8ca1-4c318f892489"
},
"feb268d8-0535-4a9c-8915-83dd92a08c4c": {
"name": "Arcbound Ravager",
"power": "0",
"toughness": "0",
"loyalty": "",
"manaCost": [
"{2}"
],
"convertedManaCost": 2,
"type": 0,
"paid": false,
"id": "feb268d8-0535-4a9c-8915-83dd92a08c4c"
}
},
"canPlayInHand": [
"06eb0a6c-1e70-4dc0-bd1c-93b6ea444806"
],
"stack": {},
"combat": [],
"phase": "PRECOMBAT_MAIN",
"step": "PRECOMBAT_MAIN"
},
"message": "Play spells and abilities.",
"options": {
"queryType": "SELECT"
}
}
}
{
"gameId": "2cede8c5-ff8e-4f8c-b9ac-66af53c0a254",
"sessionId": "5c4o149-678483-je42ycva-1-je42ycw2-4",
"type": "SEND_PLAYER_UUID",
"value": "1ecf8671-be4c-4060-a76b-af614235a5b7"
}
```
2018-02-27 00:23:00 +00:00
|
|
|
</dependency>
|
2020-10-30 13:37:01 +00:00
|
|
|
<dependency>
|
|
|
|
<groupId>org.junit.jupiter</groupId>
|
|
|
|
<artifactId>junit-jupiter</artifactId>
|
|
|
|
<scope>test</scope>
|
|
|
|
</dependency>
|
|
|
|
<dependency>
|
|
|
|
<groupId>org.assertj</groupId>
|
|
|
|
<artifactId>assertj-core</artifactId>
|
|
|
|
<scope>test</scope>
|
|
|
|
</dependency>
|
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.commons</groupId>
|
|
|
|
<artifactId>commons-lang3</artifactId>
|
|
|
|
<scope>test</scope>
|
|
|
|
</dependency>
|
2017-07-08 14:33:09 +00:00
|
|
|
</dependencies>
|
|
|
|
<!-- to get the reference to local repository with com\googlecode\jspf\jspf-core\0.9.1\ -->
|
|
|
|
<repositories>
|
|
|
|
<repository>
|
|
|
|
<id>local-project-repo</id>
|
|
|
|
<url>file://${project.basedir}/../repository</url>
|
|
|
|
</repository>
|
|
|
|
</repositories>
|
|
|
|
|
|
|
|
<build>
|
|
|
|
<sourceDirectory>src/main/java</sourceDirectory>
|
|
|
|
<plugins>
|
|
|
|
<plugin>
|
|
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
|
|
<artifactId>maven-compiler-plugin</artifactId>
|
|
|
|
<configuration>
|
|
|
|
<source>1.8</source>
|
|
|
|
<target>1.8</target>
|
|
|
|
</configuration>
|
|
|
|
</plugin>
|
|
|
|
<plugin>
|
|
|
|
<artifactId>maven-resources-plugin</artifactId>
|
|
|
|
<configuration>
|
|
|
|
<encoding>UTF-8</encoding>
|
|
|
|
</configuration>
|
|
|
|
</plugin>
|
2020-10-30 13:37:01 +00:00
|
|
|
<plugin>
|
|
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
|
|
<artifactId>maven-surefire-plugin</artifactId>
|
|
|
|
</plugin>
|
2017-07-08 14:33:09 +00:00
|
|
|
</plugins>
|
|
|
|
|
|
|
|
<finalName>mage-common</finalName>
|
|
|
|
</build>
|
|
|
|
</project>
|