aboutsummaryrefslogtreecommitdiff
path: root/src/Java/cofh/mod/ChildModContainer.java
blob: 994fde93a8df908ccc2234a5dc02cde99f814621 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
package cofh.mod;

import java.util.List;
import java.util.Map;

import com.google.common.eventbus.EventBus;

import cpw.mods.fml.common.*;
import cpw.mods.fml.common.discovery.ModCandidate;
import cpw.mods.fml.common.versioning.ArtifactVersion;

public class ChildModContainer extends FMLModContainer {

	private final String parent;

	@SuppressWarnings("unchecked")
	public ChildModContainer(String className, ModCandidate container, Map<String, Object> modDescriptor) {

		super(className, container, (Map<String, Object>)((List<Object>)modDescriptor.get("mod")).get(0));

		parent = (String) modDescriptor.get("parent");
	}

    @Override
    public boolean registerBus(EventBus bus, LoadController controller) {

    	Map<String, ModContainer> list = Loader.instance().getIndexedModList();
    	l: {
    		if (!list.containsKey(parent)) {
    			break l;
    		}
    		for (ArtifactVersion info : this.getMetadata().dependencies) {
    			if (!list.containsKey(info.getLabel()) && !ModAPIManager.INSTANCE.hasAPI(info.getLabel())) {
    				break l;
    			}
    		}
	    	return super.registerBus(bus, controller);
    	}

    	return false;
    }

}