MC Servers: модуль управдения серверами Minecraft
This commit is contained in:
16
mcserver-manager/build.gradle
Normal file
16
mcserver-manager/build.gradle
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
group = 'asys'
|
||||||
|
version = '0.1-SNAPSHOT'
|
||||||
|
|
||||||
|
apply plugin: 'osgi'
|
||||||
|
|
||||||
|
jar {
|
||||||
|
manifest {
|
||||||
|
name = 'ASys MC server manager'
|
||||||
|
instruction 'Bundle-Activator', 'asys.mcsmanager.Activator'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
compile project(':core')
|
||||||
|
compile project(':webinterface')
|
||||||
|
}
|
||||||
@@ -0,0 +1,57 @@
|
|||||||
|
/*
|
||||||
|
* DmitriyMX <dimon550@gmail.com>
|
||||||
|
* 2017-03-11
|
||||||
|
*/
|
||||||
|
package asys.mcsmanager;
|
||||||
|
|
||||||
|
import asys.webinterface.api.MainMenu;
|
||||||
|
import org.osgi.framework.BundleActivator;
|
||||||
|
import org.osgi.framework.BundleContext;
|
||||||
|
import org.osgi.framework.ServiceEvent;
|
||||||
|
import org.osgi.framework.ServiceListener;
|
||||||
|
import org.osgi.util.tracker.ServiceTracker;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
public class Activator implements BundleActivator, ServiceListener {
|
||||||
|
private final Logger logger = LoggerFactory.getLogger(Activator.class);
|
||||||
|
private ServiceTracker<?, MainMenu> serviceTracker;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void start(BundleContext context) throws Exception {
|
||||||
|
logger.debug("Register service listener");
|
||||||
|
context.addServiceListener(this);
|
||||||
|
|
||||||
|
logger.debug("Get service: {}", MainMenu.class);
|
||||||
|
serviceTracker = new ServiceTracker<>(context, MainMenu.class, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void stop(BundleContext context) throws Exception {
|
||||||
|
serviceTracker.close();
|
||||||
|
context.removeServiceListener(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void serviceChanged(ServiceEvent event) {
|
||||||
|
if (event.getType() == ServiceEvent.REGISTERED) {
|
||||||
|
String[] objectClass = (String[]) event.getServiceReference().getProperty("objectClass");
|
||||||
|
for (String classStr : objectClass) {
|
||||||
|
if (classStr.equals("asys.webinterface.api.MainMenu")) {
|
||||||
|
try {
|
||||||
|
serviceTracker.open();
|
||||||
|
MainMenu mainMenu = serviceTracker.waitForService(5000);
|
||||||
|
if (mainMenu != null) {
|
||||||
|
mainMenu.addItem("Серверы", "/modules/mcsmanager");
|
||||||
|
return;
|
||||||
|
} else {
|
||||||
|
logger.debug("service not found =(");
|
||||||
|
}
|
||||||
|
} catch (InterruptedException ignore) {
|
||||||
|
// ignore
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -3,3 +3,5 @@ include 'core'
|
|||||||
include 'commons'
|
include 'commons'
|
||||||
include 'webinterface'
|
include 'webinterface'
|
||||||
include 'bridge'
|
include 'bridge'
|
||||||
|
include 'mcserver-manager'
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user