package net.classicube.launcher;
import java.util.prefs.Preferences;
public final class Prefs {
// Key names
private static final String keyUpdateMode = "UpdateMode",
keyFullscreen = "WindowSize",
keyRememberUsers = "RememberUsers",
keyRememberPasswords = "RememberPasswords",
keyRememberServer = "RememberServer",
keyJavaArgs = "JavaArgs",
keyMaxMemory = "MaxMemory",
keySelectedGameService = "SelectedGameService",
keyDebugMode = "DebugMode",
keyRememberedExternalIPs = "RememberedExternalIPs",
keyKeepOpen = "KeepOpen";
// Defaults
public final static UpdateMode UpdateModeDefault = UpdateMode.NOTIFY;
public final static boolean FullscreenDefault = false,
RememberUsersDefault = true,
RememberPasswordsDefault = true,
RememberServerDefault = true,
DebugModeDefault = false,
KeepOpenDefault = false;
public final static String JavaArgsDefault = "-Dorg.lwjgl.util.Debug=true "
+ "-Dsun.java2d.noddraw=true "
+ "-Dsun.awt.noerasebackground=true "
+ "-Dsun.java2d.d3d=false "
+ "-Dsun.java2d.opengl=false "
+ "-Dsun.java2d.pmoffscreen=false";
public final static int MaxMemoryDefault = 800;
public final static GameServiceType SelectedGameServiceDefault = GameServiceType.ClassiCubeNetService;
// Getters
public static UpdateMode getUpdateMode() {
try {
return UpdateMode.valueOf(getPrefs().get(keyUpdateMode, UpdateModeDefault.name()));
} catch (final IllegalArgumentException ex) {
return UpdateModeDefault;
}
}
public static boolean getFullscreen() {
return getPrefs().getBoolean(keyFullscreen, FullscreenDefault);
}
public static boolean getRememberUsers() {
return getPrefs().getBoolean(keyRememberUsers, RememberUsersDefault);
}
public static boolean getRememberPasswords() {
return getPrefs().getBoolean(keyRememberPasswords, RememberPasswordsDefault);
}
public static boolean getRememberServer() {
return getPrefs().getBoolean(keyRememberServer, RememberServerDefault);
}
public static String getJavaArgs() {
return getPrefs().get(keyJavaArgs, JavaArgsDefault);
}
public static int getMaxMemory() {
return getPrefs().getInt(keyMaxMemory, MaxMemoryDefault);
}
public static boolean getDebugMode() {
return getPrefs().getBoolean(keyDebugMode, DebugModeDefault);
}
public static GameServiceType getSelectedGameService() {
try {
final String val = getPrefs().get(keySelectedGameService, SelectedGameServiceDefault.name());
return GameServiceType.valueOf(val);
} catch (final IllegalArgumentException ex) {
return SelectedGameServiceDefault;
}
}
public static boolean getKeepOpen() {
return getPrefs().getBoolean(keyKeepOpen, KeepOpenDefault);
}
// Setters
public static void setUpdateMode(final UpdateMode val) {
getPrefs().put(keyUpdateMode, val.name());
}
public static void setFullscreen(final boolean val) {
getPrefs().putBoolean(keyFullscreen, val);
}
public static void setRememberUsers(final boolean val) {
getPrefs().putBoolean(keyRememberUsers, val);
}
public static void setRememberPasswords(final boolean val) {
getPrefs().putBoolean(keyRememberPasswords, val);
}
public static void setRememberServer(final boolean val) {
getPrefs().putBoolean(keyRememberServer, val);
}
public static void setJavaArgs(final String val) {
getPrefs().put(keyJavaArgs, val);
}
public static void setMaxMemory(final int val) {
getPrefs().putInt(keyMaxMemory, val);
}
public static void setDebugMode(final boolean val) {
getPrefs().putBoolean(keyDebugMode, val);
}
public static void setSelectedGameService(final GameServiceType val) {
getPrefs().put(keySelectedGameService, val.name());
}
public static void setKeepOpen(final boolean val) {
getPrefs().putBoolean(keyKeepOpen, val);
}
// Etc
private static Preferences getPrefs() {
return Preferences.userNodeForPackage(Prefs.class);
}
public static Preferences getRememberedExternalIPs() {
return getPrefs().node(keyRememberedExternalIPs);
}
private Prefs() {
}
}