- Ban booted players from a table
- Boot by sitting position, not oid git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@713 c613c5cb-e716-0410-b11b-feb51c14d237
This commit is contained in:
@@ -55,11 +55,14 @@ public interface ParlorCodes extends InvocationCodes
|
||||
* occupied. */
|
||||
public static final String TABLE_POSITION_OCCUPIED = "m.table_position_occupied";
|
||||
|
||||
/** An error code returned when a user requests to creat or join a table but they're already
|
||||
/** An error code returned when a user requests to create or join a table but they're already
|
||||
* sitting at another table. */
|
||||
public static final String ALREADY_AT_TABLE = "m.already_at_table";
|
||||
|
||||
/** An error code returned when a user requests to leave a table that they were not sitting at
|
||||
* in the first place. */
|
||||
public static final String NOT_AT_TABLE = "m.not_at_table";
|
||||
|
||||
/** An error code returned when a user requests to join a table they've been banned from. */
|
||||
public static final String BANNED_FROM_TABLE = "m.banned_from_table";
|
||||
}
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
package com.threerings.parlor.data;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.HashSet;
|
||||
|
||||
import com.google.common.collect.Lists;
|
||||
|
||||
@@ -228,6 +229,10 @@ public class Table
|
||||
return TABLE_POSITION_OCCUPIED;
|
||||
}
|
||||
|
||||
if (_bannedUsers != null && _bannedUsers.contains(player.username)) {
|
||||
return BANNED_FROM_TABLE;
|
||||
}
|
||||
|
||||
// otherwise all is well, stick 'em in
|
||||
setPlayerPos(position, player);
|
||||
return null;
|
||||
@@ -244,6 +249,19 @@ public class Table
|
||||
bodyOids[position] = player.getOid();
|
||||
}
|
||||
|
||||
/**
|
||||
* Indicate to this table that a user was booted and should
|
||||
* be prevented from rejoining.
|
||||
*/
|
||||
public void addBannedUser (Name username)
|
||||
{
|
||||
if (_bannedUsers == null) {
|
||||
_bannedUsers = new HashSet<Name>();
|
||||
}
|
||||
|
||||
_bannedUsers.add(username);
|
||||
}
|
||||
|
||||
/**
|
||||
* Requests that the specified user be removed from their seat at this table.
|
||||
*
|
||||
@@ -423,4 +441,7 @@ public class Table
|
||||
|
||||
/** A counter for assigning table ids. */
|
||||
protected static int _tableIdCounter = 0;
|
||||
|
||||
/** On the server, the usernames that have been banned from this table. */
|
||||
protected transient HashSet<Name> _bannedUsers;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user