Fix Ritual Registry crashing with more than one registered..
This commit is contained in:
parent
ed515f5c80
commit
68fae8c321
3 changed files with 15 additions and 10 deletions
|
@ -5,13 +5,14 @@ import WayofTime.bloodmagic.api.BloodMagicAPI;
|
||||||
import WayofTime.bloodmagic.api.ritual.imperfect.ImperfectRitual;
|
import WayofTime.bloodmagic.api.ritual.imperfect.ImperfectRitual;
|
||||||
import com.google.common.collect.BiMap;
|
import com.google.common.collect.BiMap;
|
||||||
import com.google.common.collect.HashBiMap;
|
import com.google.common.collect.HashBiMap;
|
||||||
import net.minecraft.block.Block;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
public class ImperfectRitualRegistry {
|
public class ImperfectRitualRegistry {
|
||||||
|
|
||||||
public static final BiMap<ImperfectRitual, Boolean> enabledRituals = HashBiMap.create();
|
public static final Map<ImperfectRitual, Boolean> enabledRituals = new HashMap<ImperfectRitual, Boolean>();
|
||||||
private static final BiMap<String, ImperfectRitual> registry = HashBiMap.create();
|
private static final BiMap<String, ImperfectRitual> registry = HashBiMap.create();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -29,6 +30,10 @@ public class ImperfectRitualRegistry {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void registerRitual(ImperfectRitual imperfectRitual) {
|
||||||
|
registerRitual(imperfectRitual, imperfectRitual.getName());
|
||||||
|
}
|
||||||
|
|
||||||
public static ImperfectRitual getRitualForBlock(BlockStack blockStack) {
|
public static ImperfectRitual getRitualForBlock(BlockStack blockStack) {
|
||||||
for (ImperfectRitual imperfectRitual : getRegistry().values())
|
for (ImperfectRitual imperfectRitual : getRegistry().values())
|
||||||
if (imperfectRitual.getRequiredBlock().equals(blockStack))
|
if (imperfectRitual.getRequiredBlock().equals(blockStack))
|
||||||
|
|
|
@ -2,14 +2,15 @@ package WayofTime.bloodmagic.api.registry;
|
||||||
|
|
||||||
import WayofTime.bloodmagic.api.BloodMagicAPI;
|
import WayofTime.bloodmagic.api.BloodMagicAPI;
|
||||||
import WayofTime.bloodmagic.api.ritual.Ritual;
|
import WayofTime.bloodmagic.api.ritual.Ritual;
|
||||||
import WayofTime.bloodmagic.api.ritual.imperfect.ImperfectRitual;
|
|
||||||
import com.google.common.collect.BiMap;
|
import com.google.common.collect.BiMap;
|
||||||
import com.google.common.collect.HashBiMap;
|
import com.google.common.collect.HashBiMap;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
public class RitualRegistry {
|
public class RitualRegistry {
|
||||||
|
|
||||||
public static final BiMap<Ritual, Boolean> enabledRituals = HashBiMap.create();
|
public static final Map<Ritual, Boolean> enabledRituals = new HashMap<Ritual, Boolean>();
|
||||||
private static final BiMap<String, Ritual> registry = HashBiMap.create();
|
private static final BiMap<String, Ritual> registry = HashBiMap.create();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -56,8 +57,8 @@ public class RitualRegistry {
|
||||||
return HashBiMap.create(registry);
|
return HashBiMap.create(registry);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static BiMap<Ritual, Boolean> getEnabledMap() {
|
public static Map<Ritual, Boolean> getEnabledMap() {
|
||||||
return HashBiMap.create(enabledRituals);
|
return new HashMap<Ritual, Boolean>(enabledRituals);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static ArrayList<String> getIds() {
|
public static ArrayList<String> getIds() {
|
||||||
|
|
|
@ -4,12 +4,12 @@ import WayofTime.bloodmagic.api.registry.ImperfectRitualRegistry;
|
||||||
import WayofTime.bloodmagic.api.registry.RitualRegistry;
|
import WayofTime.bloodmagic.api.registry.RitualRegistry;
|
||||||
import WayofTime.bloodmagic.api.ritual.Ritual;
|
import WayofTime.bloodmagic.api.ritual.Ritual;
|
||||||
import WayofTime.bloodmagic.api.ritual.imperfect.ImperfectRitual;
|
import WayofTime.bloodmagic.api.ritual.imperfect.ImperfectRitual;
|
||||||
import com.google.common.collect.BiMap;
|
|
||||||
import net.minecraftforge.common.config.Configuration;
|
import net.minecraftforge.common.config.Configuration;
|
||||||
import sun.misc.Launcher;
|
import sun.misc.Launcher;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
public class RitualHelper {
|
public class RitualHelper {
|
||||||
|
|
||||||
|
@ -55,7 +55,7 @@ public class RitualHelper {
|
||||||
* @param category - The config category to write to.
|
* @param category - The config category to write to.
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
private static void checkRituals(Configuration config, String packageName, String category, Class ritualClass, BiMap enabledMap) {
|
private static void checkRituals(Configuration config, String packageName, String category, Class ritualClass, Map enabledMap) {
|
||||||
String name = packageName;
|
String name = packageName;
|
||||||
if (!name.startsWith("/"))
|
if (!name.startsWith("/"))
|
||||||
name = "/" + name;
|
name = "/" + name;
|
||||||
|
@ -75,8 +75,7 @@ public class RitualHelper {
|
||||||
Object o = Class.forName(packageName + "." + className).newInstance();
|
Object o = Class.forName(packageName + "." + className).newInstance();
|
||||||
|
|
||||||
if (ritualClass.isInstance(o))
|
if (ritualClass.isInstance(o))
|
||||||
enabledMap.put(ritualClass.cast(o),
|
enabledMap.put(ritualClass.cast(o), config.get(category, className, true).getBoolean());
|
||||||
config.get(category, className, true).getBoolean());
|
|
||||||
|
|
||||||
} catch (ClassNotFoundException e) {
|
} catch (ClassNotFoundException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue