Skip to content

Commit

Permalink
Merge pull request #112 from floralvikings/develop
Browse files Browse the repository at this point in the history
Develop
  • Loading branch information
floralvikings committed Jan 4, 2014
2 parents 5772f99 + 3585275 commit 33560ad
Show file tree
Hide file tree
Showing 83 changed files with 680 additions and 553 deletions.
30 changes: 2 additions & 28 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ allprojects {


group = 'com.jenjinstudios'
version = '0.2.3-alpha'
version = '0.3.0-alpha'

}

Expand Down Expand Up @@ -42,30 +42,4 @@ idea {
project {
languageLevel = 'JDK_1_7'
}
}

clean.doFirst {
deleteRecursively(new File("FileOne.txt"))
deleteRecursively(new File("DirectoryOne/"));
}



void deleteRecursively(File file) {
//list all the directory contents
String[] fileList = file.list()

for (String temp : fileList) {
//construct the file structure
File fileDelete = new File(file, temp)

//recursive delete
delete(fileDelete)
}

//check the directory again, if empty then delete it
if (file.list() == null || file.list().length == 0) {
println "Deleting: " + file
file.delete();
}
}
}
6 changes: 6 additions & 0 deletions jenjin-client-world/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
description = ''

dependencies {
compile project(':jenjin-client')
compile project(':jenjin-world-utils')
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.jenjinstudios.world;

import com.jenjinstudios.math.Vector2D;
import com.jenjinstudios.world.math.Vector2D;
import com.jenjinstudios.world.state.MoveState;

import java.util.LinkedList;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.jenjinstudios.world;

import com.jenjinstudios.math.Vector2D;
import com.jenjinstudios.world.math.Vector2D;

/**
* The {@code ClientObject} class is used to represent a server-side {@code WorldObject} on the client.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.jenjinstudios.world;

import com.jenjinstudios.math.Vector2D;
import com.jenjinstudios.world.math.Vector2D;
import com.jenjinstudios.world.state.MoveState;

import java.util.LinkedList;
Expand Down Expand Up @@ -200,18 +200,4 @@ private void step() {
stepsTaken++;
if (!isIdle) { setVector2D(getVector2D().getVectorInDirection(ClientActor.STEP_LENGTH, trueAngle)); }
}


/**
* Set this object's current position.
* @param vector2D The new position.
*/
public void setVector2D(Vector2D vector2D) { super.setVector2D(vector2D); }

/**
* Set this object' current position.
* @param x The new x coordinate.
* @param z The new z coordinate.
*/
public void setVector2D(double x, double z) { this.setVector2D(new Vector2D(x, z)); }
}
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
package com.jenjinstudios.world;

import com.jenjinstudios.message.Message;
import com.jenjinstudios.io.Message;
import com.jenjinstudios.net.AuthClient;
import com.jenjinstudios.world.state.MoveState;

