mirror of https://github.com/hykilpikonna/AquaDX
[chusan] Add global matching lobby stub
parent
6c6d3c2671
commit
8549763f58
|
@ -59,6 +59,10 @@ public class ChusanServletController {
|
|||
private final CMUpsertUserGachaHandler cmUpsertUserGachaHandler;
|
||||
private final CMUpsertUserPrintSubtractHandler cmUpsertUserPrintSubtractHandler;
|
||||
private final CMUpsertUserPrintCancelHandler cmUpsertUserPrintCancelHandler;
|
||||
private final BeginMatchingHandler beginMatchingHandler;
|
||||
private final EndMatchingHandler endMatchingHandler;
|
||||
private final GetMatchingStateHandler getMatchingStateHandler;
|
||||
private final RemoveMatchingMemberHandler removeMatchingMemberHandler;
|
||||
|
||||
@Autowired
|
||||
public ChusanServletController(GameLoginHandler gameLoginHandler, GameLogoutHandler gameLogoutHandler,
|
||||
|
@ -82,7 +86,9 @@ public class ChusanServletController {
|
|||
CMGetUserCharacterHandler cmGetUserCharacterHandler, GetUserGachaHandler getUserGachaHandler,
|
||||
GetUserPrintedCardHandler getUserPrintedCardHandler, CMGetUserItemHandler cmGetUserItemHandler,
|
||||
RollGachaHandler rollGachaHandler, CMUpsertUserGachaHandler cmUpsertUserGachaHandler,
|
||||
CMUpsertUserPrintSubtractHandler cmUpsertUserPrintSubtractHandler, CMUpsertUserPrintCancelHandler cmUpsertUserPrintCancelHandler) {
|
||||
CMUpsertUserPrintSubtractHandler cmUpsertUserPrintSubtractHandler, CMUpsertUserPrintCancelHandler cmUpsertUserPrintCancelHandler,
|
||||
BeginMatchingHandler beginMatchingHandler, EndMatchingHandler endMatchingHandler,
|
||||
GetMatchingStateHandler getMatchingStateHandler, RemoveMatchingMemberHandler removeMatchingMemberHandler) {
|
||||
this.gameLoginHandler = gameLoginHandler;
|
||||
this.gameLogoutHandler = gameLogoutHandler;
|
||||
this.getGameChargeHandler = getGameChargeHandler;
|
||||
|
@ -127,6 +133,10 @@ public class ChusanServletController {
|
|||
this.cmUpsertUserGachaHandler = cmUpsertUserGachaHandler;
|
||||
this.cmUpsertUserPrintSubtractHandler = cmUpsertUserPrintSubtractHandler;
|
||||
this.cmUpsertUserPrintCancelHandler = cmUpsertUserPrintCancelHandler;
|
||||
this.beginMatchingHandler = beginMatchingHandler;
|
||||
this.endMatchingHandler = endMatchingHandler;
|
||||
this.getMatchingStateHandler = getMatchingStateHandler;
|
||||
this.removeMatchingMemberHandler = removeMatchingMemberHandler;
|
||||
}
|
||||
|
||||
@PostMapping("GameLoginApi")
|
||||
|
@ -254,6 +264,7 @@ public class ChusanServletController {
|
|||
String getUserRivalData(@ModelAttribute Map<String, Object> request) throws JsonProcessingException {
|
||||
return getUserRivalDataHandler.handle(request);
|
||||
}
|
||||
|
||||
@PostMapping("GetUserRivalMusicApi")
|
||||
String getUserRivalMusic(@ModelAttribute Map<String, Object> request) throws JsonProcessingException {
|
||||
return getUserRivalMusicHandler.handle(request);
|
||||
|
@ -324,24 +335,32 @@ public class ChusanServletController {
|
|||
return "{\"returnCode\":\"1\"}";
|
||||
}
|
||||
|
||||
@PostMapping({"MatchingServer/Ping", "Ping"})
|
||||
// Matching endpoints
|
||||
|
||||
@PostMapping("MatchingServer/Ping")
|
||||
String ping(@ModelAttribute Map<String, Object> request) {
|
||||
return "{\"returnCode\":\"1\"}";
|
||||
}
|
||||
|
||||
/* TBD matching endpoints
|
||||
|
||||
@PostMapping("MatchingServer/BeginMatchingApi")
|
||||
String beginMatching(@ModelAttribute Map<String, Object> request) throws JsonProcessingException {
|
||||
return beginMatchingHandler.handle(request);
|
||||
}
|
||||
|
||||
@PostMapping("MatchingServer/EndMatchingApi")
|
||||
|
||||
@PostMapping("MatchingServer/BeginMatchingApi")
|
||||
String endMatching(@ModelAttribute Map<String, Object> request) throws JsonProcessingException {
|
||||
return endMatchingHandler.handle(request);
|
||||
}
|
||||
|
||||
@PostMapping("MatchingServer/RemoveMatchingMemberApi")
|
||||
String removeMatchingMember(@ModelAttribute Map<String, Object> request) throws JsonProcessingException {
|
||||
return removeMatchingMemberHandler.handle(request);
|
||||
}
|
||||
|
||||
@PostMapping("GetMatchingStateApi")
|
||||
|
||||
*/
|
||||
@PostMapping("MatchingServer/GetMatchingStateApi")
|
||||
String getMatchingState(@ModelAttribute Map<String, Object> request) throws JsonProcessingException {
|
||||
return getMatchingStateHandler.handle(request);
|
||||
}
|
||||
|
||||
// Cardmaker endpoints
|
||||
|
||||
|
|
|
@ -0,0 +1,48 @@
|
|||
package icu.samnyan.aqua.sega.chusan.handler.impl;
|
||||
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import icu.samnyan.aqua.sega.chusan.handler.BaseHandler;
|
||||
import icu.samnyan.aqua.sega.chusan.model.response.data.MatchingMemberInfo;
|
||||
import icu.samnyan.aqua.sega.chusan.model.response.data.MatchingWaitState;
|
||||
import icu.samnyan.aqua.sega.util.jackson.StringMapper;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author samnyan (privateamusement@protonmail.com)
|
||||
*/
|
||||
@Component("ChusanBeginMatchingHandler")
|
||||
public class BeginMatchingHandler implements BaseHandler {
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger(BeginMatchingHandler.class);
|
||||
|
||||
private final StringMapper mapper;
|
||||
|
||||
@Autowired
|
||||
public BeginMatchingHandler(StringMapper mapper) {
|
||||
this.mapper = mapper;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String handle(Map<String, Object> request) throws JsonProcessingException {
|
||||
MatchingMemberInfo matchingMemberInfo = mapper.convert(request.get("matchingMemberInfo"), MatchingMemberInfo.class);
|
||||
|
||||
MatchingWaitState matchingWaitState = new MatchingWaitState();
|
||||
|
||||
matchingWaitState.getMatchingMemberInfoList().add(matchingMemberInfo);
|
||||
|
||||
Map<String, Object> resultMap = new LinkedHashMap<>();
|
||||
resultMap.put("roomId", 1);
|
||||
resultMap.put("matchingWaitState", matchingWaitState);
|
||||
|
||||
String json = mapper.write(resultMap);
|
||||
logger.info("Response: " + json);
|
||||
return json;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,48 @@
|
|||
package icu.samnyan.aqua.sega.chusan.handler.impl;
|
||||
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import icu.samnyan.aqua.sega.chusan.handler.BaseHandler;
|
||||
import icu.samnyan.aqua.sega.util.jackson.StringMapper;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author samnyan (privateamusement@protonmail.com)
|
||||
*/
|
||||
@Component("ChusanEndMatchingHandler")
|
||||
public class EndMatchingHandler implements BaseHandler {
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger(EndMatchingHandler.class);
|
||||
|
||||
private final StringMapper mapper;
|
||||
|
||||
@Autowired
|
||||
public EndMatchingHandler(StringMapper mapper) {
|
||||
this.mapper = mapper;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String handle(Map<String, Object> request) throws JsonProcessingException {
|
||||
//roomId, userId
|
||||
|
||||
Map<String, Object> matchingResult = new LinkedHashMap<>();
|
||||
matchingResult.put("matchingMemberInfoList", List.of()); // MatchingMemberInfo
|
||||
matchingResult.put("matchingMemberRoleList", List.of()); // Role?
|
||||
matchingResult.put("reflectorUri", "");
|
||||
|
||||
Map<String, Object> resultMap = new LinkedHashMap<>();
|
||||
resultMap.put("matchingResult", matchingResult);
|
||||
|
||||
String json = mapper.write(resultMap);
|
||||
logger.info("Response: " + json);
|
||||
return json;
|
||||
}
|
||||
|
||||
}
|
|
@ -13,6 +13,7 @@ import org.springframework.stereotype.Component;
|
|||
|
||||
import java.net.InetAddress;
|
||||
import java.net.UnknownHostException;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.Map;
|
||||
|
@ -55,6 +56,9 @@ public class GetGameSettingHandler implements BaseHandler {
|
|||
LocalDateTime rebootStartTime = LocalDateTime.now().minusHours(3);
|
||||
LocalDateTime rebootEndTime = LocalDateTime.now().minusHours(2);
|
||||
|
||||
LocalDateTime matchingStartTime = LocalDateTime.now().minusHours(1);
|
||||
LocalDateTime matchingEndTime = LocalDateTime.now().plusHours(1);
|
||||
|
||||
// Unless ip and port is explicitly overridden, use the guessed ip and port as same as AllNet Controller does.
|
||||
String localAddr;
|
||||
try {
|
||||
|
@ -78,10 +82,10 @@ public class GetGameSettingHandler implements BaseHandler {
|
|||
300,
|
||||
300,
|
||||
300,
|
||||
rebootStartTime.format(formatter),
|
||||
rebootEndTime.format(formatter),
|
||||
matchingStartTime.format(formatter),
|
||||
matchingEndTime.format(formatter),
|
||||
10,
|
||||
10,
|
||||
1,
|
||||
"http://" + addr + ":" + port + "/ChusanServlet/",
|
||||
"http://" + addr + ":" + port + "/ChusanServlet/",
|
||||
"http://" + addr + ":" + port + "/ChusanServlet/"
|
||||
|
|
|
@ -0,0 +1,48 @@
|
|||
package icu.samnyan.aqua.sega.chusan.handler.impl;
|
||||
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import icu.samnyan.aqua.sega.chusan.handler.BaseHandler;
|
||||
import icu.samnyan.aqua.sega.chusan.model.response.data.MatchingMemberInfo;
|
||||
import icu.samnyan.aqua.sega.chusan.model.response.data.MatchingWaitState;
|
||||
import icu.samnyan.aqua.sega.util.jackson.StringMapper;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author samnyan (privateamusement@protonmail.com)
|
||||
*/
|
||||
@Component("ChusanGetMatchingStateHandler")
|
||||
public class GetMatchingStateHandler implements BaseHandler {
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger(GetMatchingStateHandler.class);
|
||||
|
||||
private final StringMapper mapper;
|
||||
|
||||
@Autowired
|
||||
public GetMatchingStateHandler(StringMapper mapper) {
|
||||
this.mapper = mapper;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String handle(Map<String, Object> request) throws JsonProcessingException {
|
||||
String roomId = (String) request.get("roomId");
|
||||
MatchingMemberInfo matchingMemberInfo = mapper.convert(request.get("matchingMemberInfo"), MatchingMemberInfo.class);
|
||||
|
||||
Map<String, Object> resultMap = new LinkedHashMap<>();
|
||||
|
||||
MatchingWaitState matchingWaitState = new MatchingWaitState();
|
||||
matchingWaitState.setFinish(true);
|
||||
|
||||
resultMap.put("matchingWaitState", matchingWaitState);
|
||||
|
||||
String json = mapper.write(resultMap);
|
||||
logger.info("Response: " + json);
|
||||
return json;
|
||||
}
|
||||
|
||||
}
|
|
@ -33,6 +33,7 @@ public class GetUserNetBattleDataHandler implements BaseHandler {
|
|||
|
||||
Map<String, Object> userNetBattleData = new LinkedHashMap<>();
|
||||
userNetBattleData.put("recentNBSelectMusicList", List.of());
|
||||
userNetBattleData.put("recentNBMusicList", List.of());
|
||||
|
||||
resultMap.put("userNetBattleData", userNetBattleData);
|
||||
|
||||
|
|
|
@ -2,6 +2,7 @@ package icu.samnyan.aqua.sega.chusan.handler.impl;
|
|||
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import icu.samnyan.aqua.sega.chusan.handler.BaseHandler;
|
||||
import icu.samnyan.aqua.sega.chusan.model.response.data.SymbolChatInfo;
|
||||
import icu.samnyan.aqua.sega.util.jackson.StringMapper;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
@ -32,7 +33,7 @@ public class GetUserSymbolChatSettingHandler implements BaseHandler {
|
|||
public String handle(Map<String, Object> request) throws JsonProcessingException {
|
||||
String userId = (String) request.get("userId");
|
||||
|
||||
List<Object> symbolChatInfoList = new ArrayList<>();
|
||||
List<SymbolChatInfo> symbolChatInfoList = new ArrayList<>();
|
||||
|
||||
Map<String, Object> resultMap = new LinkedHashMap<>();
|
||||
resultMap.put("userId", userId);
|
||||
|
|
|
@ -0,0 +1,40 @@
|
|||
package icu.samnyan.aqua.sega.chusan.handler.impl;
|
||||
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import icu.samnyan.aqua.sega.chusan.handler.BaseHandler;
|
||||
import icu.samnyan.aqua.sega.util.jackson.StringMapper;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author samnyan (privateamusement@protonmail.com)
|
||||
*/
|
||||
@Component("ChusanRemoveMatchingMemberHandler")
|
||||
public class RemoveMatchingMemberHandler implements BaseHandler {
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger(RemoveMatchingMemberHandler.class);
|
||||
|
||||
private final StringMapper mapper;
|
||||
|
||||
@Autowired
|
||||
public RemoveMatchingMemberHandler(StringMapper mapper) {
|
||||
this.mapper = mapper;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String handle(Map<String, Object> request) throws JsonProcessingException {
|
||||
|
||||
Map<String, Object> resultMap = new LinkedHashMap<>();
|
||||
resultMap.put("returnCode", 1);
|
||||
|
||||
String json = mapper.write(resultMap);
|
||||
logger.info("Response: " + json);
|
||||
return json;
|
||||
}
|
||||
|
||||
}
|
|
@ -80,6 +80,9 @@ public class UpsertUserAll implements Serializable {
|
|||
@Nullable
|
||||
private List<Map<String, Object>> userEmoneyList;
|
||||
|
||||
@Nullable
|
||||
private List<Map<String, Object>> userNetBattleData;
|
||||
|
||||
@Nullable
|
||||
@JsonProperty("isNewCharacterList")
|
||||
private String isNewCharacterList;
|
||||
|
|
|
@ -0,0 +1,23 @@
|
|||
package icu.samnyan.aqua.sega.chusan.model.response.data;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* @author samnyan (privateamusement@protonmail.com)
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class AvatarEquip {
|
||||
|
||||
private int wearID;
|
||||
private int headID;
|
||||
private int faceID;
|
||||
private int skinID;
|
||||
private int itemID;
|
||||
private int frontID;
|
||||
private int backID;
|
||||
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
package icu.samnyan.aqua.sega.chusan.model.response.data;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* @author samnyan (privateamusement@protonmail.com)
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class GenreGraph {
|
||||
|
||||
private int genreId;
|
||||
private int musicCount;
|
||||
|
||||
}
|
|
@ -0,0 +1,53 @@
|
|||
package icu.samnyan.aqua.sega.chusan.model.response.data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* @author samnyan (privateamusement@protonmail.com)
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class MatchingMemberInfo {
|
||||
|
||||
private int userId;
|
||||
private int regionId;
|
||||
private int placeId;
|
||||
private String userName;
|
||||
private int playerRating;
|
||||
private int battleRankId;
|
||||
private int battleCorrection;
|
||||
private int battleRatingAvg;
|
||||
private int optRatingId;
|
||||
private int ratingEffectColorId;
|
||||
private int trophyId;
|
||||
private int nameplateId;
|
||||
private int emblemMedal;
|
||||
private int emblemBase;
|
||||
private int characterId;
|
||||
private int characterRank;
|
||||
private int skillId;
|
||||
private int skillLv;
|
||||
private int skillIdForChara;
|
||||
@JsonProperty("isJoinTeam")
|
||||
private boolean isJoinTeam;
|
||||
private String teamName;
|
||||
private int teamRank;
|
||||
private AvatarEquip avatarEquip;
|
||||
private int messageId;
|
||||
private String clientId;
|
||||
private String romVersion;
|
||||
private String dataVersion;
|
||||
private int errCnt;
|
||||
private int hostErrCnt;
|
||||
private int joinTime;
|
||||
private List<GenreGraph> genreGraphList;
|
||||
|
||||
}
|
|
@ -0,0 +1,26 @@
|
|||
package icu.samnyan.aqua.sega.chusan.model.response.data;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* @author samnyan (privateamusement@protonmail.com)
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class MatchingWaitState {
|
||||
|
||||
@JsonProperty("isFinish")
|
||||
private boolean isFinish = false;
|
||||
private int restMSec = 30000;
|
||||
private int pollingInterval = 10;
|
||||
private List<MatchingMemberInfo> matchingMemberInfoList = new ArrayList<>();
|
||||
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
package icu.samnyan.aqua.sega.chusan.model.response.data;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* @author samnyan (privateamusement@protonmail.com)
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class SymbolChatInfo {
|
||||
|
||||
private int sceneId;
|
||||
private int symbolChatId;
|
||||
private int orderId;
|
||||
|
||||
}
|
Loading…
Reference in New Issue