📄 control.java
字号:
package com.dfun.blackjackServer;
import java.util.*;
/**************************************************
* @author Beetle
* 类功能介绍:系统启动后直接启动主控模块,主控模块启动时初始化
* 连接管理器,房间管理等。 主控主要负责启动其它模块并在适当的
* 时候做清除操作
**************************************************/
public class Control {
public DataConn dataConn; //数据库连接
public UserManage userManage; //用户管理
public HouseManage houseManage; //房间管理
public SocketManage connManage; //连接管理器
public Control() {
DataConn dataConn;
userManage = new UserManage(this);
houseManage = new HouseManage(this);
connManage = new SocketManage(this);
dataConn = new DataConn();
}
public void getOneData(String userId, String inputStr) {
User user = userManage.getUser(userId);
int order = Integer.parseInt(inputStr.substring(0, 2));
inputStr = inputStr.substring(2, inputStr.length());
switch (order) {
case 1: //取得总分
sendOneData(userId, "01" + user.getJetton());
break;
case 2: //取得房间信息
sendOneData(userId, "02" + houseManage.getHouseList());
break;
case 3: //新建房间
String newHouseId = houseManage.addHouse(userId, inputStr);
sendOneData(userId, "03" + newHouseId);
userManage.sendInfoToAllUser("18" + houseManage.getHouseList());
break;
case 5: //用户进入一个房间发送房间用户列表
House house = (House) houseManage.houseList.get(inputStr);
house.intoHouse(userId); //进入房间
userManage.sendInfoToAllUser("18" + houseManage.getHouseList()); //更新房间列表的人数
break;
case 6: //退出房间
House outHouse = (House) houseManage.houseList.get(inputStr);
outHouse.outHouse(userId);
userManage.sendInfoToAllUser("18" + houseManage.getHouseList()); //更新房间列表的人数
break;
case 7: //下注
long chipIn = Long.parseLong(inputStr);
User userChip = (User) userManage.getUser(userId);
userChip.setChipIn(chipIn);
break;
case 9: //停牌
House houseDeal = (House) houseManage.houseList.get(user.houseId);
houseDeal.deal(Integer.parseInt(user.userId), Integer.parseInt(inputStr));
houseDeal.sendInfoToHouseUser("08" + houseDeal.getCards());
break;
case 10: //分牌
//把发牌结果发给所有人
House houseSpread = (House) houseManage.houseList.get(user.houseId);
houseSpread.spread(Integer.parseInt(userId));
houseSpread.sendInfoToHouseUser("10" + houseSpread.getCards());
break;
case 11: //双倍下注
House houseDouble = (House) houseManage.houseList.get(user.houseId);
houseDouble.doubleCard(Integer.parseInt(userId), Integer.parseInt(inputStr));
houseDouble.sendInfoToHouseUser("11" + houseDouble.getCards());
break;
case 12: //该用户已要牌完毕
user.userState = 4; //将游戏状态设为等待
House houseGameOver = (House) houseManage.houseList.get(user.houseId);
houseGameOver.checkDellOver();
break;
case 13://聊天
House houseMsg = (House) houseManage.houseList.get(user.houseId);
houseMsg.sendInfoToHouseUser("13"+inputStr);
break;
}
}
/*****************************************************
* 功能介绍:使用连接一发送消息
* 输入参数:用户id,要输出的值
* 输出参数:无
****************************************************/
public void sendOneData(String userId, String outStr) {
SocketConn connOne = (SocketConn) connManage.connOneList.get(userId);
if (connOne==null){
return;
}
connOne.sendData(outStr);
}
public void getTwoData(String userId, String inputStr) {
SocketConn connTwo = (SocketConn) connManage.connTwoList.get(userId);
if (connTwo==null){
return;
}
connTwo.sendData(inputStr);
}
/*****************************************************
* 功能介绍:使用连接二发送消息
* 输入参数:用户id,要输出的值
* 输出参数:无
****************************************************/
public void sendTwoData(String userId, String outStr) {
SocketConn connTwo = (SocketConn) connManage.connTwoList.get(userId);
if (connTwo==null){
return ;
}
connTwo.sendData(outStr);
}
/*****************************************************
* 功能介绍:用户下线或者用户断线
* 输入参数:用户id
* 输出参数:无
****************************************************/
public void userOffline(String userId){
//如果该用户已清除过则不再进行处理
if (!connManage.removeConn(userId)){
System.out.println("拒绝了一个清理操作");
return ;
}
User user=userManage.getUser(userId);
//如果还没有初始化用户则不进行下面清理操作
if(user==null){
return;
}
House house=(House)houseManage.houseList.get(user.houseId);
//如果没找到房间则不进行下面清理操作
if (house==null){
return;
}
//执行房间清理
house.userOffline(userId);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -