home · contact · privacy
Limit annotation length.
[plomrogue2] / plomrogue / commands.py
index f2e479e17cc0bfbecac54c8f485f9e1d8ddfcb3f..2061fe7b782560f50911753fcee3f1cf9395afac 100644 (file)
@@ -1,5 +1,5 @@
 from plomrogue.misc import quote
-from plomrogue.errors import GameError
+from plomrogue.errors import GameError, ArgError
 
 
 
@@ -36,7 +36,6 @@ def cmd_SPAWN_POINT(game, big_yx, little_yx):
 cmd_SPAWN_POINT.argtypes = 'yx_tuple yx_tuple:nonneg'
 
 def cmd_LOGIN(game, nick, connection_id):
-    # TODO filter newlines
     for t in [t for t in game.things if t.type_ == 'Player' and t.name == nick]:
         raise GameError('name already in use')
     if game.get_player(connection_id):
@@ -152,6 +151,8 @@ def cmd_TURN(game, n):
 cmd_TURN.argtypes = 'int:nonneg'
 
 def cmd_ANNOTATE(game, yx, msg, pw, connection_id):
+    if len(msg) > 500:
+        raise ArgError('annotation text must be <= 500 characters')
     player = game.get_player(connection_id)
     big_yx, little_yx = player.fov_stencil.source_yxyx(yx)
     if not player.fov_test(big_yx, little_yx):