Fixed random timeout #11

This commit is contained in:
Shoghi Cervantes Pueyo 2012-12-21 20:44:53 +01:00
parent 0ed130e7fd
commit 3e54ceb8a3
5 changed files with 9 additions and 7 deletions

View File

@ -77,6 +77,6 @@ How to contact me
Third-party Tools:
------------------
* [How to connect to internet servers](http://www.minecraftforum.net/topic/1256915-legit-minecraftpe-online-multiplayer/)
* OBSOLETE [Video-Tutorial made by ChrisMCMine](http://www.youtube.com/watch?v=GC9MBVaHge0)
* [Video-Tutorial made by ChrisMCMine](http://www.youtube.com/watch?v=GC9MBVaHge0)
* [User-made program to merge server I/O done in C++](https://github.com/filfat/MCPES_CPP_INPUT/)
* [Proxy to allow devices in your local network join online servers using node.js](https://github.com/brandon15811/Minecraft-PE-Proxy)

1
TODO
View File

@ -1,5 +1,4 @@
- Fix spawn position resetting
- Mob spawning, item pick up
- Fix incorrect timeout
- Inventory loading and saving
- Entity saving

View File

@ -298,7 +298,6 @@ class PocketMinecraftServer extends stdClass{
$this->loadEvents();
declare(ticks=15);
register_tick_function(array($this, "tick"));
$this->event("onTick", "tickerFunction", true);
register_shutdown_function(array($this, "close"));
console("[INFO] Server started!");
$this->process();
@ -309,6 +308,7 @@ class PocketMinecraftServer extends stdClass{
if($this->lastTick <= ($time - 0.05)){
$this->tickMeasure[] = $this->lastTick = $time;
array_shift($this->tickMeasure);
$this->tickerFunction($time);
$this->trigger("onTick", $time);
}
}

View File

@ -52,7 +52,10 @@ class Session{
$this->counter = array(0, 0);
}
public function onTick($time){
public function onTick($time, $event){
if($event !== "onTick"){
return;
}
if($time > $this->timeout){
$this->close("timeout");
}else{
@ -169,7 +172,7 @@ class Session{
}
}
public function handle($pid, &$data){
public function handle($pid, $data){
if($this->connected === true){
$this->timeout = microtime(true) + 25;
switch($pid){
@ -397,7 +400,7 @@ class Session{
$this->buffer[$count] = array($id, $data);
}
$data["id"] = $id;
$this->send(0x84, array(
$this->send(0x80, array(
$count,
0x00,
$data,

View File

@ -12,7 +12,7 @@ debug=2
max-players=20
server-type=normal
time-per-second=20
gamemode=0
gamemode=1
difficulty=1
seed=false
level-name=false