📄 daemon.java
字号:
package com.swing.game.crystal.utils;
import java.util.*;
import org.apache.log4j.PropertyConfigurator;
import org.apache.log4j.Logger;
import com.swing.game.crystal.CrystalController;
import com.swing.game.crystal.CrystalPlayer;
import com.swing.server.common.*;
public class Daemon implements Runnable {
public static Logger logger = Logger.getLogger(Daemon.class);
static {
PropertyConfigurator.configure("./cfg/Log4j.properties");
}
public static final long INTERVAL = 10000;
// private int mapNum = 0;
private boolean ifRun;
private int liveNum = 0;
public void start() {
this.ifRun = true;
new Thread(this).start();
System.out.println("CheckTimer starts");
}
public void stop() {
this.ifRun = false;
System.out.println("CheckTimer stops");
}
public void run() {
while (ifRun) {
try {
Thread.sleep(INTERVAL);
long current = System.currentTimeMillis();
// check if the user haven't sent data to server for a long time
liveNum++;
if (liveNum > 4) {
CrystalPlayer u = null;
for (Iterator iter = CrystalController.getGameController().playersByPlayerId
.values().iterator(); iter.hasNext();) {
u = (CrystalPlayer) iter.next();
if (current - u.time >= CrystalPlayer.INTERVAL) {
logger.info("User " + u.id
+ " was kicked by Deamon");
// 删除用户~~
((GameFunction) CrystalController
.getGameController().function.get("E"))
.handleRequest(u.id, "E");
}
}
}
/*
* // check the pk relationship PKPair pk = null; int flag = -1;
* for (Iterator iter = GameServer.PKList.values();
* iter.hasNext(); ) {
*
* pk = (PKPair) iter.next(); if (pk.status == PKStatus.OVER) {
* iter.remove(); pk = null; continue; } if (pk.status ==
* PKStatus.WAITING) { if (current - pk.sponserTimer > INTERVAL)
* flag = 1; else if (current - pk.embracerTimer > INTERVAL)
* flag = 2; if (flag != -1) { synchronized (pk) { switch (flag) { //
* sponser overtime case 1: pk.sponserComm.append("r");
* pk.pk(pk.sponser.id); break; // embracer overtime case 2:
* pk.embracerComm.append("r"); pk.pk(pk.embracer.id); break; }
* ////// pk.status = PKStatus.OVER; } flag = -1; } } }
*/
} catch (Exception e) {
logger.error(e);
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -