/*
* Copyright (c) 2014 tabletoptool.com team.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the GNU Public License v3.0
* which accompanies this distribution, and is available at
* http://www.gnu.org/licenses/gpl.html
*
* Contributors:
* rptools.com team - initial implementation
* tabletoptool.com team - further development
*/
package com.t3.client.ui;
import java.util.prefs.Preferences;
import com.t3.client.AppConstants;
import com.t3.client.AppPreferences;
import com.t3.client.walker.WalkerMetric;
import com.t3.model.Player;
import com.t3.networking.ServerConfig;
public class StartServerDialogPreferences {
private static Preferences prefs = Preferences.userRoot().node(AppConstants.APP_NAME + "/prefs/server");
private static final String KEY_USERNAME = "name";
private static final String KEY_ROLE = "playerRole";
private static final String KEY_PORT = "port";
private static final String KEY_GM_PASSWORD = "gmPassword";
private static final String KEY_PLAYER_PASSWORD = "playerPassword";
private static final String KEY_STRICT_TOKEN_OWNERSHIP = "strictTokenOwnership";
private static final String KEY_REGISTER_SERVER = "registerServer";
private static final String KEY_T3_NAME = "t3Name";
private static final String KEY_T3_PRIVATE = "t3Private";
private static final String KEY_PLAYERS_CAN_REVEAL_VISION = "playersCanRevealVisionCheckbox";
private static final String KEY_USE_INDIVIDUAL_VIEWS = "useIndividualViews";
private static final String KEY_USE_UPNP = "useUPnP";
private static final String KEY_RESTRICTED_IMPERSONATION = "restrictedImpersonation";
private static final String KEY_PLAYERS_RECEIVE_CAMPAIGN_MACROS = "playersReceiveCampaignMacros";
private static final String KEY_WALKER_METRIC = "movementMetric";
private static final String KEY_USE_INDIVIDUAL_FOW = "useIndividualFOW";
private static final String KEY_AUTO_REVEAL_ON_MOVE = "autoRevealOnMovement";
private static Boolean useToolTipsForUnformattedRolls = null;
public Player.Role getRole () {
return Player.Role.valueOf(prefs.get(KEY_ROLE, Player.Role.GM.name()));
}
public void setRole(Player.Role role) {
prefs.put(KEY_ROLE, role.name());
}
public String getUsername() {
return prefs.get(KEY_USERNAME, "");
}
public void setUsername(String name) {
prefs.put(KEY_USERNAME, name.trim());
}
public void setGMPassword(String password) {
prefs.put(KEY_GM_PASSWORD, password.trim());
}
public String getGMPassword() {
return prefs.get(KEY_GM_PASSWORD, "");
}
public void setPlayerPassword(String password) {
prefs.put(KEY_PLAYER_PASSWORD, password.trim());
}
public String getPlayerPassword() {
return prefs.get(KEY_PLAYER_PASSWORD, "");
}
public int getPort() {
return prefs.getInt(KEY_PORT, ServerConfig.DEFAULT_PORT);
}
public void setPort(int port) {
prefs.putInt(KEY_PORT, port);
}
public boolean getUseStrictTokenOwnership() {
return prefs.getBoolean(KEY_STRICT_TOKEN_OWNERSHIP, false);
}
public void setUseStrictTokenOwnership(boolean use) {
prefs.putBoolean(KEY_STRICT_TOKEN_OWNERSHIP, use);
}
// my addition
public boolean getRestrictedImpersonation() {
return prefs.getBoolean(KEY_RESTRICTED_IMPERSONATION, true);
}
public void setRestrictedImpersonation (boolean impersonation) {
prefs.putBoolean(KEY_RESTRICTED_IMPERSONATION, impersonation);
}
public boolean registerServer() {
return prefs.getBoolean(KEY_REGISTER_SERVER, false);
}
public void setRegisterServer(boolean register) {
prefs.putBoolean(KEY_REGISTER_SERVER, register);
}
public void setT3Name(String name) {
prefs.put(KEY_T3_NAME, name.trim());
}
public String getT3Name() {
return prefs.get(KEY_T3_NAME, "");
}
public void setT3Private(boolean flag) {
prefs.putBoolean(KEY_T3_PRIVATE, flag);
}
public boolean getT3Private() {
return prefs.getBoolean(KEY_T3_PRIVATE, false);
}
public void setPlayersCanRevealVision(boolean flag) {
prefs.putBoolean(KEY_PLAYERS_CAN_REVEAL_VISION, flag);
}
public boolean getPlayersCanRevealVision() {
return prefs.getBoolean(KEY_PLAYERS_CAN_REVEAL_VISION, false);
}
public void setUseIndividualViews(boolean flag) {
prefs.putBoolean(KEY_USE_INDIVIDUAL_VIEWS, flag);
}
public boolean getUseIndividualViews() {
return prefs.getBoolean(KEY_USE_INDIVIDUAL_VIEWS, false);
}
public void setUseUPnP(boolean op) {
prefs.putBoolean(KEY_USE_UPNP, op);
}
public boolean getUseUPnP() {
return prefs.getBoolean(KEY_USE_UPNP, false);
}
public void setPlayersReceiveCampaignMacros(boolean flag) {
prefs.putBoolean(KEY_PLAYERS_RECEIVE_CAMPAIGN_MACROS, flag);
}
public boolean getPlayersReceiveCampaignMacros() {
return prefs.getBoolean(KEY_PLAYERS_RECEIVE_CAMPAIGN_MACROS, false);
}
public boolean getUseToolTipsForUnformattedRolls() {
// Tool tips works slightly differently as its a setting that has to be available
// to the user to configure before the start server dialog. So if it has not been
// specified we default to the users preferences.
if (useToolTipsForUnformattedRolls == null) {
return AppPreferences.getUseToolTipForInlineRoll();
}
return useToolTipsForUnformattedRolls;
}
public void setUseToolTipsForUnformattedRolls(boolean flag) {
useToolTipsForUnformattedRolls = flag;
}
public WalkerMetric getMovementMetric() {
String metric = prefs.get(KEY_WALKER_METRIC, "ONE_ONE_ONE");
return WalkerMetric.valueOf(metric);
}
public void setMovementMetric(WalkerMetric metric) {
prefs.put(KEY_WALKER_METRIC, metric.toString());
}
public boolean getUseIndividualFOW() {
return prefs.getBoolean(KEY_USE_INDIVIDUAL_FOW, false);
}
public void setUseIndividualFOW(boolean flag) {
prefs.putBoolean(KEY_USE_INDIVIDUAL_FOW, flag);
}
public boolean isAutoRevealOnMovement() {
return prefs.getBoolean(KEY_AUTO_REVEAL_ON_MOVE, false);
}
public void setAutoRevealOnMovement(boolean flag) {
prefs.putBoolean(KEY_AUTO_REVEAL_ON_MOVE, flag);
}
}