Crossfire JXClient, Trunk
BindingsCommand.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 
28 import java.util.Map.Entry;
29 import org.jetbrains.annotations.NotNull;
30 
36 public class BindingsCommand extends AbstractCommand {
37 
41  @NotNull
43 
50  super("bindings", crossfireServerConnection);
51  this.keybindingsManager = keybindingsManager;
52  }
53 
54  @Override
55  public boolean allArguments() {
56  return false;
57  }
58 
59  @Override
60  public void execute(@NotNull final String args) {
61  final Iterable<Entry<KeyBinding, String>> bindings = keybindingsManager.getBindings(binding -> binding.getCommandString().contains(args)).entrySet();
62  drawInfo("Keybindings:");
63  for (Entry<KeyBinding, String> e : bindings) {
64  final KeyBinding binding = e.getKey();
65  drawInfo("<"+e.getValue()+"> "+binding.getBindingDescription()+": "+binding.getCommandString());
66  }
67  }
68 
69  @NotNull
70  @Override
71  public String getHelp() {
72  //noinspection StringBufferReplaceableByString
73  final StringBuilder sb = new StringBuilder();
74  sb.append("Shows defined keybindings\n");
75  sb.append("\n");
76  sb.append("Usage: bindings\n");
77  sb.append("Usage: bindings <command>\n");
78  sb.append("\n");
79  sb.append("The first form shows all currently active keybindings. ");
80  sb.append("If <command> is given, shows only keybindings which include the given (partial) command.\n");
81  sb.append("The first column shows where the key binding is defined: ");
82  sb.append("<").append(KeybindingsManager.DEFAULT).append(">=default, ");
83  sb.append("<").append(KeybindingsManager.GLOBAL).append(">=global (character-independent), ");
84  sb.append("<").append(KeybindingsManager.CHARACTER).append(">=current character.\n");
85  sb.append("Note: Bind a key: bind\n");
86  sb.append("Note: Unbind a key: unbind\n");
87  return sb.toString();
88  }
89 
90 }
com.realtime.crossfire.jxclient
com.realtime.crossfire.jxclient.gui.keybindings.KeybindingsManager.DEFAULT
static final String DEFAULT
Definition: KeybindingsManager.java:46
com.realtime.crossfire.jxclient.gui.keybindings.KeybindingsManager.GLOBAL
static final String GLOBAL
Definition: KeybindingsManager.java:52
com.realtime.crossfire.jxclient.gui.keybindings.KeyBinding.getBindingDescription
String getBindingDescription()
Definition: KeyBinding.java:122
com.realtime.crossfire.jxclient.server
com.realtime.crossfire.jxclient.commands.BindingsCommand.execute
void execute(@NotNull final String args)
Definition: BindingsCommand.java:60
com.realtime.crossfire.jxclient.gui.keybindings.KeybindingsManager.CHARACTER
static final String CHARACTER
Definition: KeybindingsManager.java:58
com.realtime.crossfire.jxclient.gui.keybindings
Definition: InvalidKeyBindingException.java:23
com.realtime.crossfire.jxclient.commands.AbstractCommand.crossfireServerConnection
final CrossfireServerConnection crossfireServerConnection
Definition: AbstractCommand.java:45
com.realtime.crossfire.jxclient.server.crossfire.CrossfireServerConnection
Definition: CrossfireServerConnection.java:37
com.realtime.crossfire.jxclient.gui
com.realtime.crossfire.jxclient.gui.keybindings.KeyBinding
Definition: KeyBinding.java:37
com.realtime.crossfire.jxclient.server.crossfire
Definition: AbstractCrossfireServerConnection.java:23
com.realtime.crossfire.jxclient.commands.BindingsCommand.keybindingsManager
final KeybindingsManager keybindingsManager
Definition: BindingsCommand.java:42
com.realtime.crossfire.jxclient.commands.BindingsCommand
Definition: BindingsCommand.java:36
com.realtime.crossfire.jxclient.commands.BindingsCommand.getHelp
String getHelp()
Definition: BindingsCommand.java:71
com.realtime.crossfire
com.realtime.crossfire.jxclient.commands.AbstractCommand.drawInfo
void drawInfo(@NotNull final String message)
Definition: AbstractCommand.java:61
com.realtime.crossfire.jxclient.commands.BindingsCommand.BindingsCommand
BindingsCommand(@NotNull final CrossfireServerConnection crossfireServerConnection, @NotNull final KeybindingsManager keybindingsManager)
Definition: BindingsCommand.java:49
com.realtime
com.realtime.crossfire.jxclient.gui.keybindings.KeybindingsManager.getBindings
Map< KeyBinding, String > getBindings(@NotNull final Predicate< KeyBinding > predicate)
Definition: KeybindingsManager.java:287
com
com.realtime.crossfire.jxclient.commands.AbstractCommand
Definition: AbstractCommand.java:33
com.realtime.crossfire.jxclient.gui.keybindings.KeyBinding.getCommandString
String getCommandString()
Definition: KeyBinding.java:142
com.realtime.crossfire.jxclient.commands.BindingsCommand.allArguments
boolean allArguments()
Definition: BindingsCommand.java:55
com.realtime.crossfire.jxclient.gui.keybindings.KeybindingsManager
Definition: KeybindingsManager.java:40