back_recharge
gaojie 2019-04-30 11:41:30 +08:00
commit ac32c58249
4 changed files with 91 additions and 13 deletions

View File

@ -108,8 +108,8 @@ public class GameApplication {
String openTime = serverConfigTmp.getOpenTime();
Date date = simpleDateFormat.parse(openTime);
serverConfigTmp.setCacheOpenTime(date.getTime());
serverConfig = serverConfigTmp;
}
serverConfig = serverConfigTmp;
KeyGenUtils.setMachineNum(serverConfiguration.getServerProperties().getNum());
ActivityLogic.getInstance().checkActiviyStatus();
try {

View File

@ -10,5 +10,6 @@ public interface GlobalGm {
int USER_UP_LEVE = 7; // 玩家升级
int ADOPT_ALL_DIFFICULTY = 8; // 通过所有关卡
int ADOPT_FIGHT_BY_LEVE = 9; // 根据等级开启对应的关卡
int TIME_INFO = 10; // 根据等级开启对应的关卡
}

View File

@ -1,5 +1,6 @@
package com.ljsd.jieling.handler.GameGM;
import com.ljsd.GameApplication;
import com.ljsd.jieling.config.*;
import com.ljsd.jieling.core.GlobalsDef;
import com.ljsd.jieling.db.mongo.MongoUtil;
@ -8,9 +9,6 @@ import com.ljsd.jieling.globals.GlobalGm;
import com.ljsd.jieling.globals.GlobalItemType;
import com.ljsd.jieling.handler.BaseHandler;
import com.ljsd.jieling.handler.map.MapLogic;
import com.ljsd.jieling.handler.map.MapManager;
import com.ljsd.jieling.handler.map.MapMission;
import com.ljsd.jieling.handler.mission.Mission;
import com.ljsd.jieling.logic.dao.*;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.netty.cocdex.PacketNetData;
@ -18,19 +16,23 @@ import com.ljsd.jieling.network.session.ISession;
import com.ljsd.jieling.protocols.CommonProto;
import com.ljsd.jieling.protocols.MessageTypeProto;
import com.ljsd.jieling.protocols.PlayerInfoProto;
import com.ljsd.jieling.util.CBean2Proto;
import com.ljsd.jieling.util.ItemUtil;
import com.ljsd.jieling.util.MessageUtil;
import com.ljsd.jieling.util.TimeUtils;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import sun.misc.MessageUtils;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
@Component
public class GMRequestHandler extends BaseHandler{
private static final org.slf4j.Logger LOGGER = LoggerFactory.getLogger(GMRequestHandler.class);
private String osName = System.getProperty("os.name");
@Override
public MessageTypeProto.MessageType getMessageCode() {
return MessageTypeProto.MessageType.GM_REQUEST;
@ -61,13 +63,13 @@ public class GMRequestHandler extends BaseHandler{
}
}
User cUser = UserManager.getUser(uid);
CommonProto.GmResponse.Builder gmBuilder = CommonProto.GmResponse.newBuilder();
switch (gmCommandType){
case GlobalGm.ADD_ITEM:
ItemUtil.drop(cUser,new int[][]{{prarm1,prarm2}});
// giveItem(cUser,prarm1,prarm2);
gmBuilder.setDrop(ItemUtil.drop(cUser,new int[][]{{prarm1,prarm2}}));
break;
case GlobalGm.ADD_CARD:
giveHero(cUser,prarm1,prarm2);
gmBuilder.setDrop(giveHero(cUser,prarm1,prarm2));
break;
case GlobalGm.SEND_MAIIL:
int nowTime =(int) (TimeUtils.now()/1000);
@ -90,6 +92,8 @@ public class GMRequestHandler extends BaseHandler{
hero.setLevel(scHeroRankUpConfig.getLimitLevel());
hero.setBreakId(scHeroRankUpConfig.getId());
}
CommonProto.Hero finalHeroProto = CBean2Proto.getHero(hero);
gmBuilder.setDrop( CommonProto.Drop.newBuilder().addHero(finalHeroProto).build());
break;
case GlobalGm.OPEN_MAP:
MapLogic.getInstance().gmCrossFight(uid, prarm1);
@ -138,20 +142,44 @@ public class GMRequestHandler extends BaseHandler{
length++;
int itemId = sItem.getId();
int itemType = sItem.getItemType();
int itemNum = 999;
int itemNum = 9999;
if(itemType == GlobalItemType.CARD ||itemType == GlobalItemType.EQUIP){
itemNum =1;
}
gmDrop[i++] = new int[]{itemId,itemNum};
}
ItemUtil.drop(cUser,gmDrop);
gmBuilder.setDrop(ItemUtil.drop(cUser, gmDrop));
break;
}
//1获取当前服务器时间 2 获取服务器开服时间 3 获取玩家创建角色时间 4修改服务器时间
case GlobalGm.TIME_INFO:
switch (prarm1){
case 1:
gmBuilder.setInfo(parseTimeToString(System.currentTimeMillis()));
break;
case 2:
gmBuilder.setInfo(GameApplication.serverConfig.getOpenTime());
break;
case 3:
gmBuilder.setInfo(parseTimeToString(cUser.getPlayerInfoManager().getCreateTime()));
break;
case 4:
long targetTime = TimeUtils.stringToTimeLong(commandArray[2],"yyyyMMddHHmmss");
long now = TimeUtils.now();
if (now > targetTime) {
MessageUtil.sendErrorResponse(iSession,0, MessageTypeProto.MessageType.GM_RESPONSE_VALUE,"时间只能往未来调");
return;
}
update(targetTime,uid);
gmBuilder.setInfo(parseTimeToString(System.currentTimeMillis()));
default:
break;
}
default:
break;
}
try {
MessageUtil.sendMessage(iSession, 1, MessageTypeProto.MessageType.GM_RESPONSE_VALUE, null, true);
MessageUtil.sendMessage(iSession, 1, MessageTypeProto.MessageType.GM_RESPONSE_VALUE, gmBuilder.build(), true);
LOGGER.info("back to client!");
} catch (Exception e) {
e.printStackTrace();
@ -165,6 +193,11 @@ public class GMRequestHandler extends BaseHandler{
}
}
private String parseTimeToString(long time){
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return simpleDateFormat.format(time);
}
//开启所有关卡
private void openFightids(LevelDifficultyManager levelDifficultyManager,int level) {
Map<Integer, LevelDifficulty> levelDifficultyMap = SLevelDifficultyConfig.getLevelDifficultyMap();
@ -178,11 +211,12 @@ public class GMRequestHandler extends BaseHandler{
}
}
private void giveHero(User cUser, int cardId, int cardNum) throws Exception {
private CommonProto.Drop.Builder giveHero(User cUser, int cardId, int cardNum) throws Exception {
CommonProto.Drop.Builder dropBuilder = CommonProto.Drop.newBuilder();
Map<Integer,Integer> cardMap = new ConcurrentHashMap<>();
cardMap.put(cardId,cardNum);
ItemUtil.addCard(cUser,cardMap,dropBuilder);
return dropBuilder;
}
private void giveItem(User cUser,int itemId,int itemNum) throws Exception {
@ -191,4 +225,37 @@ public class GMRequestHandler extends BaseHandler{
itemMap.put(itemId,itemNum);
ItemUtil.addItem(cUser,itemMap,dropBuilder);
}
public void update(long newTime,int uid) {
LOGGER.error("update->uid={},newTime={}", uid, newTime);
Date currentTime = new Date();
currentTime.setTime(newTime);
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateString = formatter.format(currentTime);
String dataWindows = dateString.substring(0,10);
String dataLinux = dateString.substring(0,10).replaceAll("-","");
String time = dateString.substring(11,19);
String cmd = "";
try {
if (osName.matches("^(?i)Windows.*$")) {// Window 系统
// 格式 HH:mm:ss
cmd = " cmd /c time "+ time;
Runtime.getRuntime().exec(cmd);
// 格式yyyy-MM-dd
cmd = " cmd /c date "+ dataWindows;
Runtime.getRuntime().exec(cmd);
} else {// Linux 系统
// 格式yyyyMMdd
cmd = " date -s "+ dataLinux;
Runtime.getRuntime().exec(cmd);
// 格式 HH:mm:ss
cmd = " date -s "+ time;
Runtime.getRuntime().exec(cmd);
}
} catch (IOException e) {
LOGGER.error("update->uid={},msg={}", uid, e.getMessage(), e);
}
}
}

View File

@ -1148,4 +1148,14 @@ public class TimeUtils {
return simpleDateFormat.parse(date).getTime();
}
public static long stringToTimeLong(String dateStr,String pattern) {
try {
SimpleDateFormat dateFormat = new SimpleDateFormat(pattern);
return dateFormat.parse(dateStr).getTime();
} catch (ParseException e) {
LOGGER.error("", e);
}
return now();
}
}