mirror of
https://github.com/smartcmd/MinecraftConsoles.git
synced 2026-08-20 09:57:09 +00:00
feat: implement all serverside exceptions
This commit is contained in:
parent
e0408115ea
commit
839ce24b9e
|
|
@ -81,12 +81,13 @@ PlayerConnection::~PlayerConnection()
|
|||
|
||||
void PlayerConnection::tick()
|
||||
{
|
||||
if( done ) return;
|
||||
|
||||
if( m_bCloseOnTick )
|
||||
{
|
||||
disconnect( DisconnectPacket::eDisconnect_Closed );
|
||||
return;
|
||||
if (done || m_bCloseOnTick)
|
||||
{
|
||||
if (m_bCloseOnTick && !done)
|
||||
{
|
||||
disconnect(DisconnectPacket::eDisconnect_Closed);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
didTick = false;
|
||||
|
|
@ -98,12 +99,29 @@ void PlayerConnection::tick()
|
|||
}
|
||||
catch (const IOException& e)
|
||||
{
|
||||
app.DebugPrintF("IOException -- %ls\n", e.information);
|
||||
disconnect(DisconnectPacket::eDisconnect_None);
|
||||
app.DebugPrintf("IOException - %ls\n", e.information.c_str());
|
||||
disconnect(DisconnectPacket::eDisconnect_UnexpectedPacket);
|
||||
return;
|
||||
}
|
||||
catch (const RuntimeException &e)
|
||||
{
|
||||
app.DebugPrintf("RuntimeException - %ls\n", e.information.c_str());
|
||||
disconnect(DisconnectPacket::eDisconnect_None); // izzint - no good disconnect packet for this, just keep as-is
|
||||
return;
|
||||
}
|
||||
catch (const IllegalArgumentException &e)
|
||||
{
|
||||
app.DebugPrintf("IllegalArgumentException - %ls\n", e.information.c_str());
|
||||
disconnect(DisconnectPacket::eDisconnect_None); // izzint - no good disconnect packet for this, just keep as-is
|
||||
return;
|
||||
}
|
||||
catch (const EOFException &e)
|
||||
{
|
||||
app.DebugPrintf("EOFException - %ls\n", e.information.c_str());
|
||||
disconnect(DisconnectPacket::eDisconnect_EndOfStream);
|
||||
return;
|
||||
}
|
||||
|
||||
connection->tick();
|
||||
if(done) return;
|
||||
|
||||
if ((tickCount - lastKeepAliveTick) > 20 * 1)
|
||||
|
|
|
|||
|
|
@ -16,7 +16,14 @@ DataInputStream::DataInputStream(InputStream *in) : stream( in )
|
|||
//This method simply performs in.read() and returns the result.
|
||||
int DataInputStream::read()
|
||||
{
|
||||
return stream->read();
|
||||
int result = stream->read();
|
||||
|
||||
if (result == -1)
|
||||
{
|
||||
throw EOFException(L"DataInputStream::read - end of stream"); // izzint - implementation 4j didn't do for some reason
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
//Reads some number of bytes from the contained input stream and stores them into the buffer array b.
|
||||
|
|
@ -134,7 +141,7 @@ bool DataInputStream::readFully(byteArray b)
|
|||
int byteRead = stream->read();
|
||||
if( byteRead == -1 )
|
||||
{
|
||||
return false;
|
||||
throw EOFException(L"DataInputStream::readFully - end of stream");
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -153,7 +160,7 @@ bool DataInputStream::readFully(charArray b)
|
|||
int byteRead = stream->read();
|
||||
if( byteRead == -1 )
|
||||
{
|
||||
return false;
|
||||
throw EOFException(L"DataInputStream::readFully - end of stream");
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in a new issue