Implement u_cph | Remove completed TODO statements

- Need testing
This commit is contained in:
Julia Butenhoff 2022-07-18 13:58:47 -05:00 committed by Julia Butenhoff
parent 660fdc3182
commit 365425d9e0
2 changed files with 27 additions and 2 deletions

View File

@ -80,6 +80,9 @@ public class ArkOneController implements TcpHandler {
case "u_ccs":
responses.add(userPlugin.ChangeChatStatus(commandInfo));
break;
case "u_cph":
responses.add(userPlugin.ChangePhoneStatus(commandInfo));
break;
case "p":
responses.add(userPlugin.Ping());
break;
@ -129,8 +132,6 @@ public class ArkOneController implements TcpHandler {
@Override
public void disconnectEvent(Connection connection) {
//TODO: WRITE DISCONNECT LOGIC for u_cos
// SOME HOW STORE THE USER ID HERE SO WE CAN SET THEIR isOnline status to offline
User user = userService.findByConnectionId(connection.getClientIdentifier()).orElse(null);
if (user != null) {

View File

@ -161,6 +161,30 @@ public class UserPlugin {
return ArkOneParser.RemoveXMLTag(doc);
}
public String ChangePhoneStatus(Element element) throws ParserConfigurationException, TransformerException {
//TODO: VERIFY THE ATTRIBUTE NAME
User user = userService.findByUUID(Integer.valueOf(element.getAttribute("id"))).orElse(null);
//TODO: VERIFY THE ATTRIBUTE NAME
// Update that user's chat status
user.setPhoneStatus(Integer.valueOf(element.getAttribute("ph")));
userService.save(user);
// Build the response
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.newDocument();
Element rootElement = doc.createElement("u_cph");
rootElement.setAttribute("ph", String.valueOf(user.getPhoneStatus()));
rootElement.setAttribute("id", String.valueOf(user.getUUID()));
doc.appendChild(rootElement);
// Announce to friends
arkOneSender.SendStatusUpdate("u_cph", "ph", String.valueOf(user.getPhoneStatus()), user.getUUID());
return ArkOneParser.RemoveXMLTag(doc);
}
public String Ping() {
return "<p t=\"30\" />";
}