mirror of
https://github.com/michaelrausch/Party-Parrots-At-Sea.git
synced 2026-05-09 06:18:44 +00:00
Boat names now change, just the issue of the lobby not updating unless another person joins/leaves to try and fix.
tags: #story[1142]
This commit is contained in:
@@ -10,6 +10,7 @@ import org.slf4j.Logger;
|
|||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import seng302.gameServer.server.messages.BoatAction;
|
import seng302.gameServer.server.messages.BoatAction;
|
||||||
import seng302.gameServer.server.messages.BoatStatus;
|
import seng302.gameServer.server.messages.BoatStatus;
|
||||||
|
import seng302.gameServer.server.messages.CustomizeRequestType;
|
||||||
import seng302.gameServer.server.messages.MarkRoundingMessage;
|
import seng302.gameServer.server.messages.MarkRoundingMessage;
|
||||||
import seng302.gameServer.server.messages.MarkType;
|
import seng302.gameServer.server.messages.MarkType;
|
||||||
import seng302.gameServer.server.messages.Message;
|
import seng302.gameServer.server.messages.Message;
|
||||||
@@ -509,6 +510,18 @@ public class GameState implements Runnable {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void customizePlayer(long playerID, CustomizeRequestType requestType,
|
||||||
|
byte[] customizeData) {
|
||||||
|
System.out.println(playerID + " " + requestType.toString());
|
||||||
|
ServerYacht playerYacht = yachts.get((int) playerID);
|
||||||
|
|
||||||
|
if (requestType.equals(CustomizeRequestType.NAME)) {
|
||||||
|
String name = new String(customizeData);
|
||||||
|
System.out.println(playerYacht.getBoatName());
|
||||||
|
playerYacht.setBoatName(name);
|
||||||
|
System.out.println(playerYacht.getBoatName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private static Mark markCollidedWith(ServerYacht yacht) {
|
private static Mark markCollidedWith(ServerYacht yacht) {
|
||||||
Set<Mark> marksInRace = GameState.getMarks();
|
Set<Mark> marksInRace = GameState.getMarks();
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
package seng302.gameServer;
|
package seng302.gameServer;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
import seng302.gameServer.server.messages.BoatAction;
|
||||||
import seng302.gameServer.server.messages.ClientType;
|
import seng302.gameServer.server.messages.ClientType;
|
||||||
|
import seng302.gameServer.server.messages.CustomizeRequestType;
|
||||||
import seng302.gameServer.server.messages.Message;
|
import seng302.gameServer.server.messages.Message;
|
||||||
import seng302.model.stream.packets.StreamPacket;
|
import seng302.model.stream.packets.StreamPacket;
|
||||||
import seng302.gameServer.server.messages.BoatAction;
|
|
||||||
|
|
||||||
|
|
||||||
public class ServerPacketParser {
|
public class ServerPacketParser {
|
||||||
@@ -22,5 +22,11 @@ public class ServerPacketParser {
|
|||||||
long value = Message.bytesToLong(Arrays.copyOfRange(payload, 0, 1));
|
long value = Message.bytesToLong(Arrays.copyOfRange(payload, 0, 1));
|
||||||
return ClientType.getClientType((int) value);
|
return ClientType.getClientType((int) value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static CustomizeRequestType extractCustomizationType(StreamPacket packet) {
|
||||||
|
byte[] payload = packet.getPayload();
|
||||||
|
long type = Message.bytesToLong(Arrays.copyOfRange(payload, 4, 5));
|
||||||
|
return CustomizeRequestType.getRequestType((int) type);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ import java.io.OutputStream;
|
|||||||
import java.net.Socket;
|
import java.net.Socket;
|
||||||
import java.net.SocketException;
|
import java.net.SocketException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Observable;
|
import java.util.Observable;
|
||||||
import java.util.Observer;
|
import java.util.Observer;
|
||||||
@@ -19,26 +20,23 @@ import java.util.zip.CRC32;
|
|||||||
import java.util.zip.Checksum;
|
import java.util.zip.Checksum;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
import seng302.gameServer.server.messages.BoatAction;
|
||||||
|
import seng302.gameServer.server.messages.BoatLocationMessage;
|
||||||
|
import seng302.gameServer.server.messages.ClientType;
|
||||||
|
import seng302.gameServer.server.messages.CustomizeRequestType;
|
||||||
|
import seng302.gameServer.server.messages.Message;
|
||||||
|
import seng302.gameServer.server.messages.RegistrationResponseMessage;
|
||||||
|
import seng302.gameServer.server.messages.RegistrationResponseStatus;
|
||||||
|
import seng302.gameServer.server.messages.XMLMessage;
|
||||||
|
import seng302.gameServer.server.messages.XMLMessageSubType;
|
||||||
import seng302.gameServer.server.messages.YachtEventCodeMessage;
|
import seng302.gameServer.server.messages.YachtEventCodeMessage;
|
||||||
import seng302.model.Player;
|
import seng302.model.Player;
|
||||||
|
import seng302.model.ServerYacht;
|
||||||
import seng302.model.stream.packets.PacketType;
|
import seng302.model.stream.packets.PacketType;
|
||||||
import seng302.model.stream.packets.StreamPacket;
|
import seng302.model.stream.packets.StreamPacket;
|
||||||
import seng302.model.stream.xml.generator.Race;
|
import seng302.model.stream.xml.generator.Race;
|
||||||
import seng302.model.stream.xml.generator.Regatta;
|
import seng302.model.stream.xml.generator.Regatta;
|
||||||
import seng302.utilities.XMLGenerator;
|
import seng302.utilities.XMLGenerator;
|
||||||
import seng302.gameServer.server.messages.BoatAction;
|
|
||||||
import seng302.gameServer.server.messages.BoatLocationMessage;
|
|
||||||
import seng302.gameServer.server.messages.BoatSubMessage;
|
|
||||||
import seng302.gameServer.server.messages.ClientType;
|
|
||||||
import seng302.gameServer.server.messages.Message;
|
|
||||||
import seng302.gameServer.server.messages.RaceStatus;
|
|
||||||
import seng302.gameServer.server.messages.RaceStatusMessage;
|
|
||||||
import seng302.gameServer.server.messages.RaceType;
|
|
||||||
import seng302.gameServer.server.messages.RegistrationResponseMessage;
|
|
||||||
import seng302.gameServer.server.messages.RegistrationResponseStatus;
|
|
||||||
import seng302.gameServer.server.messages.XMLMessage;
|
|
||||||
import seng302.gameServer.server.messages.XMLMessageSubType;
|
|
||||||
import seng302.model.ServerYacht;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A class describing a single connection to a Client for the purposes of sending and receiving on
|
* A class describing a single connection to a Client for the purposes of sending and receiving on
|
||||||
@@ -206,6 +204,14 @@ public class ServerToClientThread implements Runnable, Observer {
|
|||||||
|
|
||||||
case RACE_CUSTOMIZATION_REQUEST:
|
case RACE_CUSTOMIZATION_REQUEST:
|
||||||
System.out.println("CUSTOMIZATION RECEIVED");
|
System.out.println("CUSTOMIZATION RECEIVED");
|
||||||
|
Long sourceID = Message
|
||||||
|
.bytesToLong(Arrays.copyOfRange(payload, 0, 3));
|
||||||
|
CustomizeRequestType requestType = ServerPacketParser
|
||||||
|
.extractCustomizationType(
|
||||||
|
new StreamPacket(type, payloadLength, timeStamp, payload));
|
||||||
|
GameState.customizePlayer(sourceID, requestType,
|
||||||
|
Arrays.copyOfRange(payload, 6, payload.length));
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
logger.warn("Packet has been dropped", 1);
|
logger.warn("Packet has been dropped", 1);
|
||||||
|
|||||||
@@ -298,6 +298,10 @@ public class ServerYacht extends Observable {
|
|||||||
return country;
|
return country;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setBoatName(String name) {
|
||||||
|
boatName = name;
|
||||||
|
shortName = name.split(" ")[0];
|
||||||
|
}
|
||||||
|
|
||||||
public GeoPoint getLocation() {
|
public GeoPoint getLocation() {
|
||||||
return location;
|
return location;
|
||||||
|
|||||||
@@ -32,6 +32,9 @@ public class CustomizationController {
|
|||||||
public void submitCustomization() {
|
public void submitCustomization() {
|
||||||
System.out.println("Attempting to send");
|
System.out.println("Attempting to send");
|
||||||
socketThread.sendCustomizationRequest(CustomizeRequestType.NAME, nameField.getText().getBytes());
|
socketThread.sendCustomizationRequest(CustomizeRequestType.NAME, nameField.getText().getBytes());
|
||||||
|
// TODO: 16/08/17 ajm412: Turn colors into byte array.
|
||||||
|
socketThread.sendCustomizationRequest(CustomizeRequestType.COLOR,
|
||||||
|
boatColorPicker.getValue().toString().getBytes());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user