Crossfire JXClient, Trunk  R20561
DebugMessagesCommand.java
Go to the documentation of this file.
1 /*
2  * This file is part of JXClient, the Fullscreen Java Crossfire Client.
3  *
4  * JXClient is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation; either version 2 of the License, or
7  * (at your option) any later version.
8  *
9  * JXClient is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with JXClient; if not, write to the Free Software
16  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
17  *
18  * Copyright (C) 2005-2008 Yann Chachkoff.
19  * Copyright (C) 2006-2011 Andreas Kirschbaum.
20  */
21 
22 package com.realtime.crossfire.jxclient.commands;
23 
27 import org.jetbrains.annotations.NotNull;
28 
34 public class DebugMessagesCommand extends AbstractCommand {
35 
39  @NotNull
41 
46  public DebugMessagesCommand(@NotNull final CrossfireServerConnection crossfireServerConnection) {
47  super("debug_messages", crossfireServerConnection);
48  this.crossfireServerConnection = crossfireServerConnection;
49  }
50 
54  @Override
55  public boolean allArguments() {
56  return false;
57  }
58 
62  @Override
63  public void execute(@NotNull final String args) {
64  switch (args) {
65  case "colors":
66  for (int color = 0; color < MessageBufferUpdater.NUM_COLORS; color++) {
67  drawInfo("This line is color #"+color+" ("+MessageBufferUpdater.getColorName(color)+").", color);
68  }
69  break;
70 
71  case "types":
72  for (final int type : MessageTypes.getAllTypes()) {
73  crossfireServerConnection.drawextinfo(0, type, 0, "This line is type #"+type+".");
74  }
75  break;
76 
77  case "on":
78  crossfireServerConnection.drawInfoSetDebugMode(true);
79  break;
80 
81  case "off":
82  crossfireServerConnection.drawInfoSetDebugMode(false);
83  break;
84 
85  default:
86  drawInfoError("Valid arguments are 'colors', 'types', 'on', or 'off'. 'colors' prints messages using different message types, 'on' and 'off' enable/disable printing of message types.");
87  break;
88  }
89  }
90 
91 }
Abstract base class for Command implementations.
static int [] getAllTypes()
Returns all defined message types.
static final int NUM_COLORS
The number of supported colors.
Encapsulates the message type numbers for drawextinfo messages.
void drawInfoError(@NotNull final String message)
Displays an error message.
DebugMessagesCommand(@NotNull final CrossfireServerConnection crossfireServerConnection)
Creates a new instance.
static String getColorName(final int index)
Returns the name of a color index.
boolean allArguments()
Returns whether all remaining commands should be included as arguments.whether all remaining commands...
void execute(@NotNull final String args)
Executes the command with the given arguments.the command arguments
void drawInfoSetDebugMode(boolean printMessageTypes)
Enables or disables printing of message types.
void drawextinfo(int color, int type, int subtype, String message)
Pretends that a drawextinfo message has been received.
final CrossfireServerConnection crossfireServerConnection
The connection instance.
Adds encoding/decoding of crossfire protocol packets to a ServerConnection.
Adds drawinfo, drawextinfo, and query messages to a Buffer instance.
void drawInfo(@NotNull final String message)
Displays a regular output message.