Pull upstream changes into fork branch (#41)

* v92.7 changes

* v92.9 changes

Co-authored-by: Jgunishka <53265225+Jgunishka@users.noreply.github.com>
This commit is contained in:
Jonn 2022-02-18 21:53:56 +09:00 committed by GitHub
parent 99a4ca29b8
commit 36f600fe1a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
18 changed files with 45 additions and 21 deletions

View File

@ -203,6 +203,11 @@ public class GameChatAction implements V086Action, V086GameEventHandler
return; return;
} }
if(user.getGame() != user1.getGame()) {
user1.getGame().announce("User not in this game!", user1);
return;
}
if(user == clientHandler.getUser()){ if(user == clientHandler.getUser()){
user1.getGame().announce("You can't private message yourself!", user1); user1.getGame().announce("You can't private message yourself!", user1);
return; return;
@ -245,11 +250,11 @@ public class GameChatAction implements V086Action, V086GameEventHandler
//user1.getServer().announce("TO: <" + user.getName() + ">(" + user.getID() + ") <" + clientHandler.getUser().getName() + "> (" + clientHandler.getUser().getID() + "): " + m, false, user1); //user1.getServer().announce("TO: <" + user.getName() + ">(" + user.getID() + ") <" + clientHandler.getUser().getName() + "> (" + clientHandler.getUser().getID() + "): " + m, false, user1);
//user.getServer().announce("<" + clientHandler.getUser().getName() + "> (" + clientHandler.getUser().getID() + "): " + m, false, user); //user.getServer().announce("<" + clientHandler.getUser().getName() + "> (" + clientHandler.getUser().getID() + "): " + m, false, user);
if(user1.getGame() != null && user1.getGame() == user.getGame()){ if(user1.getGame() != null){
user1.getGame().announce("TO: <" + user.getName() + ">(" + user.getID() + ") <" + clientHandler.getUser().getName() + "> (" + clientHandler.getUser().getID() + "): " + m, user1); user1.getGame().announce("TO: <" + user.getName() + ">(" + user.getID() + ") <" + clientHandler.getUser().getName() + "> (" + clientHandler.getUser().getID() + "): " + m, user1);
} }
if(user.getGame() != null && user.getGame() == user1.getGame()){ if(user.getGame() != null){
user.getGame().announce("<" + clientHandler.getUser().getName() + "> (" + clientHandler.getUser().getID() + "): " + m, user); user.getGame().announce("<" + clientHandler.getUser().getName() + "> (" + clientHandler.getUser().getID() + "): " + m, user);
} }
return; return;
@ -273,6 +278,11 @@ public class GameChatAction implements V086Action, V086GameEventHandler
return; return;
} }
if(user.getGame() != user1.getGame()) {
user1.getGame().announce("User not in this game!", user1);
return;
}
if(user == clientHandler.getUser()){ if(user == clientHandler.getUser()){
user1.getGame().announce("You can't private message yourself!", user1); user1.getGame().announce("You can't private message yourself!", user1);
return; return;
@ -313,11 +323,11 @@ public class GameChatAction implements V086Action, V086GameEventHandler
//user1.getServer().announce("TO: <" + user.getName() + ">(" + user.getID() + ") <" + clientHandler.getUser().getName() + "> (" + clientHandler.getUser().getID() + "): " + m, false, user1); //user1.getServer().announce("TO: <" + user.getName() + ">(" + user.getID() + ") <" + clientHandler.getUser().getName() + "> (" + clientHandler.getUser().getID() + "): " + m, false, user1);
//user.getServer().announce("<" + clientHandler.getUser().getName() + "> (" + clientHandler.getUser().getID() + "): " + m, false, user); //user.getServer().announce("<" + clientHandler.getUser().getName() + "> (" + clientHandler.getUser().getID() + "): " + m, false, user);
if(user1.getGame() != null && user1.getGame() == user.getGame()){ if(user1.getGame() != null){
user1.getGame().announce("TO: <" + user.getName() + ">(" + user.getID() + ") <" + clientHandler.getUser().getName() + "> (" + clientHandler.getUser().getID() + "): " + m, user1); user1.getGame().announce("TO: <" + user.getName() + ">(" + user.getID() + ") <" + clientHandler.getUser().getName() + "> (" + clientHandler.getUser().getID() + "): " + m, user1);
} }
if(user.getGame() != null && user.getGame() == user1.getGame()){ if(user.getGame() != null){
user.getGame().announce("<" + clientHandler.getUser().getName() + "> (" + clientHandler.getUser().getID() + "): " + m, user); user.getGame().announce("<" + clientHandler.getUser().getName() + "> (" + clientHandler.getUser().getID() + "): " + m, user);
} }
return; return;

View File

@ -148,6 +148,7 @@ public class GameOwnerCommandAction implements V086Action
else else
{ {
log.warn("GameOwner Command Denied: Not game owner: " + game + ": " + user + ": " + chat); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ log.warn("GameOwner Command Denied: Not game owner: " + game + ": " + user + ": " + chat); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
game.announce("GameOwner Command Error: You are not an owner!", user);
return; return;
} }
} }

