mirror of
https://github.com/GTNewHorizons/bdlib.git
synced 2026-11-11 15:57:41 +00:00
Added /dumpregistry command
This commit is contained in:
1 parent
d1d3df184f
commit
ecdcdfb05f
4 files changed
+73
-5
No files matched your search
@@ -10,9 +10,10 @@
|
||||
package net.bdew.lib
|
||||
|
||||
import cpw.mods.fml.common.Mod
|
||||
import cpw.mods.fml.common.event.FMLPreInitializationEvent
|
||||
import cpw.mods.fml.common.event.{FMLServerStartingEvent, FMLPreInitializationEvent}
|
||||
import org.apache.logging.log4j.Logger
|
||||
import cpw.mods.fml.common.Mod.EventHandler
|
||||
import net.minecraft.command.CommandHandler
|
||||
|
||||
@Mod(modid = "bdlib", name = "BD lib", version = "BDLIB_VER", modLanguage = "scala")
|
||||
object BdLib {
|
||||
@@ -29,4 +30,10 @@ object BdLib {
|
||||
log = ev.getModLog
|
||||
log.info("bdlib BDLIB_VER loaded")
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
def serverStarting(event: FMLServerStartingEvent) {
|
||||
val commandHandler = event.getServer.getCommandManager.asInstanceOf[CommandHandler]
|
||||
commandHandler.registerCommand(new CommandDumpRegistry)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,64 @@
|
||||
/*
|
||||
* Copyright (c) bdew, 2013 - 2014
|
||||
* https://github.com/bdew/bdlib
|
||||
*
|
||||
* This mod is distributed under the terms of the Minecraft Mod Public
|
||||
* License 1.0, or MMPL. Please check the contents of the license located in
|
||||
* https://raw.github.com/bdew/bdlib/master/MMPL-1.0.txt
|
||||
*/
|
||||
|
||||
package net.bdew.lib
|
||||
|
||||
import net.minecraft.command.{CommandBase, ICommandSender}
|
||||
import cpw.mods.fml.relauncher.FMLInjectionData
|
||||
import java.io.{FileWriter, BufferedWriter, File}
|
||||
import cpw.mods.fml.common.registry.GameData
|
||||
import com.google.common.collect.Table
|
||||
import net.minecraft.item.ItemStack
|
||||
import net.minecraftforge.oredict.OreDictionary
|
||||
import net.minecraftforge.fluids.FluidRegistry
|
||||
|
||||
class CommandDumpRegistry extends CommandBase {
|
||||
def getCommandName = "dumpregistry"
|
||||
override def getRequiredPermissionLevel = 2
|
||||
def getCommandUsage(icommandsender: ICommandSender) = "dumpregistry"
|
||||
|
||||
def processCommand(sender: ICommandSender, params: Array[String]) {
|
||||
val mcHome = FMLInjectionData.data()(6).asInstanceOf[File] //is there a better way to get this?
|
||||
val dumpFile = new File(mcHome, "registry.dump")
|
||||
val dumpWriter = new BufferedWriter(new FileWriter(dumpFile))
|
||||
import scala.collection.JavaConversions._
|
||||
try {
|
||||
dumpWriter.write("==== BLOCKS ====\n")
|
||||
dumpWriter.write(GameData.getBlockRegistry.map(GameData.getBlockRegistry.getNameForObject).toList.sorted.mkString("\n"))
|
||||
dumpWriter.write("\n\n")
|
||||
|
||||
dumpWriter.write("==== ITEMS ====\n")
|
||||
dumpWriter.write(GameData.getItemRegistry.map(GameData.getItemRegistry.getNameForObject).toList.sorted.mkString("\n"))
|
||||
dumpWriter.write("\n\n")
|
||||
|
||||
dumpWriter.write("==== CUSTOM STACKS ====\n")
|
||||
val stacksField = classOf[GameData].getDeclaredField("customItemStacks")
|
||||
stacksField.setAccessible(true)
|
||||
val stacksData = stacksField.get(null).asInstanceOf[Table[String, String, ItemStack]]
|
||||
dumpWriter.write(stacksData.cellSet().map(x => x.getRowKey + ":" + x.getColumnKey).toList.sorted.mkString("\n"))
|
||||
dumpWriter.write("\n\n")
|
||||
|
||||
dumpWriter.write("==== ORE DICT ====\n")
|
||||
dumpWriter.write(OreDictionary.getOreNames.sorted.mkString("\n"))
|
||||
dumpWriter.write("\n\n")
|
||||
|
||||
dumpWriter.write("==== FLUIDS ====\n")
|
||||
dumpWriter.write(FluidRegistry.getRegisteredFluids.map(_._1).toList.sorted.mkString("\n"))
|
||||
dumpWriter.write("\n\n")
|
||||
|
||||
CommandBase.notifyAdmins(sender, "Registry dumped to " + dumpFile.getCanonicalPath)
|
||||
} catch {
|
||||
case e: Throwable =>
|
||||
CommandBase.notifyAdmins(sender, "Failed to save registry dump: " + e)
|
||||
BdLib.logErrorException("Failed to save registry dump", e)
|
||||
} finally {
|
||||
dumpWriter.close()
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -13,7 +13,6 @@ import scala.collection.mutable
|
||||
import net.bdew.lib.gui.widgets.BaseWidget
|
||||
import net.minecraft.client.gui.FontRenderer
|
||||
import org.lwjgl.opengl.GL11
|
||||
import net.minecraft.util.IIcon
|
||||
|
||||
trait WidgetContainer extends DrawTarget {
|
||||
val rect: Rect
|
||||
|
||||
@@ -9,12 +9,10 @@
|
||||
|
||||
package net.bdew.lib.items
|
||||
|
||||
import net.minecraft.item.{ItemTool, Item}
|
||||
import net.minecraft.item.Item
|
||||
import net.minecraft.client.renderer.texture.IIconRegister
|
||||
import cpw.mods.fml.relauncher.{Side, SideOnly}
|
||||
import net.bdew.lib.Misc
|
||||
import java.util
|
||||
import net.minecraft.block.Block
|
||||
|
||||
trait NamedItem extends Item {
|
||||
def name: String
|
||||
|
||||
Reference in new issue
Block a user