![JAR search and dependency download from the Maven repository](/logo.png)
net.nitrado.api.services.gameservers.pluginsystem.PluginSystem Maven / Gradle / Ivy
package net.nitrado.api.services.gameservers.pluginsystem;
import com.google.gson.JsonObject;
import net.nitrado.api.Nitrapi;
import net.nitrado.api.services.gameservers.Gameserver;
/**
* The Plugin System is currently only available for Battlefield: Hardline.
*/
public class PluginSystem {
private transient Gameserver service;
private transient Nitrapi api;
/**
* Used internally.
*
* Call Gameserver.getPluginSystem() instead.
*
* @param service gameserver object
* @param api reference to the api
* @see Gameserver#getPluginSystem()
*/
public PluginSystem(Gameserver service, Nitrapi api) {
this.service = service;
this.api = api;
}
/**
* Installs a new plugin system instance.
* @permission ROLE_WEBINTERFACE_SETTINGS_READ
* @permission ROLE_WEBINTERFACE_SETTINGS_WRITE
*/
public void doInstall() {
api.dataPost("services/" + service.getId() + "/gameservers/plugin_system/install", null);
}
/**
* Removes the current plugin system instance.
* @permission ROLE_WEBINTERFACE_SETTINGS_READ
* @permission ROLE_WEBINTERFACE_SETTINGS_WRITE
*/
public void doUninstall() {
api.dataDelete("services/" + service.getId() + "/gameservers/plugin_system/uninstall", null);
}
/**
* Restarts the current plugin system instance.
* @permission ROLE_WEBINTERFACE_SETTINGS_READ
* @permission ROLE_WEBINTERFACE_SETTINGS_WRITE
*/
public void doRestart() {
api.dataPost("services/" + service.getId() + "/gameservers/plugin_system/restart", null);
}
/**
* Stopps the current plugin system instance.
* @permission ROLE_WEBINTERFACE_SETTINGS_READ
* @permission ROLE_WEBINTERFACE_SETTINGS_WRITE
*/
public void doStop() {
api.dataPost("services/" + service.getId() + "/gameservers/plugin_system/stop", null);
}
/**
* Returns information about the installed plugin system.
*
* @return a PluginSystemInfo object with further information
*/
public PluginSystemInfo info() {
JsonObject data = api.dataGet("services/" + service.getId() + "/gameservers/plugin_system/info", null);
return api.fromJson(data, PluginSystemInfo.class);
}
}