View File

@ -43,7 +43,7 @@ public abstract class Chat extends V086Message
public int getBodyLength() public int getBodyLength()
{ {
//return (charset.encode(userName).remaining() + charset.encode(message).remaining() + 2); //return (charset.encode(userName).remaining() + charset.encode(message).remaining() + 2);
return (userName.length() + message.length() + 2); return (getNumBytes(userName) + getNumBytes(message) + 2);
} }
public void writeBodyTo(ByteBuffer buffer) public void writeBodyTo(ByteBuffer buffer)

View File

@ -65,7 +65,7 @@ public class ConnectionRejected extends V086Message
public int getBodyLength() public int getBodyLength()
{ {
//return (charset.encode(userName).remaining() + charset.encode(message).remaining() + 4); //return (charset.encode(userName).remaining() + charset.encode(message).remaining() + 4);
return (userName.length() + message.length() + 4); return (getNumBytes(userName) + getNumBytes(message) + 4);
} }
public void writeBodyTo(ByteBuffer buffer) public void writeBodyTo(ByteBuffer buffer)

View File

@ -72,7 +72,7 @@ public abstract class CreateGame extends V086Message
public int getBodyLength() public int getBodyLength()
{ {
//return (charset.encode(userName).remaining() + charset.encode(romName).remaining() + charset.encode(clientType).remaining() + 7); //return (charset.encode(userName).remaining() + charset.encode(romName).remaining() + charset.encode(clientType).remaining() + 7);
return (userName.length() + romName.length() + clientType.length() + 7); return (getNumBytes(userName) + getNumBytes(romName) + getNumBytes(clientType) + 7);
} }
public void writeBodyTo(ByteBuffer buffer) public void writeBodyTo(ByteBuffer buffer)

View File

@ -42,7 +42,7 @@ public abstract class GameChat extends V086Message
public int getBodyLength() public int getBodyLength()
{ {
//return (charset.encode(userName).remaining() + charset.encode(message).remaining() + 2); //return (charset.encode(userName).remaining() + charset.encode(message).remaining() + 2);
return (userName.length() + message.length() + 2); return (getNumBytes(userName) + getNumBytes(message) + 2);
} }
public void writeBodyTo(ByteBuffer buffer) public void writeBodyTo(ByteBuffer buffer)

View File

@ -55,7 +55,7 @@ public class InformationMessage extends V086Message
public int getBodyLength() public int getBodyLength()
{ {
//return (charset.encode(source).remaining() + charset.encode(message).remaining() + 2); //return (charset.encode(source).remaining() + charset.encode(message).remaining() + 2);
return (source.length() + message.length() + 2); return (getNumBytes(source) + getNumBytes(message) + 2);
} }
public void writeBodyTo(ByteBuffer buffer) public void writeBodyTo(ByteBuffer buffer)

View File

@ -82,7 +82,7 @@ public abstract class JoinGame extends V086Message
public int getBodyLength() public int getBodyLength()
{ {
//return (charset.encode(userName).remaining() + 13); //return (charset.encode(userName).remaining() + 13);
return (userName.length() + 13); return (getNumBytes(userName) + 13);
} }
public void writeBodyTo(ByteBuffer buffer) public void writeBodyTo(ByteBuffer buffer)

View File

@ -48,7 +48,7 @@ public abstract class PlayerDrop extends V086Message
public int getBodyLength() public int getBodyLength()
{ {
//return (charset.encode(userName).remaining() + 2); //return (charset.encode(userName).remaining() + 2);
return (userName.length() + 2); return (getNumBytes(userName) + 2);
} }
public void writeBodyTo(ByteBuffer buffer) public void writeBodyTo(ByteBuffer buffer)

View File

@ -165,7 +165,7 @@ public class PlayerInformation extends V086Message
public int getLength() public int getLength()
{ {
//return (charset.encode(userName).remaining() + 2); //return (charset.encode(userName).remaining() + 2);
return (userName.length() + 8); return (getNumBytes(userName) + 8);
} }
public void writeTo(ByteBuffer buffer) public void writeTo(ByteBuffer buffer)

View File

@ -55,7 +55,7 @@ public abstract class Quit extends V086Message
public int getBodyLength() public int getBodyLength()
{ {
//return (charset.encode(userName).remaining() + charset.encode(message).remaining() + 4); //return (charset.encode(userName).remaining() + charset.encode(message).remaining() + 4);
return (userName.length() + message.length() + 4); return (getNumBytes(userName) + getNumBytes(message) + 4);
} }
public void writeBodyTo(ByteBuffer buffer) public void writeBodyTo(ByteBuffer buffer)

View File

