This commit is contained in:
Cisien 2014-02-22 16:20:25 -08:00
parent 5ebb0e4338
commit 1c61f29259

View file

@ -29,103 +29,102 @@ public class InterModComms {
public static void processIMC(IMCEvent event) {
for (IMCMessage m : event.getMessages()) {
if (m.key.equals("add-facade")) {
processAddFacadeIMC(event, m);
} else if (m.key.equals("blacklist-facade")) {
processBlacklistFacadeIMC(event, m);
} else if (m.key.equals("oil-lake-biome")) {
processOilLakeBiomeIMC(event, m);
} else if (m.key.equals("oil-gen-exclude")) {
processOilGenExcludeIMC(event, m);
}
}
}
public static void processAddFacadeIMC(IMCEvent event, IMCMessage m) {
try {
if (m.isStringMessage()) {
Splitter splitter = Splitter.on("@").trimResults();
String[] array = Iterables.toArray(splitter.split(m.getStringValue()), String.class);
if (array.length != 2) {
Logger.getLogger("Buildcraft").log(Level.INFO, String.format("Received an invalid add-facade request %s from mod %s", m.getStringValue(), m.getSender()));
} else {
String blockName = array[0];
Integer metaId = Ints.tryParse(array[1]);
if (Strings.isNullOrEmpty(blockName)|| metaId == null) {
Logger.getLogger("Buildcraft").log(Level.INFO, String.format("Received an invalid add-facade request %s from mod %s", m.getStringValue(), m.getSender()));
} else {
Block block = (Block) Block.blockRegistry.getObject(blockName);
if(block.getRenderType() != 0 && block.getRenderType() != 31) {
ItemFacade.addFacade(new ItemStack(block, 1, metaId));
} else {
logRedundantAddFacadeMessage(m, block.toString());
}
}
}
} else if (m.isItemStackMessage()) {
ItemStack modItemStack = m.getItemStackValue();
Block block = Block.getBlockFromItem(modItemStack.getItem());
if(block != null && block.getRenderType() != 0 && block.getRenderType() != 31) {
ItemFacade.addFacade(modItemStack);
} else {
logRedundantAddFacadeMessage(m, block.toString());
}
}
} catch (Exception ex) {
}
}
public static void processBlacklistFacadeIMC(IMCEvent event, IMCMessage message){
try {
if(message.isItemStackMessage()) {
ItemStack modItemStack = message.getItemStackValue();
Block block = Block.getBlockFromItem(modItemStack.getItem());
if(block != null) {
String blockName = Block.blockRegistry.getNameForObject(block);
ItemFacade.blacklistFacade(blockName);
}
} else {
Logger.getLogger("Buildcraft").log(Level.INFO, String.format("Invalid blacklist-facade message from mod %s. Send an ItemStackMessage instead.", message.getSender()));
}
} catch (Throwable _) {
if (m.key.equals("add-facade")) {
processAddFacadeIMC(event, m);
} else if (m.key.equals("blacklist-facade")) {
processBlacklistFacadeIMC(event, m);
} else if (m.key.equals("oil-lake-biome")) {
processOilLakeBiomeIMC(event, m);
} else if (m.key.equals("oil-gen-exclude")) {
processOilGenExcludeIMC(event, m);
}
}
}
private static void logRedundantAddFacadeMessage(IMCMessage m, String blockName)
{
Logger.getLogger("Buildcraft").log(Level.WARNING, String.format("%s is trying to add %s a facade that Buildcraft will add later. Facade not added.", m.getSender(), blockName));
}
public static void processAddFacadeIMC(IMCEvent event, IMCMessage m) {
try {
if (m.isStringMessage()) {
Splitter splitter = Splitter.on("@").trimResults();
public static void processOilLakeBiomeIMC(IMCEvent event, IMCMessage m) {
try {
String biomeID = m.getStringValue().trim();
int id = Integer.valueOf(biomeID);
if (id >= BiomeGenBase.getBiomeGenArray().length) {
throw new IllegalArgumentException("Biome ID must be less than " + BiomeGenBase.getBiomeGenArray().length);
String[] array = Iterables.toArray(splitter.split(m.getStringValue()), String.class);
if (array.length != 2) {
Logger.getLogger("Buildcraft").log(Level.INFO, String.format("Received an invalid add-facade request %s from mod %s", m.getStringValue(), m.getSender()));
} else {
String blockName = array[0];
Integer metaId = Ints.tryParse(array[1]);
if (Strings.isNullOrEmpty(blockName)|| metaId == null) {
Logger.getLogger("Buildcraft").log(Level.INFO, String.format("Received an invalid add-facade request %s from mod %s", m.getStringValue(), m.getSender()));
} else {
Block block = (Block) Block.blockRegistry.getObject(blockName);
if(block.getRenderType() != 0 && block.getRenderType() != 31) {
ItemFacade.addFacade(new ItemStack(block, 1, metaId));
} else {
logRedundantAddFacadeMessage(m, block.toString());
}
OilPopulate.INSTANCE.surfaceDepositBiomes.add(id);
} catch (Exception ex) {
Logger.getLogger("Buildcraft").log(Level.WARNING, String.format("Received an invalid oil-lake-biome request %s from mod %s", m.getStringValue(), m.getSender()));
}
}
Logger.getLogger("Buildcraft").log(Level.INFO, String.format("Received an successfull oil-lake-biome request %s from mod %s", m.getStringValue(), m.getSender()));
}
} else if (m.isItemStackMessage()) {
ItemStack modItemStack = m.getItemStackValue();
public static void processOilGenExcludeIMC(IMCEvent event, IMCMessage m) {
try {
String biomeID = m.getStringValue().trim();
int id = Integer.valueOf(biomeID);
if (id >= BiomeGenBase.getBiomeGenArray().length) {
throw new IllegalArgumentException("Biome ID must be less than " + BiomeGenBase.getBiomeGenArray().length);
}
OilPopulate.INSTANCE.excludedBiomes.add(id);
} catch (Exception ex) {
Logger.getLogger("Buildcraft").log(Level.WARNING, String.format("Received an invalid oil-gen-exclude request %s from mod %s", m.getStringValue(), m.getSender()));
Block block = Block.getBlockFromItem(modItemStack.getItem());
if(block != null && block.getRenderType() != 0 && block.getRenderType() != 31) {
ItemFacade.addFacade(modItemStack);
} else {
logRedundantAddFacadeMessage(m, block.toString());
}
Logger.getLogger("Buildcraft").log(Level.INFO, String.format("Received an successfull oil-gen-exclude request %s from mod %s", m.getStringValue(), m.getSender()));
}
} catch (Exception ex) {
}
}
public static void processBlacklistFacadeIMC(IMCEvent event, IMCMessage message){
try {
if(message.isItemStackMessage()) {
ItemStack modItemStack = message.getItemStackValue();
Block block = Block.getBlockFromItem(modItemStack.getItem());
if(block != null) {
String blockName = Block.blockRegistry.getNameForObject(block);
ItemFacade.blacklistFacade(blockName);
}
} else {
Logger.getLogger("Buildcraft").log(Level.INFO, String.format("Invalid blacklist-facade message from mod %s. Send an ItemStackMessage instead.", message.getSender()));
}
} catch (Throwable _) {
}
}
private static void logRedundantAddFacadeMessage(IMCMessage m, String blockName)
{
Logger.getLogger("Buildcraft").log(Level.WARNING, String.format("%s is trying to add %s a facade that Buildcraft will add later. Facade not added.", m.getSender(), blockName));
}
public static void processOilLakeBiomeIMC(IMCEvent event, IMCMessage m) {
try {
String biomeID = m.getStringValue().trim();
int id = Integer.valueOf(biomeID);
if (id >= BiomeGenBase.getBiomeGenArray().length) {
throw new IllegalArgumentException("Biome ID must be less than " + BiomeGenBase.getBiomeGenArray().length);
}
OilPopulate.INSTANCE.surfaceDepositBiomes.add(id);
} catch (Exception ex) {
Logger.getLogger("Buildcraft").log(Level.WARNING, String.format("Received an invalid oil-lake-biome request %s from mod %s", m.getStringValue(), m.getSender()));
}
Logger.getLogger("Buildcraft").log(Level.INFO, String.format("Received an successfull oil-lake-biome request %s from mod %s", m.getStringValue(), m.getSender()));
}
public static void processOilGenExcludeIMC(IMCEvent event, IMCMessage m) {
try {
String biomeID = m.getStringValue().trim();
int id = Integer.valueOf(biomeID);
if (id >= BiomeGenBase.getBiomeGenArray().length) {
throw new IllegalArgumentException("Biome ID must be less than " + BiomeGenBase.getBiomeGenArray().length);
}
OilPopulate.INSTANCE.excludedBiomes.add(id);
} catch (Exception ex) {
Logger.getLogger("Buildcraft").log(Level.WARNING, String.format("Received an invalid oil-gen-exclude request %s from mod %s", m.getStringValue(), m.getSender()));
}
Logger.getLogger("Buildcraft").log(Level.INFO, String.format("Received an successfull oil-gen-exclude request %s from mod %s", m.getStringValue(), m.getSender()));
}
}