📄 pluginconfigimpl.java
字号:
public int[] getUnsafeColorParameter(String name)
{
return getDefaultedColorParameter(name, false);
}
public int[] getUnsafeColorParameter(String name, int default_value[])
{
return getColorParameter(name, default_value, false, false);
}
public float getUnsafeFloatParameter(String name)
{
return getDefaultedFloatParameter(name, false);
}
public float getUnsafeFloatParameter(String name, float default_value)
{
return getFloatParameter(name, default_value, false, false);
}
public int getUnsafeIntParameter(String name)
{
return getDefaultedIntParameter(name, false);
}
public int getUnsafeIntParameter(String name, int default_value)
{
return getIntParameter(name, default_value, false, false);
}
public long getUnsafeLongParameter(String name)
{
return getDefaultedLongParameter(name, false);
}
public long getUnsafeLongParameter(String name, long default_value)
{
return getLongParameter(name, default_value, false, false);
}
public String getUnsafeStringParameter(String name)
{
return getDefaultedStringParameter(name, false);
}
public String getUnsafeStringParameter(String name, String default_value)
{
return getStringParameter(name, default_value, false, false);
}
public void setUnsafeBooleanParameter(String name, boolean value)
{
if (setFakeValueWhenDisabled(key, name, new Boolean(value)))
{
return;
} else
{
notifyParamExists(name);
COConfigurationManager.setParameter(name, value);
return;
}
}
public void setUnsafeByteParameter(String name, byte value[])
{
if (setFakeValueWhenDisabled(key, name, value))
{
return;
} else
{
notifyParamExists(name);
COConfigurationManager.setParameter(name, value);
return;
}
}
public void setUnsafeColorParameter(String name, int value[])
{
setUnsafeColorParameter(name, value, true);
}
public void setUnsafeColorParameter(String name, int value[], boolean override)
{
if (setFakeValueWhenDisabled(key, name, value))
{
return;
} else
{
notifyRGBParamExists(name);
COConfigurationManager.setRGBParameter(name, value, override);
return;
}
}
public void setUnsafeFloatParameter(String name, float value)
{
if (setFakeValueWhenDisabled(key, name, new Float(value)))
{
return;
} else
{
notifyParamExists(name);
COConfigurationManager.setParameter(name, value);
return;
}
}
public void setUnsafeIntParameter(String name, int value)
{
if (setFakeValueWhenDisabled(key, name, new Long(value)))
{
return;
} else
{
notifyParamExists(name);
COConfigurationManager.setParameter(name, value);
return;
}
}
public void setUnsafeLongParameter(String name, long value)
{
if (setFakeValueWhenDisabled(key, name, new Long(value)))
{
return;
} else
{
notifyParamExists(name);
COConfigurationManager.setParameter(name, value);
return;
}
}
public void setUnsafeStringParameter(String name, String value)
{
if (setFakeValueWhenDisabled(key, name, value))
{
return;
} else
{
notifyParamExists(name);
COConfigurationManager.setParameter(name, value);
return;
}
}
public String[] getPluginStringListParameter(String key)
{
notifyParamExists((new StringBuilder()).append(this.key).append(key).toString());
return COConfigurationManager.getStringListParameter((new StringBuilder()).append(this.key).append(key).toString()).toArray();
}
public void setPluginStringListParameter(String key, String value[])
{
notifyParamExists((new StringBuilder()).append(this.key).append(key).toString());
StringListImpl list_obj = new StringListImpl(Arrays.asList(value));
COConfigurationManager.setParameter((new StringBuilder()).append(this.key).append(key).toString(), list_obj);
}
public List getPluginListParameter(String key, List default_value)
{
notifyParamExists((new StringBuilder()).append(this.key).append(key).toString());
return COConfigurationManager.getListParameter((new StringBuilder()).append(this.key).append(key).toString(), default_value);
}
public void setPluginListParameter(String key, List value)
{
notifyParamExists((new StringBuilder()).append(this.key).append(key).toString());
COConfigurationManager.setParameter((new StringBuilder()).append(this.key).append(key).toString(), value);
}
public Map getPluginMapParameter(String key, Map default_value)
{
notifyParamExists((new StringBuilder()).append(this.key).append(key).toString());
return COConfigurationManager.getMapParameter((new StringBuilder()).append(this.key).append(key).toString(), default_value);
}
public void setPluginMapParameter(String key, Map value)
{
notifyParamExists((new StringBuilder()).append(this.key).append(key).toString());
COConfigurationManager.setParameter((new StringBuilder()).append(this.key).append(key).toString(), value);
}
public void setPluginParameter(String key, int value, boolean global)
{
notifyParamExists((new StringBuilder()).append(this.key).append(key).toString());
COConfigurationManager.setParameter((new StringBuilder()).append(this.key).append(key).toString(), value);
if (global)
MagnetURIHandler.getSingleton().addInfo((new StringBuilder()).append(this.key).append(key).toString(), value);
}
public ConfigParameter getParameter(String key)
{
return new ConfigParameterImpl(mapKeyName(key, false));
}
public ConfigParameter getPluginParameter(String key)
{
return new ConfigParameterImpl((new StringBuilder()).append(this.key).append(key).toString());
}
public boolean removePluginParameter(String key)
{
notifyParamExists((new StringBuilder()).append(this.key).append(key).toString());
return COConfigurationManager.removeParameter((new StringBuilder()).append(this.key).append(key).toString());
}
public boolean removePluginColorParameter(String key)
{
notifyParamExists((new StringBuilder()).append(this.key).append(key).toString());
return COConfigurationManager.removeRGBParameter((new StringBuilder()).append(this.key).append(key).toString());
}
public Map getUnsafeParameterList()
{
Set params = COConfigurationManager.getAllowedParameters();
Iterator it = params.iterator();
Map result = new HashMap();
do
{
if (!it.hasNext())
break;
try
{
String name = (String)it.next();
Object val = COConfigurationManager.getParameter(name);
if (!(val instanceof String) && !(val instanceof Long))
if (val instanceof byte[])
val = new String((byte[])(byte[])val, "UTF-8");
else
if (val instanceof Integer)
val = new Long(((Integer)val).intValue());
else
if (val instanceof List)
val = null;
else
if (val instanceof Map)
val = null;
else
if (val instanceof Boolean)
val = new Long(((Boolean)val).booleanValue() ? 1L : 0L);
else
if ((val instanceof Float) || (val instanceof Double))
val = val.toString();
if (val != null)
result.put(name, val);
}
catch (Throwable e)
{
Debug.printStackTrace(e);
}
} while (true);
return result;
}
public void save()
{
COConfigurationManager.save();
}
public File getPluginUserFile(String name)
{
String dir = plugin_interface.getUtilities().getAzureusUserDir();
File file = new File(dir, "plugins");
String p_dir = plugin_interface.getPluginDirectoryName();
if (p_dir.length() != 0)
{
int lp = p_dir.lastIndexOf(File.separatorChar);
if (lp != -1)
p_dir = p_dir.substring(lp + 1);
file = new File(file, p_dir);
} else
{
String id = plugin_interface.getPluginID();
if (id.length() > 0 && !id.equals("<internal>"))
file = new File(file, id);
else
throw new RuntimeException("Plugin was not loaded from a directory");
}
FileUtil.mkdirs(file);
return new File(file, name);
}
public void addListener(final PluginConfigListener l)
{
COConfigurationManager.addListener(new COConfigurationListener() {
final PluginConfigListener val$l;
final PluginConfigImpl this$0;
public void configurationSaved()
{
l.configSaved();
}
{
this$0 = PluginConfigImpl.this;
l = pluginconfiglistener;
super();
}
});
}
private String mapKeyName(String key, boolean for_set)
{
String result = (String)external_to_internal_key_map.get(key);
if (result == null)
{
if (for_set)
throw new RuntimeException((new StringBuilder()).append("No permission to set the value of core parameter: ").append(key).toString());
else
return key;
} else
{
return result;
}
}
public boolean hasParameter(String param_name)
{
return COConfigurationManager.hasParameter(param_name, false);
}
public boolean hasPluginParameter(String param_name)
{
notifyParamExists((new StringBuilder()).append(key).append(param_name).toString());
return COConfigurationManager.hasParameter((new StringBuilder()).append(key).append(param_name).toString(), true);
}
public void notifyRGBParamExists(String param)
{
notifyParamExists((new StringBuilder()).append(param).append(".red").toString());
notifyParamExists((new StringBuilder()).append(param).append(".blue").toString());
notifyParamExists((new StringBuilder()).append(param).append(".green").toString());
notifyParamExists((new StringBuilder()).append(param).append(".override").toString());
}
public void notifyParamExists(String param)
{
if (allow_key_modification && param.startsWith(key))
allow_key_modification = false;
if (external_source != null && param.startsWith(key))
external_source.registerParameter(param);
}
public PluginConfigSource enableExternalConfigSource()
{
PluginConfigSourceImpl source = new PluginConfigSourceImpl(this, plugin_interface.getPluginID());
setPluginConfigSource(source);
return source;
}
public PluginConfigSource getPluginConfigSource()
{
return external_source;
}
public void setPluginConfigSource(PluginConfigSource source)
{
if (external_source != null)
throw new RuntimeException("external config source already associated!");
PluginConfigSourceImpl source_impl = (PluginConfigSourceImpl)source;
String used_key = source_impl.getUsedKeyPrefix();
if (used_key != null && !getPluginConfigKeyPrefix().startsWith(used_key))
{
throw new RuntimeException((new StringBuilder()).append("cannot use this config source object - incompatible prefix keys: ").append(used_key).append(" / ").append(getPluginConfigKeyPrefix()).toString());
} else
{
external_source = (PluginConfigSourceImpl)source;
return;
}
}
static
{
external_to_internal_key_map = new HashMap();
external_to_internal_key_map.put("Max Upload Speed KBs", "Max Upload Speed KBs");
external_to_internal_key_map.put("Max Upload Speed When Only Seeding KBs", "Max Upload Speed Seeding KBs");
external_to_internal_key_map.put("Max Download Speed KBs", "Max Download Speed KBs");
external_to_internal_key_map.put("Max Connections Global", "Max.Peer.Connections.Total");
external_to_internal_key_map.put("Max Connections Per Torrent", "Max.Peer.Connections.Per.Torrent");
external_to_internal_key_map.put("Max Downloads", "max downloads");
external_to_internal_key_map.put("Max Active Torrents", "max active torrents");
external_to_internal_key_map.put("Max Active Torrents When Only Seeding", "StartStopManager_iMaxActiveTorrentsWhenSeeding");
external_to_internal_key_map.put("Max Uploads", "Max Uploads");
external_to_internal_key_map.put("Max Uploads Seeding", "Max Uploads Seeding");
external_to_internal_key_map.put("Max Upload Speed When Only Seeding Enabled", "enable.seedingonly.upload.rate");
external_to_internal_key_map.put("Max Active Torrents When Only Seeding Enabled", "StartStopManager_bMaxActiveTorrentsWhenSeedingEnabled");
external_to_internal_key_map.put("Auto Upload Speed Enabled", "Auto Upload Speed Enabled");
external_to_internal_key_map.put("SOCKS Proxy No Inward Connection", "Proxy.Data.SOCKS.inform");
external_to_internal_key_map.put("Newly Seeding Torrents Get First Priority", "Newly Seeding Torrents Get First Priority");
external_to_internal_key_map.put("CORE_PARAM_STRING_LOCAL_BIND_IP", "Bind IP");
external_to_internal_key_map.put("CORE_PARAM_BOOLEAN_FRIENDLY_HASH_CHECKING", "diskmanager.friendly.hashchecking");
external_to_internal_key_map.put("GUI_PARAM_INT_SWT_REFRESH_IN_MS", "GUI Refresh");
external_to_internal_key_map.put("CORE_PARAM_BOOLEAN_NEW_TORRENTS_START_AS_STOPPED", "Default Start Torrents Stopped");
external_to_internal_key_map.put("Incoming TCP Port", "TCP.Listen.Port");
external_to_internal_key_map.put("Incoming UDP Port", "UDP.Listen.Port");
external_to_internal_key_map.put("Default save path", "Default save path");
String passthrough_params[] = {
"Open MyTorrents", "IconBar.enabled", "Wizard Completed", "welcome.version.lastshown"
};
for (int i = 0; i < passthrough_params.length; i++)
external_to_internal_key_map.put(passthrough_params[i], passthrough_params[i]);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -