Archived
0

MC Servers: модуль управдения серверами Minecraft

This commit is contained in:
2017-03-12 02:24:55 +03:00
parent 2703d971c1
commit 5aabb6fe1a
3 changed files with 75 additions and 0 deletions

View 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')
}

View File

@@ -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
}
}
}
}
}
}

View File

@@ -3,3 +3,5 @@ include 'core'
include 'commons'
include 'webinterface'
include 'bridge'
include 'mcserver-manager'