@ -43,7 +43,7 @@ public abstract class QuitGame extends V086Message
public int getBodyLength() public int getBodyLength()
{ {
//return (charset.encode(userName).remaining() + 3); //return (charset.encode(userName).remaining() + 3);
return (userName.length() + 3); return (getNumBytes(userName) + 3);
} }
public void writeBodyTo(ByteBuffer buffer) public void writeBodyTo(ByteBuffer buffer)

View File

@ -233,7 +233,7 @@ public class ServerStatus extends V086Message
public int getLength() public int getLength()
{ {
//return (charset.encode(userName).remaining() + 9); //return (charset.encode(userName).remaining() + 9);
return (userName.length() + 9); return (getNumBytes(userName) + 9);
} }
public void writeTo(ByteBuffer buffer) public void writeTo(ByteBuffer buffer)
@ -318,7 +318,7 @@ public class ServerStatus extends V086Message
public int getLength() public int getLength()
{ {
//return (charset.encode(romName).remaining() + 1 + 4 + charset.encode(clientType).remaining() + 1 + charset.encode(userName).remaining() + 1 + charset.encode(players).remaining() + 1 + 1); //return (charset.encode(romName).remaining() + 1 + 4 + charset.encode(clientType).remaining() + 1 + charset.encode(userName).remaining() + 1 + charset.encode(players).remaining() + 1 + 1);
return (romName.length() + 1 + 4 + clientType.length() + 1 + userName.length() + 1 + players.length() + 1 + 1); return (getNumBytes(romName) + 1 + 4 + getNumBytes(clientType) + 1 + getNumBytes(userName) + 1 + getNumBytes(players) + 1 + 1);
} }
public void writeTo(ByteBuffer buffer) public void writeTo(ByteBuffer buffer)

View File

@ -40,7 +40,7 @@ public class UserInformation extends V086Message
public int getBodyLength() public int getBodyLength()
{ {
//return (charset.encode(userName).remaining() + charset.encode(clientType).remaining() + 3); //return (charset.encode(userName).remaining() + charset.encode(clientType).remaining() + 3);
return (userName.length() + clientType.length() + 3); return (getNumBytes(userName) + getNumBytes(clientType) + 3);
} }
public String getUserName() public String getUserName()

View File

@ -75,7 +75,7 @@ public class UserJoined extends V086Message
public int getBodyLength() public int getBodyLength()
{ {
//return (charset.encode(userName).remaining() + 8); //return (charset.encode(userName).remaining() + 8);
return (userName.length() + 8); return (getNumBytes(userName) + 8);
} }
public void writeBodyTo(ByteBuffer buffer) public void writeBodyTo(ByteBuffer buffer)

View File

@ -40,6 +40,12 @@ public abstract class V086Message extends ByteBufferMessage
//return (getBodyLength() + 5); //return (getBodyLength() + 5);
} }
/** Gets the number of bytes to represent the string in the charset defined in emulinker.cfg **/
protected static int getNumBytes(String s)
{
return s.getBytes(charset).length;
}
public abstract int getBodyLength(); public abstract int getBodyLength();
protected String getInfoString() protected String getInfoString()

View File

@ -536,6 +536,12 @@ public final class KailleraUserImpl implements KailleraUser, Executable
{ {
updateLastActivity(); updateLastActivity();
if (server.getUser(getID()) == null)
{
log.error(this + " create game failed: User don't exists!");
return null;
}
if (getStatus() == KailleraUser.STATUS_PLAYING) if (getStatus() == KailleraUser.STATUS_PLAYING)
{ {
log.warn(this + " create game failed: User status is Playing!"); //$NON-NLS-1$ log.warn(this + " create game failed: User status is Playing!"); //$NON-NLS-1$
@ -664,8 +670,9 @@ public final class KailleraUserImpl implements KailleraUser, Executable
if (status == KailleraUser.STATUS_PLAYING) if (status == KailleraUser.STATUS_PLAYING)
{ {
game.drop(this, playerNumber); //first set STATUS_IDLE and then call game.drop, otherwise if someone quit game whitout drop - game status will not change to STATUS_WAITING
setStatus(KailleraUser.STATUS_IDLE); setStatus(KailleraUser.STATUS_IDLE);
game.drop(this, playerNumber);
} }
game.quit(this, playerNumber); game.quit(this, playerNumber);

View File

@ -13,9 +13,9 @@ public final class KailleraServerReleaseInfo implements ReleaseInfo
private final int majorVersion = 0; private final int majorVersion = 0;
private final int minorVersion = 92; private final int minorVersion = 92;
private final int buildNumber = 4; private final int buildNumber = 9;
private final String releaseDate = "05-06-2021"; private final String releaseDate = "08-22-2021";
private final String licenseInfo = "Usage of this sofware is subject to the terms found in the included license"; private final String licenseInfo = "Usage of this sofware is subject to the terms found in the included license";
private final String website = "https://www.EmuLinker.org"; private final String website = "https://www.EmuLinker.org";