Crossfire JXClient, Trunk
SetCommand.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-2017,2019-2023 Andreas Kirschbaum
20  * Copyright (C) 2010-2012,2014-2018,2020-2023 Nicolas Weeger
21  */
22 
23 package com.realtime.crossfire.jxclient.commands;
24 
30 import java.util.Map.Entry;
31 import org.jetbrains.annotations.NotNull;
32 
37 public class SetCommand extends AbstractCommand {
38 
42  @NotNull
44 
51  super("set", crossfireServerConnection);
52  this.optionManager = optionManager;
53  }
54 
55  @Override
56  public boolean allArguments() {
57  return false;
58  }
59 
60  @Override
61  public void execute(@NotNull final String args) {
62  final String[] tmp = Patterns.PATTERN_WHITESPACE.split(args, 2);
63  if (tmp.length != 2) {
64  drawInfoError("The set command needs two arguments: set <option> <value>");
65  return;
66  }
67 
68  final String optionName = tmp[0];
69  final String optionArgs = tmp[1];
70  final CheckBoxOption option;
71  try {
72  option = optionManager.getCheckBoxOption(optionName);
73  } catch (final OptionException ex) {
74  drawInfoError(ex.getMessage());
75  return;
76  }
77 
78  final boolean checked;
79  switch (optionArgs) {
80  case "on":
81  checked = true;
82  break;
83 
84  case "off":
85  checked = false;
86  break;
87 
88  default:
89  drawInfoError("The '"+optionArgs+"' for option '"+optionName+"' is invalid. Valid arguments are 'on' or 'off'.");
90  return;
91  }
92 
93  option.setChecked(checked);
94  }
95 
96  @NotNull
97  @Override
98  public String getHelp() {
99  final StringBuilder sb = new StringBuilder();
100  sb.append("Configures an option value\n");
101  sb.append("\n");
102  sb.append("Usage: set <name> on\n");
103  sb.append("Usage: set <name> off\n");
104  sb.append("\n");
105  sb.append("Valid option names are:\n");
106  for (final Entry<String, OptionManager.Entry> option : optionManager.getOptions().entrySet()) {
107  sb.append("- ").append(option.getKey()).append(": ").append(option.getValue().getDocumentation()).append("\n");
108  }
109  return sb.toString();
110  }
111 
112 }
com.realtime.crossfire.jxclient
com.realtime.crossfire.jxclient.server
com.realtime.crossfire.jxclient.settings.options.CheckBoxOption.setChecked
void setChecked(final boolean checked)
Definition: CheckBoxOption.java:65
com.realtime.crossfire.jxclient.settings.options.OptionException
Definition: OptionException.java:31
com.realtime.crossfire.jxclient.commands.SetCommand.execute
void execute(@NotNull final String args)
Definition: SetCommand.java:61
com.realtime.crossfire.jxclient.commands.SetCommand
Definition: SetCommand.java:37
com.realtime.crossfire.jxclient.commands.AbstractCommand.crossfireServerConnection
final CrossfireServerConnection crossfireServerConnection
Definition: AbstractCommand.java:45
com.realtime.crossfire.jxclient.settings
Definition: CommandHistory.java:23
com.realtime.crossfire.jxclient.commands.SetCommand.getHelp
String getHelp()
Definition: SetCommand.java:98
com.realtime.crossfire.jxclient.commands.SetCommand.SetCommand
SetCommand(@NotNull final CrossfireServerConnection crossfireServerConnection, @NotNull final OptionManager optionManager)
Definition: SetCommand.java:50
com.realtime.crossfire.jxclient.commands.SetCommand.optionManager
final OptionManager optionManager
Definition: SetCommand.java:43
com.realtime.crossfire.jxclient.commands.AbstractCommand.drawInfoError
void drawInfoError(@NotNull final String message)
Definition: AbstractCommand.java:69
com.realtime.crossfire.jxclient.util.Patterns.PATTERN_WHITESPACE
static final Pattern PATTERN_WHITESPACE
Definition: Patterns.java:38
com.realtime.crossfire.jxclient.server.crossfire.CrossfireServerConnection
Definition: CrossfireServerConnection.java:37
com.realtime.crossfire.jxclient.settings.options.OptionManager.getOptions
Map< String, Entry > getOptions()
Definition: OptionManager.java:86
com.realtime.crossfire.jxclient.util
Definition: Codec.java:23
com.realtime.crossfire.jxclient.server.crossfire
Definition: AbstractCrossfireServerConnection.java:23
com.realtime.crossfire.jxclient.commands.SetCommand.allArguments
boolean allArguments()
Definition: SetCommand.java:56
com.realtime.crossfire
com.realtime.crossfire.jxclient.settings.options
Definition: CheckBoxOption.java:23
com.realtime.crossfire.jxclient.settings.options.OptionManager.getCheckBoxOption
CheckBoxOption getCheckBoxOption(@NotNull final String optionName)
Definition: OptionManager.java:97
com.realtime
com
com.realtime.crossfire.jxclient.settings.options.CheckBoxOption
Definition: CheckBoxOption.java:32
com.realtime.crossfire.jxclient.commands.AbstractCommand
Definition: AbstractCommand.java:33
com.realtime.crossfire.jxclient.settings.options.OptionManager
Definition: OptionManager.java:36
com.realtime.crossfire.jxclient.util.Patterns
Definition: Patterns.java:32