--**************************************************************************
--   Copyright (C) 2009 by Lothar May                                      *
--                                                                         *
--   This program is free software; you can redistribute it and/or modify  *
--   it under the terms of the GNU General Public License as published by  *
--   the Free Software Foundation; either version 2 of the License, or     *
--   (at your option) any later version.                                   *
--                                                                         *
--   This program is distributed in the hope that it will be useful,       *
--   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
--   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
--   GNU General Public License for more details.                          *
--                                                                         *
--   You should have received a copy of the GNU General Public License     *
--   along with this program; if not, write to the                         *
--   Free Software Foundation, Inc.,                                       *
--   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
--**************************************************************************

CHATCLEANER-PROTOCOL DEFINITIONS
IMPLICIT TAGS
EXTENSIBILITY IMPLIED ::=

BEGIN

ChatCleanerMessage ::= CHOICE {
	cleanerInitMessage			CleanerInitMessage,
	cleanerInitAckMessage		CleanerInitAckMessage,
	cleanerChatRequestMessage	CleanerChatRequestMessage,
	cleanerChatReplyMessage		CleanerChatReplyMessage
}

CleanerInitMessage ::= [APPLICATION 0] SEQUENCE {
	requestedVersion			INTEGER(0..65535),
	clientSecret				UTF8String (SIZE(1..32))
}

CleanerInitAckMessage ::= [APPLICATION 1] SEQUENCE {
	serverVersion				INTEGER(0..65535),
	serverSecret				UTF8String (SIZE(1..32))
}

CleanerChatRequestMessage ::= [APPLICATION 2] SEQUENCE {
	requestId					INTEGER(1..4294967295),
	playerId					INTEGER(1..4294967295),
	playerName					UTF8String (SIZE(1..32)),
	chatMessage					UTF8String (SIZE(1..128))
}

CleanerChatReplyMessage ::= [APPLICATION 3] SEQUENCE {
	requestId					INTEGER(1..4294967295),
	playerId					INTEGER(1..4294967295),
	cleanerActionType			ENUMERATED {
		cleanerActionNone		(0),
		cleanerActionWarning	(1),
		cleanerActionKick		(2),
		cleanerActionBan		(3)
	},
	cleanerText					UTF8String (SIZE(1..128)) OPTIONAL
}

END
