Crossfire JXClient, Trunk
|
Go to the documentation of this file.
23 package com.realtime.crossfire.jxclient.window;
51 import java.util.Collection;
52 import java.util.HashMap;
53 import java.util.Locale;
55 import java.util.concurrent.atomic.AtomicBoolean;
56 import org.jetbrains.annotations.NotNull;
57 import org.jetbrains.annotations.Nullable;
158 private final Map<String, Gui>
dialogs =
new HashMap<>();
167 public void commandDrawextinfoReceived(
final int color,
final int type,
final int subtype, @NotNull
final String message) {
169 throw new IllegalStateException(
"no skin set");
172 @Nullable
final Gui dialog;
173 String effectiveMessage = message;
179 final String[] tmp = message.split(
"\n", 2);
181 effectiveMessage = tmp.length >= 2 ? tmp[1] :
"";
222 if (dialog ==
null) {
230 log.
updateText(effectiveMessage, type, subtype);
233 label.
setText(effectiveMessage);
239 public void setDebugMode(
final boolean printMessageTypes) {
253 public void failure(@NotNull
final String command, @NotNull
final String arguments) {
254 if (command.equals(
"accountlogin") &&
skin !=
null) {
258 if (passwordField !=
null) {
265 }
else if (command.equals(
"accountaddplayer") &&
skin !=
null) {
270 final String argumentsLower = arguments.toLowerCase(Locale.ENGLISH);
271 if (argumentsLower.contains(
"password")) {
272 if (passwordField !=
null) {
276 }
else if (argumentsLower.contains(
"character")) {
277 if (loginField !=
null) {
281 if (passwordField !=
null) {
288 }
else if (command.equals(
"accountnew") &&
skin !=
null) {
294 final String argumentsLower = arguments.toLowerCase(Locale.ENGLISH);
295 if (argumentsLower.contains(
"password")) {
296 if (passwordField !=
null) {
300 if (passwordConfirmField !=
null) {
301 passwordConfirmField.
setText(
"");
303 }
else if (argumentsLower.contains(
"account")) {
304 if (loginField !=
null) {
308 if (passwordField !=
null) {
315 }
else if (command.equals(
"createplayer") &&
skin !=
null) {
319 if (loginField !=
null) {
329 public void clearFailure() {
340 @SuppressWarnings(
"FieldCanBeLocal")
344 public void start() {
353 public void metaserver() {
363 public void preConnecting(@NotNull
final String serverInfo) {
368 public void connecting(@NotNull
final String serverInfo) {
370 throw new IllegalStateException(
"no skin set");
386 public void connecting(@NotNull
final ClientSocketState clientSocketState, @NotNull
final String param) {
391 public void connected() {
396 public void connectFailed(@NotNull
final String reason) {
435 public void addDialog(@NotNull
final String name, @NotNull
final Gui dialog) {
517 @SuppressWarnings(
"StatementWithEmptyBody")
526 }
else if (connected) {
561 throw new IllegalStateException(
"query dialog not set");
569 if (hostname !=
null) {
571 if (!playerName.isEmpty()) {
574 if (textArea !=
null) {
579 }
else if (prompt.startsWith(
"[y] to roll new stats") || prompt.startsWith(
"Welcome, Brave New Warrior!")) {
602 if (dialog !=
null) {
615 private boolean openDialog(@NotNull
final Gui dialog,
final boolean autoCloseOnDeactivate) {
616 final AtomicBoolean result =
new AtomicBoolean();
623 if (labelFailure !=
null) {
627 final String name = dialog.getComponent().getName();
630 case "account_login":
631 final GUIText loginField = dialog.getFirstElement(
GUIText.class,
"account_login");
632 if (loginField ==
null) {
633 final GUIText passwordField = dialog.getFirstElement(
GUIText.class,
"account_password");
634 if (passwordField !=
null) {
639 if (hostname !=
null) {
641 if (accountName.isEmpty()) {
645 final GUIText passwordField = dialog.getFirstElement(
GUIText.class,
"account_password");
646 if (passwordField !=
null) {
650 loginField.
setText(accountName);
652 final GUIText passwordField = dialog.getFirstElement(
GUIText.class,
"account_password");
653 if (passwordField !=
null) {
662 case "account_characters":
664 if (characterList !=
null) {
666 if (accountName !=
null) {
668 if (hostname !=
null) {
670 if (!characterName.isEmpty()) {
678 case "account_character_new":
679 final GUIText characterField = dialog.getFirstElement(
GUIText.class,
"account_character_create");
680 if (characterField !=
null) {
708 throw new IllegalStateException(
"query dialog not set");
721 throw new IllegalStateException(
"skin not set");
742 throw new IllegalStateException(
"skin not set");
762 throw new IllegalStateException(
"query dialog not set");
765 throw new IllegalStateException(
"skin not set");
777 if (!ignoreQueryDialog) {
791 if (!serverName.isEmpty()) {
801 throw new IllegalStateException(
"keybinding dialog not set");
812 throw new IllegalStateException(
"keybinding dialog not set");
824 if (dialog !=
null) {
847 if (hostname !=
null) {
865 if (textArea1 !=
null) {
873 if (textArea3 !=
null) {
892 if (textArea !=
null && newText !=
null && !newText.isEmpty()) {
978 String message =
null;
979 switch (clientSocketState) {
981 message =
"Connecting...";
985 message =
"Exchanging version...";
989 message =
"Exchanging configuration...";
993 message = param ==
null || param.isEmpty() ?
"Requesting information" :
"Requesting information: "+param;
997 message =
"Starting account session...";
1001 message =
"Joining the game...";
1008 case CONNECT_FAILED:
1009 message =
"Cannot connect to Crossfire server:\n"+param;
1013 assert message !=
null;
1054 assert
skin !=
null;
1057 dialog.autoSize(width, height);
1073 throw new IllegalStateException(
"skin not set");
1090 throw new IllegalStateException(
"skin not set");
1102 if (hostname !=
null) {
1112 public void selectCharacter(@NotNull
final String accountName, @NotNull
final String characterName) {
1114 if (hostname !=
null) {
1127 if (textArea !=
null) {
1138 dialog.setOpaqueDialogBackground(opaque);
1149 dialog.setShowSentCommands(showSentCommands);
1159 dialog.setShowTimestamps(showTimestamps);
void hideAccountWindows()
void closeTransientDialogs(final boolean ignoreQueryDialog)
AbstractLabel dialogConnectLabel
static final int MSG_TYPE_PAPER
boolean closeDialog(@NotNull final Gui dialog)
void updateText(@NotNull final CharSequence string, final int type, final int subtype)
void setCharacter(@NotNull final String characterName)
void openQueryDialog(@NotNull final String prompt, final int queryType)
EscAction escPressed(final boolean connected)
boolean removeKeyBinding(final boolean perCharacter)
void setCurrentGui(@NotNull final Gui gui)
void addCrossfireFailureListener(@NotNull CrossfireFailureListener listener)
Gui getDialogBook(int bookNo)
static final int MSG_TYPE_CLIENT
void selectCharacter(@NotNull final String accountName, @NotNull final String characterName)
boolean openDialogByName(@NotNull final String name)
void openDialog(@NotNull final String name)
static final int MSG_TYPE_MISC
GUIText activateCommandInput()
Collection< String > getCommandListNames()
boolean currentQueryDialogIsNamePrompt
static final int MSG_TYPE_SIGN
static final int MSG_TYPE_COMMAND
static final int MSG_TYPE_SPELL
String getString(@NotNull final SettingsEntry<?> key)
void putString(@NotNull final SettingsEntry<?> key, @NotNull final String value)
static final int MSG_TYPE_APPLY
static final SettingsEntry< String > SERVER
void saveGlobalKeybindings()
GuiManager(@NotNull final GuiStateManager guiStateManager, @NotNull final TooltipManagerImpl tooltipManager, @NotNull final Settings settings, @NotNull final CrossfireServerConnection server, @NotNull final JXCWindowRenderer windowRenderer, @NotNull final GuiFactory guiFactory, @NotNull final KeybindingsManager keybindingsManager, @NotNull final JXCConnection connection)
void updateConnectLabel(@NotNull final ClientSocketState clientSocketState, @Nullable final String param)
void closeDialog(@NotNull final String name)
void activateMetaserverGui()
static void save(@NotNull final JXCSkin skin, @NotNull final JXCWindowRenderer windowRenderer)
final GuiStateListener guiStateListener
static SettingsEntry< String > getPlayerSettingsEntry(@NotNull final String hostname)
void updateWindowSize(final int width, final int height)
boolean closeDialog(@NotNull final Gui dialog)
void attach(@NotNull TooltipManagerImpl tooltipManager)
void activateDefaultElement()
void setSelectedHostname(@NotNull final String serverName)
void updateServerSettings()
static final int MSG_TYPE_ATTACK
static final int MSG_TYPE_CARD
void setShowTimestamps(final boolean showTimestamps)
static final int MSG_TYPE_MOTD
boolean openDialog(@NotNull final Gui dialog, final boolean autoCloseOnDeactivate)
void setOpaqueDialogBackground(final boolean opaque)
static SettingsEntry< String > getLoginAccountSettingsEntry(@NotNull final String hostname)
void updatePlayerName(@NotNull final String playerName)
void closeDialogByName(@NotNull final String name)
void setScreenSize(final int screenWidth, final int screenHeight)
static final int MSG_TYPE_SKILL
final JXCWindowRenderer windowRenderer
boolean createKeyBinding(final boolean perCharacter, @NotNull final CommandList cmdList)
static final int MSG_TYPE_ATTRIBUTE
final Map< String, Gui > dialogs
boolean removeKeyBinding(final boolean perCharacter)
RendererGuiState getGuiState()
void removeCrossfireFailureListener(@NotNull CrossfireFailureListener listener)
static final int MSG_TYPE_ITEM
void toggleDialog(@NotNull final String name)
void closeKeybindDialog()
void setAccountName(@NotNull final String accountName)
public< T extends GUIElement > T getFirstElement(@NotNull final Class< T > class_)
static void invokeAndWait(@NotNull final Runnable runnable)
void showCharacters(final int count)
boolean createKeyBinding(final boolean perCharacter, @NotNull final CommandList cmdList)
void setHideInput(final boolean hideInput)
final JXCConnection connection
static final int MSG_TYPE_COMMUNICATION
void setShowSentCommands(final boolean showSentCommands)
void setGuiState(@NotNull final RendererGuiState rendererGuiState)
Gui getDialogDisconnect()
void removeCrossfireDrawextinfoListener(@NotNull CrossfireDrawextinfoListener listener)
Collection< String > getCommandListNames()
void clearGUI(@NotNull final Gui gui)
void setHideInput(final boolean hideInput)
final CrossfireServerConnection server
void activateCommandInput(@Nullable final String newText)
void setText(@NotNull final String text)
static final int MSG_TYPE_VICTIM
final TooltipManagerImpl tooltipManager
void setText(@NotNull final String text)
boolean openDialog(@NotNull final Gui dialog, final boolean autoCloseOnDeactivate)
static final int MSG_TYPE_MONUMENT
final CrossfireDrawextinfoListener crossfireDrawextinfoListener
CommandList getCommandList(@NotNull final String args)
void setActive(final boolean active)
static final int MSG_TYPE_ADMIN
void setSkin(@NotNull final JXCSkin skin)
final CrossfireFailureListener crossfireFailureListener
final KeybindingsManager keybindingsManager
static final int MSG_TYPE_DIALOG
static final int MSG_TYPE_SHOP
GUIText activateCommandInput()
void addCrossfireDrawextinfoListener(@NotNull CrossfireDrawextinfoListener listener)
void addDialog(@NotNull final String name, @NotNull final Gui dialog)
Gui getDialog(@NotNull final String name)
boolean toggleDialog(@NotNull final Gui dialog)
CommandList getCommandList(@NotNull String name)
AbstractLabel getTooltipLabel()
boolean deactivateCommandInput()
void setTooltip(@Nullable final Component tooltip)
static final int MSG_TYPE_BOOK