import java.security.NoSuchAlgorithmException;
import java.util.LinkedList;
import java.util.Set;
import java.util.TreeMap;
Expand Down Expand Up @@ -35,8 +36,9 @@ public class WorldClient extends AuthClient
* @param port The port over which this client will attempt to connect.
* @param username The username that will be used by this client.
* @param password The password that will be used by this client.
* @throws java.security.NoSuchAlgorithmException If there is an error generating encryption keys.
*/
public WorldClient(String address, int port, String username, String password) {
public WorldClient(String address, int port, String username, String password) throws NoSuchAlgorithmException {
super(address, port, username, password);
visibleObjects = new TreeMap<>();
this.password = password;
Expand Down Expand Up @@ -90,7 +92,7 @@ public boolean sendBlockingLoginRequest() {
sendLoginRequest();
long startTime = System.currentTimeMillis();
long timepast = System.currentTimeMillis() - startTime;
while (!hasReceivedLoginResponse() && (timepast < TIMEOUT_MILLIS))
while (isWaitingForLoginResponse() && (timepast < TIMEOUT_MILLIS))
{
try
{
Expand All @@ -108,7 +110,7 @@ public boolean sendBlockingLoginRequest() {
private void sendLoginRequest() {
Message loginRequest = generateLoginRequest();

setReceivedLoginResponse(false);
setWaitingForLoginResponse(true);
queueMessage(loginRequest);
}

Expand All @@ -124,30 +126,11 @@ private Message generateLoginRequest() {
}

@Override
public boolean sendBlockingLogoutRequest() {
sendLogoutRequest();
long startTime = System.currentTimeMillis();
long timepast = System.currentTimeMillis() - startTime;
while (!hasReceivedLogoutResponse() && (timepast < TIMEOUT_MILLIS))
{
try
{
sleep(10);
} catch (InterruptedException e)
{
LOGGER.log(Level.WARNING, "Interrupted while waiting for login response.", e);
}
timepast = System.currentTimeMillis() - startTime;
}
return isLoggedIn();
}

/** Send a LogoutRequest to the server. */
private void sendLogoutRequest() {
protected void sendLogoutRequest() {
Message logoutRequest = new Message("WorldLogoutRequest");

// Send the request, continue when response is received.
setReceivedLogoutResponse(false);
setWaitingForLogoutResponse(true);
queueMessage(logoutRequest);
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package com.jenjinstudios.world.message;

import com.jenjinstudios.message.Message;
import com.jenjinstudios.message.WorldClientExecutableMessage;
import com.jenjinstudios.io.Message;
import com.jenjinstudios.world.ClientActor;
import com.jenjinstudios.world.WorldClient;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package com.jenjinstudios.world.message;

import com.jenjinstudios.message.Message;
import com.jenjinstudios.message.WorldClientExecutableMessage;
import com.jenjinstudios.io.Message;
import com.jenjinstudios.world.ClientActor;
import com.jenjinstudios.world.WorldClient;
import com.jenjinstudios.world.state.MoveState;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
package com.jenjinstudios.world.message;

import com.jenjinstudios.math.Vector2D;
import com.jenjinstudios.message.Message;
import com.jenjinstudios.message.WorldClientExecutableMessage;
import com.jenjinstudios.world.math.Vector2D;
import com.jenjinstudios.io.Message;
import com.jenjinstudios.world.ClientPlayer;
import com.jenjinstudios.world.WorldClient;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package com.jenjinstudios.world.message;

import com.jenjinstudios.message.Message;
import com.jenjinstudios.message.WorldClientExecutableMessage;
import com.jenjinstudios.io.Message;
import com.jenjinstudios.world.WorldClient;

/**
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package com.jenjinstudios.world.message;

import com.jenjinstudios.message.Message;
import com.jenjinstudios.message.WorldClientExecutableMessage;
import com.jenjinstudios.io.Message;
import com.jenjinstudios.world.ClientObject;
import com.jenjinstudios.world.WorldClient;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package com.jenjinstudios.world.message;

import com.jenjinstudios.message.Message;
import com.jenjinstudios.message.WorldClientExecutableMessage;
import com.jenjinstudios.io.Message;
import com.jenjinstudios.world.ClientActor;
import com.jenjinstudios.world.ClientObject;
import com.jenjinstudios.world.WorldClient;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package com.jenjinstudios.world.message;

import com.jenjinstudios.message.Message;
import com.jenjinstudios.message.WorldClientExecutableMessage;
import com.jenjinstudios.io.Message;
import com.jenjinstudios.world.ClientPlayer;
import com.jenjinstudios.world.WorldClient;

Expand All @@ -26,7 +25,7 @@ public ExecutableWorldLoginResponse(WorldClient client, Message message) {
@Override
public void runSynced() {
WorldClient client = getClient();
client.setReceivedLoginResponse(true);
client.setWaitingForLoginResponse(false);
client.setLoggedIn((boolean) getMessage().getArgument("success"));

if (!client.isLoggedIn())
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package com.jenjinstudios.world.message;

import com.jenjinstudios.message.Message;
import com.jenjinstudios.message.WorldClientExecutableMessage;
import com.jenjinstudios.io.Message;
import com.jenjinstudios.world.WorldClient;

/**
Expand All @@ -21,7 +20,7 @@ public ExecutableWorldLogoutResponse(WorldClient client, Message message) {

@Override
public void runSynced() {
getClient().setReceivedLogoutResponse(true);
getClient().setWaitingForLogoutResponse(false);
getClient().setLoggedIn(!((boolean) getMessage().getArgument("success")));
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package com.jenjinstudios.message;
package com.jenjinstudios.world.message;

import com.jenjinstudios.message.AuthClientExecutableMessage;
import com.jenjinstudios.io.Message;
import com.jenjinstudios.world.WorldClient;

/**
Expand Down
5 changes: 5 additions & 0 deletions jenjin-client/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
description = ''

dependencies {
compile project(':jenjin-io')
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.jenjinstudios.message;

import com.jenjinstudios.io.Message;
import com.jenjinstudios.net.AuthClient;

/**
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
package com.jenjinstudios.message;

import com.jenjinstudios.io.Message;
import com.jenjinstudios.net.Client;

import java.util.logging.Level;

/**
* Handles an invalid message received from the server.
* @author Caleb Brinkman
*/
public class ClientExecutableInvalidMessage extends ClientExecutableMessage
{
/**
* Construct an ExecutableMessage with the given Message.
* @param client The client invoking this message.
* @param message The Message.
*/
protected ClientExecutableInvalidMessage(Client client, Message message) {
super(client, message);
}

/** Run the synced portion of this message. */
@Override
public void runSynced() {
}

/** Run asynchronous portion of this message. */
@Override
public void runASync() {
String messageName = (String) getMessage().getArgument("messageName");
short messageID = (short) getMessage().getArgument("messageID");
String reportMessage = "Server reported invalid sent message: " + messageName + " (ID: " + messageID + ")";
Client.LOGGER.log(Level.SEVERE, reportMessage);
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package com.jenjinstudios.message;

import com.jenjinstudios.io.ExecutableMessage;
import com.jenjinstudios.io.Message;
import com.jenjinstudios.io.MessageRegistry;
import com.jenjinstudios.io.MessageType;
import com.jenjinstudios.net.Client;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.jenjinstudios.message;

import com.jenjinstudios.io.Message;
import com.jenjinstudios.io.MessageInputStream;
import com.jenjinstudios.net.Client;

Expand Down Expand Up @@ -39,15 +40,15 @@ public void runSynced() {
@Override
public void runASync() {
byte[] encryptedAESKey = (byte[]) getMessage().getArgument("key");
byte[] decryptedAESKey = MessageInputStream.NO_KEY;
if (Arrays.equals(encryptedAESKey, MessageInputStream.NO_KEY))
return;
PrivateKey privateKey = getClient().getPrivateKey();
try
{
Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding");
cipher.init(Cipher.DECRYPT_MODE, privateKey);
byte[] decryptedAESKey = cipher.doFinal(encryptedAESKey);
getClient().setAESKey(decryptedAESKey);
decryptedAESKey = cipher.doFinal(encryptedAESKey);
} catch (NoSuchAlgorithmException e)
{
LOGGER.log(Level.SEVERE, "Unable to find RSA algorithm!", e);
Expand All @@ -61,6 +62,6 @@ public void runASync() {
{
LOGGER.log(Level.SEVERE, "Illegal block size?!?", e);
}

getClient().setAESKey(decryptedAESKey);
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.jenjinstudios.message;

import com.jenjinstudios.io.Message;
import com.jenjinstudios.net.AuthClient;

/**
Expand All @@ -21,7 +22,7 @@ public ExecutableLoginResponse(AuthClient client, Message message) {
@Override
public void runSynced() {
AuthClient client = getClient();
client.setReceivedLoginResponse(true);
client.setWaitingForLoginResponse(false);
client.setLoggedIn((boolean) getMessage().getArgument("success"));
if (!client.isLoggedIn())
return;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.jenjinstudios.message;

import com.jenjinstudios.io.Message;
import com.jenjinstudios.net.AuthClient;

/**
Expand All @@ -20,7 +21,7 @@ public ExecutableLogoutResponse(AuthClient client, Message message) {

@Override
public void runSynced() {
getClient().setReceivedLogoutResponse(true);
getClient().setWaitingForLogoutResponse(false);
getClient().setLoggedIn(!((boolean) getMessage().getArgument("success")));
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.jenjinstudios.message;

import com.jenjinstudios.io.Message;
import com.jenjinstudios.net.Client;

/**
Expand Down
Loading

0 comments on commit 33560ad

Please sign in to comment.