diff --git a/dependency-reduced-pom.xml b/dependency-reduced-pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..5c1e203739236dd53dd5a57d9c7c4fbfb525537c --- /dev/null +++ b/dependency-reduced-pom.xml @@ -0,0 +1,42 @@ +<?xml version="1.0" encoding="UTF-8"?> +<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> + <groupId>com.comandante</groupId> + <artifactId>creeper</artifactId> + <version>0.1.0-SNAPSHOT</version> + <build> + <plugins> + <plugin> + <artifactId>maven-compiler-plugin</artifactId> + <version>3.1</version> + <configuration> + <source>1.7</source> + <target>1.7</target> + </configuration> + </plugin> + <plugin> + <artifactId>maven-shade-plugin</artifactId> + <version>2.3</version> + <executions> + <execution> + <phase>package</phase> + <goals> + <goal>shade</goal> + </goals> + <configuration> + <transformers> + <transformer> + <manifestEntries> + <Main-Class>com.comandante.creeper.Main</Main-Class> + <Build-Number>0.1.0-SNAPSHOT</Build-Number> + </manifestEntries> + </transformer> + </transformers> + </configuration> + </execution> + </executions> + </plugin> + </plugins> + </build> +</project> + diff --git a/pom.xml b/pom.xml index 9bfb2a047219548a0dbca0df1dd3ba747c9179b7..8dfe950a442f393ad26e1a4e5559d1921eea9d9a 100644 --- a/pom.xml +++ b/pom.xml @@ -2,33 +2,70 @@ <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/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> + <modelVersion>4.0.0</modelVersion> - <groupId>com.comandante</groupId> - <artifactId>creeper</artifactId> - <version>1.0-SNAPSHOT</version> - <dependencies> - <dependency> - <groupId>com.google.guava</groupId> - <artifactId>guava</artifactId> - <version>16.0.1</version> - </dependency> - <dependency> - <groupId>io.netty</groupId> - <artifactId>netty</artifactId> - <version>3.6.2.Final</version> - </dependency> - <dependency> - <groupId>commons-codec</groupId> - <artifactId>commons-codec</artifactId> - <version>20041127.091804</version> - </dependency> - <dependency> - <groupId>org.fusesource.jansi</groupId> - <artifactId>jansi</artifactId> - <version>1.9</version> - </dependency> - </dependencies> + <groupId>com.comandante</groupId> + <artifactId>creeper</artifactId> + <version>0.1.0-SNAPSHOT</version> + <dependencies> + <dependency> + <groupId>com.google.guava</groupId> + <artifactId>guava</artifactId> + <version>16.0.1</version> + </dependency> + <dependency> + <groupId>io.netty</groupId> + <artifactId>netty</artifactId> + <version>3.6.2.Final</version> + </dependency> + <dependency> + <groupId>commons-codec</groupId> + <artifactId>commons-codec</artifactId> + <version>20041127.091804</version> + </dependency> + <dependency> + <groupId>org.fusesource.jansi</groupId> + <artifactId>jansi</artifactId> + <version>1.9</version> + </dependency> + </dependencies> + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-compiler-plugin</artifactId> + <version>3.1</version> + <configuration> + <source>1.7</source> + <target>1.7</target> + </configuration> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-shade-plugin</artifactId> + <version>2.3</version> + <executions> + <execution> + <phase>package</phase> + <goals> + <goal>shade</goal> + </goals> + <configuration> + <transformers> + <transformer + implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> + <manifestEntries> + <Main-Class>com.comandante.creeper.Main</Main-Class> + <Build-Number>0.1.0-SNAPSHOT</Build-Number> + </manifestEntries> + </transformer> + </transformers> + </configuration> + </execution> + </executions> + </plugin> + </plugins> + </build> </project> diff --git a/src/main/java/com/comandante/Main.java b/src/main/java/com/comandante/creeper/Main.java similarity index 84% rename from src/main/java/com/comandante/Main.java rename to src/main/java/com/comandante/creeper/Main.java index 0df024d1f28cdcc47a395102ec8554053667732d..b81534fffda9397e46ce1584ee1845d7332cc1e9 100644 --- a/src/main/java/com/comandante/Main.java +++ b/src/main/java/com/comandante/creeper/Main.java @@ -1,10 +1,10 @@ -package com.comandante; +package com.comandante.creeper; -import com.comandante.managers.GameManager; -import com.comandante.managers.PlayerManager; -import com.comandante.managers.RoomManager; -import com.comandante.model.Room; -import com.comandante.server.CreeperServer; +import com.comandante.creeper.managers.GameManager; +import com.comandante.creeper.managers.PlayerManager; +import com.comandante.creeper.managers.RoomManager; +import com.comandante.creeper.model.Room; +import com.comandante.creeper.server.CreeperServer; import com.google.common.base.Optional; public class Main { diff --git a/src/main/java/com/comandante/command/CommandType.java b/src/main/java/com/comandante/creeper/command/CommandType.java similarity index 80% rename from src/main/java/com/comandante/command/CommandType.java rename to src/main/java/com/comandante/creeper/command/CommandType.java index 27c5bf5d3b4691c4f927661d2c086551cb704446..9330bfc9b440624e8e2753c4e6bf6b6c0c20ebd3 100644 --- a/src/main/java/com/comandante/command/CommandType.java +++ b/src/main/java/com/comandante/creeper/command/CommandType.java @@ -1,4 +1,4 @@ -package com.comandante.command; +package com.comandante.creeper.command; import java.util.Set; diff --git a/src/main/java/com/comandante/command/CommandTypeHelper.java b/src/main/java/com/comandante/creeper/command/CommandTypeHelper.java similarity index 96% rename from src/main/java/com/comandante/command/CommandTypeHelper.java rename to src/main/java/com/comandante/creeper/command/CommandTypeHelper.java index 01f356323e8c0d492817f9c98e9e0c323734868f..3ee868cc13d980cf4d0c30b933bab9b81751c4ab 100644 --- a/src/main/java/com/comandante/command/CommandTypeHelper.java +++ b/src/main/java/com/comandante/creeper/command/CommandTypeHelper.java @@ -1,4 +1,4 @@ -package com.comandante.command; +package com.comandante.creeper.command; import com.google.common.base.Function; import com.google.common.collect.Iterators; diff --git a/src/main/java/com/comandante/command/DefaultCommandHandler.java b/src/main/java/com/comandante/creeper/command/DefaultCommandHandler.java similarity index 86% rename from src/main/java/com/comandante/command/DefaultCommandHandler.java rename to src/main/java/com/comandante/creeper/command/DefaultCommandHandler.java index e80b36c30543b12cb8f298929a0505c0df045d7b..4ff01c77fd61fc6494ef2823468098386818bcf6 100644 --- a/src/main/java/com/comandante/command/DefaultCommandHandler.java +++ b/src/main/java/com/comandante/creeper/command/DefaultCommandHandler.java @@ -1,12 +1,12 @@ -package com.comandante.command; +package com.comandante.creeper.command; -import com.comandante.managers.MovementManager; -import com.comandante.model.Movement; -import com.comandante.managers.GameManager; -import com.comandante.model.Player; -import com.comandante.model.Room; -import com.comandante.server.CreeperSession; +import com.comandante.creeper.managers.MovementManager; +import com.comandante.creeper.model.Movement; +import com.comandante.creeper.managers.GameManager; +import com.comandante.creeper.model.Player; +import com.comandante.creeper.model.Room; +import com.comandante.creeper.server.CreeperSession; import com.google.common.base.Optional; import org.jboss.netty.channel.MessageEvent; diff --git a/src/main/java/com/comandante/command/DefaultCommandType.java b/src/main/java/com/comandante/creeper/command/DefaultCommandType.java similarity index 97% rename from src/main/java/com/comandante/command/DefaultCommandType.java rename to src/main/java/com/comandante/creeper/command/DefaultCommandType.java index 343d69ea2abef6eb84c6f77945c10d9c8e4282ce..5c2d67589ccfb66b3d43d0b50600e3f9416cdbbe 100644 --- a/src/main/java/com/comandante/command/DefaultCommandType.java +++ b/src/main/java/com/comandante/creeper/command/DefaultCommandType.java @@ -1,4 +1,4 @@ -package com.comandante.command; +package com.comandante.creeper.command; import java.util.Arrays; diff --git a/src/main/java/com/comandante/managers/GameManager.java b/src/main/java/com/comandante/creeper/managers/GameManager.java similarity index 74% rename from src/main/java/com/comandante/managers/GameManager.java rename to src/main/java/com/comandante/creeper/managers/GameManager.java index eb98ab7b0dc7513cbdac00d874a1603c24f81ceb..aac258107c4e2f4c01b3ae105bac00ff093e1c65 100644 --- a/src/main/java/com/comandante/managers/GameManager.java +++ b/src/main/java/com/comandante/creeper/managers/GameManager.java @@ -1,10 +1,10 @@ -package com.comandante.managers; +package com.comandante.creeper.managers; -import com.comandante.model.Movement; -import com.comandante.model.Player; -import com.comandante.model.Room; -import com.comandante.server.CreeperSession; +import com.comandante.creeper.model.Movement; +import com.comandante.creeper.model.Player; +import com.comandante.creeper.model.Room; +import com.comandante.creeper.server.CreeperSession; import com.google.common.base.Optional; import com.google.common.collect.Interners; import org.fusesource.jansi.Ansi; @@ -17,6 +17,16 @@ import java.util.Set; public class GameManager { + public static String LOGO = + " ██████╗██████╗ ███████╗███████╗██████╗ ███████╗██████╗ \r\n" + + "██╔â•â•â•â•â•██╔â•â•██╗██╔â•â•â•â•â•██╔â•â•â•â•â•██╔â•â•██╗██╔â•â•â•â•â•██╔â•â•██╗\r\n" + + "██║ ██████╔â•█████╗ █████╗ ██████╔â•█████╗ ██████╔â•\r\n" + + "██║ ██╔â•â•██╗██╔â•â•╠██╔â•â•╠██╔â•â•â•╠██╔â•â•╠██╔â•â•██╗\r\n" + + "╚██████╗██║ ██║███████╗███████╗██║ ███████╗██║ ██║\r\n" + + " ╚â•â•â•â•â•â•╚â•╠╚â•â•╚â•â•â•â•â•â•â•╚â•â•â•â•â•â•â•╚â•╠╚â•â•â•â•â•â•â•╚â•╠╚â•â•"; + + public static String VERSION = "1.0-SNAPSHOT"; + private final RoomManager roomManager; private final PlayerManager playerManager; @@ -107,20 +117,23 @@ public class GameManager { } private void printExits(Room room, Channel channel) { - channel.write("-exits: "); - if (room.getEastId().isPresent()) { - channel.write("e(ast) "); - } + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append("move: "); + stringBuilder.append(new Ansi().fg(Ansi.Color.BLUE).toString()); if (room.getNorthId().isPresent()) { - channel.write("n(orth) "); + stringBuilder.append("north "); } if (room.getSouthId().isPresent()) { - channel.write("s(outh). "); + stringBuilder.append("south "); + } + if (room.getEastId().isPresent()) { + stringBuilder.append("east "); } if (room.getWestId().isPresent()) { - channel.write("w(est). "); + stringBuilder.append("west "); } - channel.write("\r\n"); + stringBuilder.append(new Ansi().reset().toString()); + channel.write(stringBuilder.toString() + "\r\n"); } public void currentRoomLogic(CreeperSession creeperSession, MessageEvent e) { diff --git a/src/main/java/com/comandante/managers/MovementManager.java b/src/main/java/com/comandante/creeper/managers/MovementManager.java similarity index 89% rename from src/main/java/com/comandante/managers/MovementManager.java rename to src/main/java/com/comandante/creeper/managers/MovementManager.java index c18d978c8e575f849440fa980874b916d40cf1e7..00938df63a9341a4eeb22950d082b951da5f7d5d 100644 --- a/src/main/java/com/comandante/managers/MovementManager.java +++ b/src/main/java/com/comandante/creeper/managers/MovementManager.java @@ -1,9 +1,9 @@ -package com.comandante.managers; +package com.comandante.creeper.managers; -import com.comandante.command.CommandType; -import com.comandante.model.Movement; -import com.comandante.model.Player; -import com.comandante.model.Room; +import com.comandante.creeper.command.CommandType; +import com.comandante.creeper.model.Movement; +import com.comandante.creeper.model.Player; +import com.comandante.creeper.model.Room; import com.google.common.base.Optional; import org.jboss.netty.channel.MessageEvent; @@ -35,7 +35,7 @@ public class MovementManager { return Optional.of( new Movement(player, currentRoom.getRoomId(), currentRoom.getEastId().get(), cmdType)); } - + public static Optional<Movement> moveWest(CommandType cmdType, Player player, Room currentRoom, MessageEvent event) { if (!currentRoom.getWestId().isPresent()) { event.getChannel().write("There's no western exit.\r\n"); diff --git a/src/main/java/com/comandante/managers/PlayerManager.java b/src/main/java/com/comandante/creeper/managers/PlayerManager.java similarity index 92% rename from src/main/java/com/comandante/managers/PlayerManager.java rename to src/main/java/com/comandante/creeper/managers/PlayerManager.java index 56c8b3f2190dc59191d54e8b1eb8063c907ab838..3fac47a11eeff1791a8ad65e85ea7bd6d8d62bb6 100644 --- a/src/main/java/com/comandante/managers/PlayerManager.java +++ b/src/main/java/com/comandante/creeper/managers/PlayerManager.java @@ -1,7 +1,7 @@ -package com.comandante.managers; +package com.comandante.creeper.managers; -import com.comandante.model.Player; +import com.comandante.creeper.model.Player; import org.apache.commons.codec.binary.Base64; import java.util.Iterator; diff --git a/src/main/java/com/comandante/managers/RoomManager.java b/src/main/java/com/comandante/creeper/managers/RoomManager.java similarity index 85% rename from src/main/java/com/comandante/managers/RoomManager.java rename to src/main/java/com/comandante/creeper/managers/RoomManager.java index 95bd1345d16e6474d4dac7cda167e1f2b4c3c5a4..d0d6f19b50878aa800ebabec1b96f94e501d0125 100644 --- a/src/main/java/com/comandante/managers/RoomManager.java +++ b/src/main/java/com/comandante/creeper/managers/RoomManager.java @@ -1,6 +1,6 @@ -package com.comandante.managers; +package com.comandante.creeper.managers; -import com.comandante.model.Room; +import com.comandante.creeper.model.Room; import java.util.Iterator; import java.util.concurrent.ConcurrentHashMap; diff --git a/src/main/java/com/comandante/model/Movement.java b/src/main/java/com/comandante/creeper/model/Movement.java similarity index 90% rename from src/main/java/com/comandante/model/Movement.java rename to src/main/java/com/comandante/creeper/model/Movement.java index 3626548531e39e6c80f2a4454f0fc83fe1eaac5d..9b1dfe48a28b2262040eac3d9c24b8f7f050c2c6 100644 --- a/src/main/java/com/comandante/model/Movement.java +++ b/src/main/java/com/comandante/creeper/model/Movement.java @@ -1,6 +1,6 @@ -package com.comandante.model; +package com.comandante.creeper.model; -import com.comandante.command.CommandType; +import com.comandante.creeper.command.CommandType; public class Movement { diff --git a/src/main/java/com/comandante/model/Player.java b/src/main/java/com/comandante/creeper/model/Player.java similarity index 93% rename from src/main/java/com/comandante/model/Player.java rename to src/main/java/com/comandante/creeper/model/Player.java index eef7d3584294e05a4f6ad2a7ab7c25545db230cf..9666279680210c4e258610caa75584da95fc08f1 100644 --- a/src/main/java/com/comandante/model/Player.java +++ b/src/main/java/com/comandante/creeper/model/Player.java @@ -1,4 +1,4 @@ -package com.comandante.model; +package com.comandante.creeper.model; import org.apache.commons.codec.binary.Base64; diff --git a/src/main/java/com/comandante/model/Room.java b/src/main/java/com/comandante/creeper/model/Room.java similarity index 97% rename from src/main/java/com/comandante/model/Room.java rename to src/main/java/com/comandante/creeper/model/Room.java index 5ece1a76115b30cda3fd63845df2a6301c3f0162..9508b627ce6de402a9c599bba740c278af1bd5fa 100644 --- a/src/main/java/com/comandante/model/Room.java +++ b/src/main/java/com/comandante/creeper/model/Room.java @@ -1,4 +1,4 @@ -package com.comandante.model; +package com.comandante.creeper.model; import com.google.common.base.Optional; import com.google.common.collect.ImmutableSet; diff --git a/src/main/java/com/comandante/server/CreeperAuthenticator.java b/src/main/java/com/comandante/creeper/server/CreeperAuthenticator.java similarity index 82% rename from src/main/java/com/comandante/server/CreeperAuthenticator.java rename to src/main/java/com/comandante/creeper/server/CreeperAuthenticator.java index 7749325f9679a2a2fc4cb1ded0ade6b9dce4e9ab..d55a88b4bce4d26dcef3d30c51f024ef34f7d453 100644 --- a/src/main/java/com/comandante/server/CreeperAuthenticator.java +++ b/src/main/java/com/comandante/creeper/server/CreeperAuthenticator.java @@ -1,4 +1,4 @@ -package com.comandante.server; +package com.comandante.creeper.server; import org.jboss.netty.channel.Channel; diff --git a/src/main/java/com/comandante/server/CreeperServer.java b/src/main/java/com/comandante/creeper/server/CreeperServer.java similarity index 89% rename from src/main/java/com/comandante/server/CreeperServer.java rename to src/main/java/com/comandante/creeper/server/CreeperServer.java index 81bfa1539f3a0157a15bd3c40de04022475a67ac..0004dfd44af9e2c7d0c7070f40aaadcb93c20545 100644 --- a/src/main/java/com/comandante/server/CreeperServer.java +++ b/src/main/java/com/comandante/creeper/server/CreeperServer.java @@ -1,7 +1,7 @@ -package com.comandante.server; +package com.comandante.creeper.server; -import com.comandante.managers.GameManager; +import com.comandante.creeper.managers.GameManager; import org.jboss.netty.bootstrap.ServerBootstrap; import org.jboss.netty.channel.socket.nio.NioServerSocketChannelFactory; diff --git a/src/main/java/com/comandante/server/CreeperServerHandler.java b/src/main/java/com/comandante/creeper/server/CreeperServerHandler.java similarity index 88% rename from src/main/java/com/comandante/server/CreeperServerHandler.java rename to src/main/java/com/comandante/creeper/server/CreeperServerHandler.java index fd7f9f85691a0219b0da40f7b01aeea3bfe265b4..4bbe26f49dc4fcc1b3de53bc20f892dcd67337c1 100644 --- a/src/main/java/com/comandante/server/CreeperServerHandler.java +++ b/src/main/java/com/comandante/creeper/server/CreeperServerHandler.java @@ -1,8 +1,8 @@ -package com.comandante.server; +package com.comandante.creeper.server; -import com.comandante.command.DefaultCommandHandler; -import com.comandante.command.DefaultCommandType; -import com.comandante.managers.GameManager; +import com.comandante.creeper.command.DefaultCommandHandler; +import com.comandante.creeper.command.DefaultCommandType; +import com.comandante.creeper.managers.GameManager; import com.google.common.base.Optional; import org.jboss.netty.channel.ChannelEvent; import org.jboss.netty.channel.ChannelHandlerContext; @@ -31,7 +31,7 @@ public class CreeperServerHandler extends SimpleChannelUpstreamHandler { @Override public void channelConnected(ChannelHandlerContext ctx, ChannelStateEvent e) throws Exception { - // Send greeting for a new connection. + e.getChannel().write("\r\n\r\n\r\n\r\n" + GameManager.LOGO + "\r\n" + GameManager.VERSION + "\r\n\r\n\r\n\r\n"); e.getChannel().write("username: "); CreeperSession creeperSession = new CreeperSession(); creeperSession.setState(CreeperSession.State.promptedForUsername); @@ -68,13 +68,13 @@ public class CreeperServerHandler extends SimpleChannelUpstreamHandler { } boolean b = creeperAuthenticator.authenticateAndRegisterPlayer(creeperSession.getUsername().get(), creeperSession.getPassword().get(), e.getChannel()); if (!b) { - e.getChannel().write("Auth failed.\r\n"); + e.getChannel().write("authentication failed.\r\n"); e.getChannel().write("username: "); creeperSession.setState(CreeperSession.State.promptedForUsername); } else { creeperSession.setAuthed(true); creeperSession.setState(CreeperSession.State.authed); - e.getChannel().write("Welcome to bertha.\r\n"); + e.getChannel().write("Welcome back.\r\n"); } } diff --git a/src/main/java/com/comandante/server/CreeperServerPipelineFactory.java b/src/main/java/com/comandante/creeper/server/CreeperServerPipelineFactory.java similarity index 96% rename from src/main/java/com/comandante/server/CreeperServerPipelineFactory.java rename to src/main/java/com/comandante/creeper/server/CreeperServerPipelineFactory.java index 6e0b291d0427531042c143128df356e91ab2f2aa..6fb64feb4017a21c927cdcde2985cbf4868de117 100644 --- a/src/main/java/com/comandante/server/CreeperServerPipelineFactory.java +++ b/src/main/java/com/comandante/creeper/server/CreeperServerPipelineFactory.java @@ -1,4 +1,4 @@ -package com.comandante.server; +package com.comandante.creeper.server; import org.jboss.netty.channel.ChannelHandler; diff --git a/src/main/java/com/comandante/server/CreeperSession.java b/src/main/java/com/comandante/creeper/server/CreeperSession.java similarity index 96% rename from src/main/java/com/comandante/server/CreeperSession.java rename to src/main/java/com/comandante/creeper/server/CreeperSession.java index 011bafb32aa5afc49a0075ea5bf1a0721c6a0bc6..20a79908a4d4c4209b6ad6f3980bb058dd15edf9 100644 --- a/src/main/java/com/comandante/server/CreeperSession.java +++ b/src/main/java/com/comandante/creeper/server/CreeperSession.java @@ -1,4 +1,4 @@ -package com.comandante.server; +package com.comandante.creeper.server; import com.google.common.base.Optional; diff --git a/src/main/java/com/comandante/server/CreeperSimpleAuthenticator.java b/src/main/java/com/comandante/creeper/server/CreeperSimpleAuthenticator.java similarity index 91% rename from src/main/java/com/comandante/server/CreeperSimpleAuthenticator.java rename to src/main/java/com/comandante/creeper/server/CreeperSimpleAuthenticator.java index 8b7ca74288ff05dcfdd582cc514c6b058d23d0a7..454707a9d6f5f4b458062c2a35bbceed1aa616df 100644 --- a/src/main/java/com/comandante/server/CreeperSimpleAuthenticator.java +++ b/src/main/java/com/comandante/creeper/server/CreeperSimpleAuthenticator.java @@ -1,7 +1,7 @@ -package com.comandante.server; +package com.comandante.creeper.server; -import com.comandante.managers.GameManager; -import com.comandante.model.Player; +import com.comandante.creeper.managers.GameManager; +import com.comandante.creeper.model.Player; import org.jboss.netty.channel.Channel; import java.util.HashMap;