From cc37fc28581bc54db3cd843ed3d3546473b84699 Mon Sep 17 00:00:00 2001 From: MickWerf Date: Mon, 25 May 2020 20:58:06 +0200 Subject: [PATCH 1/3] Expanded Character to include sprites and positions. Added George sprites for testing. TestCode for George --- core/assets/george.png | Bin 0 -> 2021 bytes .../game/client/game/characters/DevTest1.java | 10 +++++- .../game/client/game/characters/DevTest2.java | 8 ++++- .../game/client/game/characters/DevTest3.java | 10 ++++++ .../netwerkprog/game/util/game/Character.java | 29 ++++++++++++++++-- .../netwerkprog/game/util/game/Faction.java | 9 ++++++ core/src/test/java/CharacterLoadingTest.java | 15 +++++++++ 7 files changed, 77 insertions(+), 4 deletions(-) create mode 100644 core/assets/george.png create mode 100644 core/src/netwerkprog/game/client/game/characters/DevTest3.java create mode 100644 core/src/test/java/CharacterLoadingTest.java diff --git a/core/assets/george.png b/core/assets/george.png new file mode 100644 index 0000000000000000000000000000000000000000..7fb0825091795d73f5bc49b04407adc89f137fee GIT binary patch literal 2021 zcmV?uV6zY*6f*z+ ztyeZlCp{govwAw+o?NS*&CD3vg$?P>l$a)i!C){L42FLZaf&DKonTB~PIHa>H~*77 z=H0!RP|PvsbzS*|>mdjH8dw`L%*AwQ1p99zA_WlA&o6rlHnyki*LURp5O7=bn|;=# zv;G(%Wb`AzI-b#WH_!ZUzl<{5Os=!U;3IvJ0uMNx%QG6!+A>~4;;r?XuW2;%5ra!J zyff%$bU3{Z#Eiy{^(CVp*Kus!DwfCDT>Ift;dPjQ^SS;E)@5*yTl;t{^^cAa^Uu6J zoK2deY60wH*M9z80(T?gZT^E2ocZ&970<@#47qPP`cW^!+C#iAKwdvc=W=Qc{1Uw+l#)V zA9n`SlD>cvneHC2Phh*-S75&l3FO^-p-`#R0fFj$YG$#N5?gY~`_33&Dy)Bfm9L5r zzHCt-P&)+16^L8$R3^mvg?wti1T>-bYa_ES5cs0xwy)YH?d!IE|Nj2xyC5^4YT^X@ zH!^hGzAp2*EyBLr70n&|CajWL5b5{#w)IPZ8TDJ`l3 zEcju`cvVGAX00tBjx|`tw2se|_N&ylM{~hw&!46#OCQPNg~Drzjz5rPF7D3YdqbNK zBluTJ$AHnc3kKvGUn&(UXYnI0Q8-CN=~FZtQ)AR4P)U9q0JhtSI;_`3yH;slslDZ= z7}MlJ3_P#&!nF(HGZJ1VJXeJRjnj8C=rUin_kMN)1;B-Qc9Z6*3jEJ=2>3L>FN_oX zx1voL797VC{HGG;1!jqW|Cc#PHFK24vVegi{}f;uK!Jg)WeG`Sfc!BGqr?~B(_ZaIZQyiEZbQg)hQtfAf!iSh#zr??nH{n-&k|nl{}V z4!eW0vB_|zm8^aEit;X)8W)yXnbAb+cc!FN*0c*@K8dwvT8VE6>RjIaJ2mGJlpDpq zHJ<-z8e2#85BjH0U@#aA27|$1`0HVMp>Y7y3z=T%v^Kqv>4ju- z(+k~K*z`iC7n)2jWO||7giJ4FdZ8NvrWZ23&}UbhUTDC;^g;qY^g>B|M)E{2G&%PN zdLi#g38Q+dLQ0Q|UMS3|sPsZ1?2+UEbNHbbl1uhL1<-^EFTlO(Z~Qz=B`CpmUi?)r zl!QO12NFIT85`v=F4*!XJhxJZc(qSe+j7}}V8a`?tmZ>@2vSfvkTJppV zN_wZ|0fB`DUdn|=Y9tm^sR-b0lS7jxz2XM`XSIKR4}~SharDoqc`q%>l6kg&q=tcg zsagS0bN*0p;~(2Udy48V4}Fkm-d^YtsvvUPv}Kz0iGy zO)q46p~>_@rWd+R$n-*{7rG%}dLh#beRj3!g$4{vFC^eYFC;%BvGaxOe4(p4i)$bXuEU$n-+8x#@-OD{Oip z(+f?e7c#xjZ9=9OGQH3Z0n-baUg)!{O)oTHV0xi3(tlkqBpk2O4i}=cRc4i5s3g+b zoO&V6U*BUSaYATE42c2W^+KYAz|&bT?Q9j**)yfQ)I!W#L4Xc0+Vw*6Sw6_;su#jo zq2-8iSm?l=;r{l+|8c+&#>#Rh+N~)79nmAtQIo?QdLeA>MO51?bT&^=DsI?+6FgB; zVN;|;o~hfkXBeG&AtzS==1V&+NUddXb5lG~kyF(i+T?vRUz|DsNqMM=6sxAv5+L_l zy^U)}3k98j9>M1kfrC!3vY-7!nk1*%R|2ogf;IX)oC>jyj#=R6nk{F(U21VaYH|0VtdkpdQyschCG00000NkvXXu0mjf DeLKGk literal 0 HcmV?d00001 diff --git a/core/src/netwerkprog/game/client/game/characters/DevTest1.java b/core/src/netwerkprog/game/client/game/characters/DevTest1.java index 8a6cb7c..eca2e34 100644 --- a/core/src/netwerkprog/game/client/game/characters/DevTest1.java +++ b/core/src/netwerkprog/game/client/game/characters/DevTest1.java @@ -1,4 +1,12 @@ package netwerkprog.game.client.game.characters; -public class DevTest1 { +import com.badlogic.gdx.Gdx; +import com.badlogic.gdx.graphics.Texture; +import netwerkprog.game.util.game.Character; +import netwerkprog.game.util.game.Faction; + +public class DevTest1 extends Character { + public DevTest1() { + super("DevTest1", Faction.HACKER, new Texture(Gdx.files.internal("core/assets/george.png"))); + } } diff --git a/core/src/netwerkprog/game/client/game/characters/DevTest2.java b/core/src/netwerkprog/game/client/game/characters/DevTest2.java index b4d78fa..058ff40 100644 --- a/core/src/netwerkprog/game/client/game/characters/DevTest2.java +++ b/core/src/netwerkprog/game/client/game/characters/DevTest2.java @@ -1,4 +1,10 @@ package netwerkprog.game.client.game.characters; -public class DevTest2 { +import netwerkprog.game.util.game.Character; +import netwerkprog.game.util.game.Faction; + +public class DevTest2 extends Character { + public DevTest2() { + super("DevTest2", Faction.MEGACORPORATION, null); + } } diff --git a/core/src/netwerkprog/game/client/game/characters/DevTest3.java b/core/src/netwerkprog/game/client/game/characters/DevTest3.java new file mode 100644 index 0000000..7e28fff --- /dev/null +++ b/core/src/netwerkprog/game/client/game/characters/DevTest3.java @@ -0,0 +1,10 @@ +package netwerkprog.game.client.game.characters; + +import netwerkprog.game.util.game.Character; +import netwerkprog.game.util.game.Faction; + +public class DevTest3 extends Character { + public DevTest3() { + super("DevTest3", Faction.AI, null); + } +} diff --git a/core/src/netwerkprog/game/util/game/Character.java b/core/src/netwerkprog/game/util/game/Character.java index 21bc8bd..191fec9 100644 --- a/core/src/netwerkprog/game/util/game/Character.java +++ b/core/src/netwerkprog/game/util/game/Character.java @@ -1,19 +1,30 @@ package netwerkprog.game.util.game; +import com.badlogic.gdx.graphics.Texture; +import com.badlogic.gdx.graphics.g2d.TextureRegion; +import com.badlogic.gdx.scenes.scene2d.Actor; + import java.util.Arrays; import java.util.HashSet; -public abstract class Character { +public abstract class Character extends Actor { protected String name; protected Faction faction; protected HashSet abilities; + protected TextureRegion[] sprites; protected boolean override; + protected int x; + protected int y; + private final int maxSize = 1; - public Character(String name, Faction faction, Ability... abilities) { + + public Character(String name, Faction faction, Texture spriteSheet, Ability... abilities) { this.name = name; this.faction = faction; + this.sprites = new TextureRegion[this.maxSize]; this.abilities = new HashSet<>(Arrays.asList(abilities)); this.override = false; + loadSprites(spriteSheet); } public void addAbilities(Ability ability) { @@ -27,4 +38,18 @@ public abstract class Character { public void changeControl() { this.override = !this.override; } + + private void loadSprites(Texture spriteSheet) { + int counter = 0; + TextureRegion[][] temp = TextureRegion.split(spriteSheet,32,32); + for (TextureRegion[] array : temp) { + for (TextureRegion sprite : array) { + this.sprites[counter] = sprite; + counter++; + if (counter >= this.maxSize) { + break; + } + } + } + } } diff --git a/core/src/netwerkprog/game/util/game/Faction.java b/core/src/netwerkprog/game/util/game/Faction.java index dd347f5..08520a5 100644 --- a/core/src/netwerkprog/game/util/game/Faction.java +++ b/core/src/netwerkprog/game/util/game/Faction.java @@ -1,4 +1,13 @@ package netwerkprog.game.util.game; public enum Faction { + MEGACORPORATION("MegaCorp"), + HACKER("Hacker"), + AI("AI"); + + String name; + + Faction(String name) { + this.name = name; + } } diff --git a/core/src/test/java/CharacterLoadingTest.java b/core/src/test/java/CharacterLoadingTest.java new file mode 100644 index 0000000..51962f4 --- /dev/null +++ b/core/src/test/java/CharacterLoadingTest.java @@ -0,0 +1,15 @@ +import com.badlogic.gdx.Gdx; +import com.badlogic.gdx.graphics.Texture; +import netwerkprog.game.client.game.characters.DevTest1; +import netwerkprog.game.util.game.Character; +import org.junit.Test; + +public class CharacterLoadingTest { + + @Test + public void george() { + String path = "core/assets/george.png"; + Texture texture = new Texture(Gdx.files.internal(path)); + Character george = new DevTest1(); + } +} -- 2.47.2 From 2e045609304914010de90f8fe23bdec257c3ea8a Mon Sep 17 00:00:00 2001 From: MickWerf Date: Mon, 25 May 2020 21:57:43 +0200 Subject: [PATCH 2/3] Changed GameCharacter to include sprites and draw method. Added ScifiCritters testspirtes. --- core/assets/ScifiCritters4.PNG | Bin 0 -> 12516 bytes core/assets/george.png | Bin 2021 -> 0 bytes .../game/client/game/characters/DevTest1.java | 8 ++--- .../game/client/game/characters/DevTest2.java | 4 +-- .../game/client/game/characters/DevTest3.java | 4 +-- .../{Character.java => GameCharacter.java} | 33 +++++++----------- core/src/test/java/CharacterLoadingTest.java | 15 -------- 7 files changed, 19 insertions(+), 45 deletions(-) create mode 100644 core/assets/ScifiCritters4.PNG delete mode 100644 core/assets/george.png rename core/src/netwerkprog/game/util/game/{Character.java => GameCharacter.java} (50%) delete mode 100644 core/src/test/java/CharacterLoadingTest.java diff --git a/core/assets/ScifiCritters4.PNG b/core/assets/ScifiCritters4.PNG new file mode 100644 index 0000000000000000000000000000000000000000..b798f814b7141543cf900af0444f96b527a1108e GIT binary patch literal 12516 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 Uti_1?P2t`?uV6zY*6f*z+ ztyeZlCp{govwAw+o?NS*&CD3vg$?P>l$a)i!C){L42FLZaf&DKonTB~PIHa>H~*77 z=H0!RP|PvsbzS*|>mdjH8dw`L%*AwQ1p99zA_WlA&o6rlHnyki*LURp5O7=bn|;=# zv;G(%Wb`AzI-b#WH_!ZUzl<{5Os=!U;3IvJ0uMNx%QG6!+A>~4;;r?XuW2;%5ra!J zyff%$bU3{Z#Eiy{^(CVp*Kus!DwfCDT>Ift;dPjQ^SS;E)@5*yTl;t{^^cAa^Uu6J zoK2deY60wH*M9z80(T?gZT^E2ocZ&970<@#47qPP`cW^!+C#iAKwdvc=W=Qc{1Uw+l#)V zA9n`SlD>cvneHC2Phh*-S75&l3FO^-p-`#R0fFj$YG$#N5?gY~`_33&Dy)Bfm9L5r zzHCt-P&)+16^L8$R3^mvg?wti1T>-bYa_ES5cs0xwy)YH?d!IE|Nj2xyC5^4YT^X@ zH!^hGzAp2*EyBLr70n&|CajWL5b5{#w)IPZ8TDJ`l3 zEcju`cvVGAX00tBjx|`tw2se|_N&ylM{~hw&!46#OCQPNg~Drzjz5rPF7D3YdqbNK zBluTJ$AHnc3kKvGUn&(UXYnI0Q8-CN=~FZtQ)AR4P)U9q0JhtSI;_`3yH;slslDZ= z7}MlJ3_P#&!nF(HGZJ1VJXeJRjnj8C=rUin_kMN)1;B-Qc9Z6*3jEJ=2>3L>FN_oX zx1voL797VC{HGG;1!jqW|Cc#PHFK24vVegi{}f;uK!Jg)WeG`Sfc!BGqr?~B(_ZaIZQyiEZbQg)hQtfAf!iSh#zr??nH{n-&k|nl{}V z4!eW0vB_|zm8^aEit;X)8W)yXnbAb+cc!FN*0c*@K8dwvT8VE6>RjIaJ2mGJlpDpq zHJ<-z8e2#85BjH0U@#aA27|$1`0HVMp>Y7y3z=T%v^Kqv>4ju- z(+k~K*z`iC7n)2jWO||7giJ4FdZ8NvrWZ23&}UbhUTDC;^g;qY^g>B|M)E{2G&%PN zdLi#g38Q+dLQ0Q|UMS3|sPsZ1?2+UEbNHbbl1uhL1<-^EFTlO(Z~Qz=B`CpmUi?)r zl!QO12NFIT85`v=F4*!XJhxJZc(qSe+j7}}V8a`?tmZ>@2vSfvkTJppV zN_wZ|0fB`DUdn|=Y9tm^sR-b0lS7jxz2XM`XSIKR4}~SharDoqc`q%>l6kg&q=tcg zsagS0bN*0p;~(2Udy48V4}Fkm-d^YtsvvUPv}Kz0iGy zO)q46p~>_@rWd+R$n-*{7rG%}dLh#beRj3!g$4{vFC^eYFC;%BvGaxOe4(p4i)$bXuEU$n-+8x#@-OD{Oip z(+f?e7c#xjZ9=9OGQH3Z0n-baUg)!{O)oTHV0xi3(tlkqBpk2O4i}=cRc4i5s3g+b zoO&V6U*BUSaYATE42c2W^+KYAz|&bT?Q9j**)yfQ)I!W#L4Xc0+Vw*6Sw6_;su#jo zq2-8iSm?l=;r{l+|8c+&#>#Rh+N~)79nmAtQIo?QdLeA>MO51?bT&^=DsI?+6FgB; zVN;|;o~hfkXBeG&AtzS==1V&+NUddXb5lG~kyF(i+T?vRUz|DsNqMM=6sxAv5+L_l zy^U)}3k98j9>M1kfrC!3vY-7!nk1*%R|2ogf;IX)oC>jyj#=R6nk{F(U21VaYH|0VtdkpdQyschCG00000NkvXXu0mjf DeLKGk diff --git a/core/src/netwerkprog/game/client/game/characters/DevTest1.java b/core/src/netwerkprog/game/client/game/characters/DevTest1.java index eca2e34..54ac435 100644 --- a/core/src/netwerkprog/game/client/game/characters/DevTest1.java +++ b/core/src/netwerkprog/game/client/game/characters/DevTest1.java @@ -1,12 +1,10 @@ package netwerkprog.game.client.game.characters; -import com.badlogic.gdx.Gdx; -import com.badlogic.gdx.graphics.Texture; -import netwerkprog.game.util.game.Character; +import netwerkprog.game.util.game.GameCharacter; import netwerkprog.game.util.game.Faction; -public class DevTest1 extends Character { +public class DevTest1 extends GameCharacter { public DevTest1() { - super("DevTest1", Faction.HACKER, new Texture(Gdx.files.internal("core/assets/george.png"))); + super("DevTest1", Faction.HACKER, "core/assets/ScifiCritters4.PNG"); } } diff --git a/core/src/netwerkprog/game/client/game/characters/DevTest2.java b/core/src/netwerkprog/game/client/game/characters/DevTest2.java index 058ff40..c5d01e5 100644 --- a/core/src/netwerkprog/game/client/game/characters/DevTest2.java +++ b/core/src/netwerkprog/game/client/game/characters/DevTest2.java @@ -1,9 +1,9 @@ package netwerkprog.game.client.game.characters; -import netwerkprog.game.util.game.Character; +import netwerkprog.game.util.game.GameCharacter; import netwerkprog.game.util.game.Faction; -public class DevTest2 extends Character { +public class DevTest2 extends GameCharacter { public DevTest2() { super("DevTest2", Faction.MEGACORPORATION, null); } diff --git a/core/src/netwerkprog/game/client/game/characters/DevTest3.java b/core/src/netwerkprog/game/client/game/characters/DevTest3.java index 7e28fff..401e170 100644 --- a/core/src/netwerkprog/game/client/game/characters/DevTest3.java +++ b/core/src/netwerkprog/game/client/game/characters/DevTest3.java @@ -1,9 +1,9 @@ package netwerkprog.game.client.game.characters; -import netwerkprog.game.util.game.Character; +import netwerkprog.game.util.game.GameCharacter; import netwerkprog.game.util.game.Faction; -public class DevTest3 extends Character { +public class DevTest3 extends GameCharacter { public DevTest3() { super("DevTest3", Faction.AI, null); } diff --git a/core/src/netwerkprog/game/util/game/Character.java b/core/src/netwerkprog/game/util/game/GameCharacter.java similarity index 50% rename from core/src/netwerkprog/game/util/game/Character.java rename to core/src/netwerkprog/game/util/game/GameCharacter.java index 191fec9..4d8ce69 100644 --- a/core/src/netwerkprog/game/util/game/Character.java +++ b/core/src/netwerkprog/game/util/game/GameCharacter.java @@ -1,30 +1,28 @@ package netwerkprog.game.util.game; import com.badlogic.gdx.graphics.Texture; +import com.badlogic.gdx.graphics.g2d.SpriteBatch; import com.badlogic.gdx.graphics.g2d.TextureRegion; import com.badlogic.gdx.scenes.scene2d.Actor; import java.util.Arrays; import java.util.HashSet; -public abstract class Character extends Actor { +public abstract class GameCharacter extends Actor { protected String name; protected Faction faction; protected HashSet abilities; - protected TextureRegion[] sprites; + protected TextureRegion[][] sprites; protected boolean override; - protected int x; - protected int y; - private final int maxSize = 1; - - public Character(String name, Faction faction, Texture spriteSheet, Ability... abilities) { + public GameCharacter(String name, Faction faction, String spriteSheet, Ability... abilities) { this.name = name; this.faction = faction; - this.sprites = new TextureRegion[this.maxSize]; this.abilities = new HashSet<>(Arrays.asList(abilities)); this.override = false; - loadSprites(spriteSheet); + this.sprites = TextureRegion.split(new Texture(spriteSheet),32,32); + super.setX(0); + super.setY(0); } public void addAbilities(Ability ability) { @@ -39,17 +37,10 @@ public abstract class Character extends Actor { this.override = !this.override; } - private void loadSprites(Texture spriteSheet) { - int counter = 0; - TextureRegion[][] temp = TextureRegion.split(spriteSheet,32,32); - for (TextureRegion[] array : temp) { - for (TextureRegion sprite : array) { - this.sprites[counter] = sprite; - counter++; - if (counter >= this.maxSize) { - break; - } - } - } + public void draw(SpriteBatch batch) { + batch.begin(); + batch.draw(this.sprites[0][0],super.getX(),super.getY()); + batch.end(); } + } diff --git a/core/src/test/java/CharacterLoadingTest.java b/core/src/test/java/CharacterLoadingTest.java deleted file mode 100644 index 51962f4..0000000 --- a/core/src/test/java/CharacterLoadingTest.java +++ /dev/null @@ -1,15 +0,0 @@ -import com.badlogic.gdx.Gdx; -import com.badlogic.gdx.graphics.Texture; -import netwerkprog.game.client.game.characters.DevTest1; -import netwerkprog.game.util.game.Character; -import org.junit.Test; - -public class CharacterLoadingTest { - - @Test - public void george() { - String path = "core/assets/george.png"; - Texture texture = new Texture(Gdx.files.internal(path)); - Character george = new DevTest1(); - } -} -- 2.47.2 From 95037404f2e52463779bd257385cb2742f4eb096 Mon Sep 17 00:00:00 2001 From: MickWerf Date: Wed, 27 May 2020 22:46:24 +0200 Subject: [PATCH 3/3] Removed generic dataparser. Removed generic callback. Added Parsers for client and server. Added Parsercallback interface. Applied parser and callback to serverclient and client. --- core/src/netwerkprog/game/client/Client.java | 19 +++++---- core/src/netwerkprog/game/client/Parser.java | 15 +++++++ core/src/netwerkprog/game/server/Parser.java | 15 +++++++ .../netwerkprog/game/server/ServerClient.java | 41 ++++++++----------- .../server/controllers/DataController.java | 8 ++++ .../server/controllers/SessionController.java | 18 ++------ .../netwerkprog/game/util/data/Callback.java | 5 --- .../game/util/data/DataParser.java | 14 ------- .../game/util/data/ParserCallback.java | 5 +++ 9 files changed, 72 insertions(+), 68 deletions(-) create mode 100644 core/src/netwerkprog/game/client/Parser.java create mode 100644 core/src/netwerkprog/game/server/Parser.java create mode 100644 core/src/netwerkprog/game/server/controllers/DataController.java delete mode 100644 core/src/netwerkprog/game/util/data/Callback.java delete mode 100644 core/src/netwerkprog/game/util/data/DataParser.java create mode 100644 core/src/netwerkprog/game/util/data/ParserCallback.java diff --git a/core/src/netwerkprog/game/client/Client.java b/core/src/netwerkprog/game/client/Client.java index 1a54dec..e17ccd1 100644 --- a/core/src/netwerkprog/game/client/Client.java +++ b/core/src/netwerkprog/game/client/Client.java @@ -2,7 +2,7 @@ package netwerkprog.game.client; import netwerkprog.game.util.application.Controller; import netwerkprog.game.util.data.Data; -import netwerkprog.game.util.data.DataParser; +import netwerkprog.game.util.data.ParserCallback; import java.io.DataInputStream; import java.io.DataOutputStream; @@ -10,10 +10,10 @@ import java.io.IOException; import java.net.Socket; import java.util.Arrays; -public class Client extends Controller { +public class Client extends Controller implements ParserCallback { private final int port; private final String hostname; - private final DataParser parser; + private final Parser parser; private boolean isConnected = true; private Socket socket; private Thread receiveThread; @@ -22,7 +22,7 @@ public class Client extends Controller { public Client(String hostname) { this.port = Data.port(); this.hostname = hostname; - this.parser = new DataParser(); + this.parser = new Parser(this); } /** @@ -71,16 +71,12 @@ public class Client extends Controller { * @param in The inputStream */ public void receive(DataInputStream in) { - Data data = null; while (isConnected) { try { - data = this.parser.parse(in.readUTF()); + this.parser.parse(in.readUTF()); } catch (IOException e) { e.printStackTrace(); } - if (data != null) { - send(this.parser.parse(data)); - } } } @@ -100,4 +96,9 @@ public class Client extends Controller { e.printStackTrace(); } } + + @Override + public void onDataReceived(String data) { + send(data); + } } diff --git a/core/src/netwerkprog/game/client/Parser.java b/core/src/netwerkprog/game/client/Parser.java new file mode 100644 index 0000000..79849cb --- /dev/null +++ b/core/src/netwerkprog/game/client/Parser.java @@ -0,0 +1,15 @@ +package netwerkprog.game.client; + +import netwerkprog.game.util.data.ParserCallback; + +public class Parser { + private final ParserCallback callback; + + public Parser(ParserCallback callback) { + this.callback = callback; + } + + public void parse(String data) { + callback.onDataReceived(data); + } +} diff --git a/core/src/netwerkprog/game/server/Parser.java b/core/src/netwerkprog/game/server/Parser.java new file mode 100644 index 0000000..2da6f75 --- /dev/null +++ b/core/src/netwerkprog/game/server/Parser.java @@ -0,0 +1,15 @@ +package netwerkprog.game.server; + +import netwerkprog.game.util.data.ParserCallback; + +public class Parser { + private final ParserCallback callback; + + public Parser(ParserCallback callback) { + this.callback = callback; + } + + public void parse(String request) { + callback.onDataReceived(null); + } +} diff --git a/core/src/netwerkprog/game/server/ServerClient.java b/core/src/netwerkprog/game/server/ServerClient.java index 311d18b..f937bf4 100644 --- a/core/src/netwerkprog/game/server/ServerClient.java +++ b/core/src/netwerkprog/game/server/ServerClient.java @@ -1,25 +1,25 @@ package netwerkprog.game.server; import netwerkprog.game.server.controllers.SessionController; -import netwerkprog.game.util.data.Data; +import netwerkprog.game.util.data.ParserCallback; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; import java.net.Socket; -public class ServerClient implements Runnable { +public class ServerClient implements Runnable, ParserCallback { private DataInputStream in; private DataOutputStream out; - private Socket socket; - private String name; - private SessionController server; - private boolean isConnected = false; + private final String name; + private final SessionController server; + private final Parser parser; + private boolean isConnected; public ServerClient(String name, Socket socket, SessionController server) { this.name = name; this.server = server; - this.socket = socket; + this.parser = new Parser(this); try { this.in = new DataInputStream(socket.getInputStream()); this.out = new DataOutputStream(socket.getOutputStream()); @@ -30,14 +30,6 @@ public class ServerClient implements Runnable { } } - public void readUTF() { - try { - System.out.println("[SERVERCLIENT] got message: " + in.readUTF()); - } catch (IOException e) { - e.printStackTrace(); - } - } - public void writeUTF(String text) { try { this.out.writeUTF(text); @@ -48,27 +40,26 @@ public class ServerClient implements Runnable { @Override public void run() { - while (isConnected) { + while (this.isConnected) { try { String received = this.in.readUTF(); - Data data = server.parseData(received); - if (data.toString().equals("\\quit")) { - this.isConnected = false; - this.server.removeClient(this); - } else { - this.out.writeUTF(data.toString()); - } + this.parser.parse(received); } catch (IOException e) { System.out.println("[SERVERCLIENT] caught exception - " + e.getMessage()); System.out.println("[SERVERCLIENT] terminating failing connection..."); - isConnected = false; + this.isConnected = false; System.out.println("[SERVERCLIENT] done!"); } } } public String getName() { - return name; + return this.name; + } + + @Override + public void onDataReceived(String data) { + writeUTF(data); } } diff --git a/core/src/netwerkprog/game/server/controllers/DataController.java b/core/src/netwerkprog/game/server/controllers/DataController.java new file mode 100644 index 0000000..79e8a02 --- /dev/null +++ b/core/src/netwerkprog/game/server/controllers/DataController.java @@ -0,0 +1,8 @@ +package netwerkprog.game.server.controllers; + +public class DataController { + public DataController() { + } + + +} diff --git a/core/src/netwerkprog/game/server/controllers/SessionController.java b/core/src/netwerkprog/game/server/controllers/SessionController.java index 23f35f1..94a7c0b 100644 --- a/core/src/netwerkprog/game/server/controllers/SessionController.java +++ b/core/src/netwerkprog/game/server/controllers/SessionController.java @@ -1,13 +1,12 @@ package netwerkprog.game.server.controllers; import netwerkprog.game.server.ServerClient; -import netwerkprog.game.util.data.Data; -import netwerkprog.game.util.data.DataParser; import netwerkprog.game.util.application.Controller; +import netwerkprog.game.util.data.Data; import java.io.DataInputStream; -import java.io.DataOutputStream; import java.io.IOException; +import java.io.ObjectOutputStream; import java.net.ServerSocket; import java.net.Socket; import java.util.ArrayList; @@ -19,13 +18,11 @@ import java.util.Set; */ public class SessionController extends Controller { private ServerSocket serverSocket; - private final DataParser parser; private final ArrayList clients = new ArrayList<>(); private final HashMap clientThreads = new HashMap<>(); private boolean listening; public SessionController() { - this.parser = new DataParser(); this.listening = true; } @@ -61,7 +58,7 @@ public class SessionController extends Controller { public void registerClient(Socket socket) { try { System.out.println("[SERVER] got new client on " + socket.getInetAddress().getHostAddress()); - DataOutputStream outputStream = new DataOutputStream(socket.getOutputStream()); + ObjectOutputStream outputStream = new ObjectOutputStream(socket.getOutputStream()); DataInputStream inputStream = new DataInputStream(socket.getInputStream()); outputStream.writeUTF("Enter username: "); @@ -80,15 +77,6 @@ public class SessionController extends Controller { } } - /** - * Parses the request to the requested Data. - * @param request The request to parse. - * @return Parsed Data. - */ - public Data parseData(String request) { - return this.parser.parse(request); - } - /** * Sends a server message to all connected clients. * @param text message. diff --git a/core/src/netwerkprog/game/util/data/Callback.java b/core/src/netwerkprog/game/util/data/Callback.java deleted file mode 100644 index a0b2561..0000000 --- a/core/src/netwerkprog/game/util/data/Callback.java +++ /dev/null @@ -1,5 +0,0 @@ -package netwerkprog.game.util.data; - -public interface Callback { - void onDataReceived(); -} diff --git a/core/src/netwerkprog/game/util/data/DataParser.java b/core/src/netwerkprog/game/util/data/DataParser.java deleted file mode 100644 index 487fad2..0000000 --- a/core/src/netwerkprog/game/util/data/DataParser.java +++ /dev/null @@ -1,14 +0,0 @@ -package netwerkprog.game.util.data; - -public class DataParser { - public DataParser() { - } - - public Data parse(String request) { - return null; - } - - public String parse(Data data) { - return null; - } -} diff --git a/core/src/netwerkprog/game/util/data/ParserCallback.java b/core/src/netwerkprog/game/util/data/ParserCallback.java new file mode 100644 index 0000000..3ce8c27 --- /dev/null +++ b/core/src/netwerkprog/game/util/data/ParserCallback.java @@ -0,0 +1,5 @@ +package netwerkprog.game.util.data; + +public interface ParserCallback { + void onDataReceived(String data); +} -- 2.47.2