Matter registry dumps
This commit is contained in:
parent
865d74ed2e
commit
209d639251
@ -150,6 +150,9 @@ private fun misc(provider: MatteryLanguageProvider) {
|
|||||||
misc("exosuit.granted7", "You are now permanently equipped with four dimensional omni-present Exosuit.")
|
misc("exosuit.granted7", "You are now permanently equipped with four dimensional omni-present Exosuit.")
|
||||||
misc("exosuit.granted8", "As of now, this exosuit is not much, but it's built-in AI hints there are upgrade modules out there somewhere...")
|
misc("exosuit.granted8", "As of now, this exosuit is not much, but it's built-in AI hints there are upgrade modules out there somewhere...")
|
||||||
|
|
||||||
|
misc("dumping_matter_registry", "Dumping matter registry to %s")
|
||||||
|
misc("dumped_matter_registry", "Dumped matter registry to %s")
|
||||||
|
|
||||||
misc("iteration", "Iteration %s")
|
misc("iteration", "Iteration %s")
|
||||||
misc("death_reason", "Decommissioned!")
|
misc("death_reason", "Decommissioned!")
|
||||||
|
|
||||||
|
@ -141,7 +141,7 @@ public final class OverdriveThatMatters {
|
|||||||
private void setup(final FMLCommonSetupEvent event) {
|
private void setup(final FMLCommonSetupEvent event) {
|
||||||
EVENT_BUS.addListener(EventPriority.LOWEST, DrivePool.INSTANCE::onServerPostTick);
|
EVENT_BUS.addListener(EventPriority.LOWEST, DrivePool.INSTANCE::onServerPostTick);
|
||||||
EVENT_BUS.addListener(EventPriority.HIGHEST, DrivePool.INSTANCE::serverStopEvent);
|
EVENT_BUS.addListener(EventPriority.HIGHEST, DrivePool.INSTANCE::serverStopEvent);
|
||||||
EVENT_BUS.addListener(EventPriority.HIGHEST, DrivePool.INSTANCE::serverStartEvent);
|
EVENT_BUS.addListener(EventPriority.LOWEST, DrivePool.INSTANCE::serverStartEvent);
|
||||||
EVENT_BUS.addListener(EventPriority.NORMAL, DrivePool.INSTANCE::onWorldSave);
|
EVENT_BUS.addListener(EventPriority.NORMAL, DrivePool.INSTANCE::onWorldSave);
|
||||||
|
|
||||||
EVENT_BUS.addListener(EventPriority.HIGHEST, GlobalEventHandlerKt::onServerStopped);
|
EVENT_BUS.addListener(EventPriority.HIGHEST, GlobalEventHandlerKt::onServerStopped);
|
||||||
@ -171,6 +171,7 @@ public final class OverdriveThatMatters {
|
|||||||
|
|
||||||
EVENT_BUS.addListener(EventPriority.NORMAL, MatterManager.INSTANCE::reloadEvent);
|
EVENT_BUS.addListener(EventPriority.NORMAL, MatterManager.INSTANCE::reloadEvent);
|
||||||
EVENT_BUS.addListener(EventPriority.NORMAL, MatterManager.INSTANCE::onServerStarted);
|
EVENT_BUS.addListener(EventPriority.NORMAL, MatterManager.INSTANCE::onServerStarted);
|
||||||
|
EVENT_BUS.addListener(EventPriority.NORMAL, MatterManager.INSTANCE::addCommands);
|
||||||
|
|
||||||
EVENT_BUS.addListener(EventPriority.NORMAL, SynchronizedBlockEntity.Companion::onServerStopping);
|
EVENT_BUS.addListener(EventPriority.NORMAL, SynchronizedBlockEntity.Companion::onServerStopping);
|
||||||
EVENT_BUS.addListener(EventPriority.NORMAL, SynchronizedBlockEntity.Companion::onLevelUnload);
|
EVENT_BUS.addListener(EventPriority.NORMAL, SynchronizedBlockEntity.Companion::onLevelUnload);
|
||||||
|
@ -9,11 +9,14 @@ import com.google.gson.JsonObject
|
|||||||
import com.google.gson.JsonParseException
|
import com.google.gson.JsonParseException
|
||||||
import com.google.gson.JsonSyntaxException
|
import com.google.gson.JsonSyntaxException
|
||||||
import com.mojang.blaze3d.platform.InputConstants
|
import com.mojang.blaze3d.platform.InputConstants
|
||||||
|
import com.mojang.brigadier.context.CommandContext
|
||||||
import it.unimi.dsi.fastutil.objects.Reference2ObjectFunction
|
import it.unimi.dsi.fastutil.objects.Reference2ObjectFunction
|
||||||
import it.unimi.dsi.fastutil.objects.Reference2ObjectOpenHashMap
|
import it.unimi.dsi.fastutil.objects.Reference2ObjectOpenHashMap
|
||||||
import it.unimi.dsi.fastutil.objects.ReferenceLinkedOpenHashSet
|
import it.unimi.dsi.fastutil.objects.ReferenceLinkedOpenHashSet
|
||||||
import it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet
|
import it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet
|
||||||
import net.minecraft.ChatFormatting
|
import net.minecraft.ChatFormatting
|
||||||
|
import net.minecraft.commands.CommandSourceStack
|
||||||
|
import net.minecraft.commands.Commands
|
||||||
import net.minecraft.network.chat.Component
|
import net.minecraft.network.chat.Component
|
||||||
import net.minecraft.network.chat.MutableComponent
|
import net.minecraft.network.chat.MutableComponent
|
||||||
import net.minecraft.resources.ResourceLocation
|
import net.minecraft.resources.ResourceLocation
|
||||||
@ -29,6 +32,7 @@ import net.minecraft.world.item.crafting.Recipe
|
|||||||
import net.minecraft.world.item.crafting.RecipeType
|
import net.minecraft.world.item.crafting.RecipeType
|
||||||
import net.minecraft.world.level.ItemLike
|
import net.minecraft.world.level.ItemLike
|
||||||
import net.minecraftforge.event.AddReloadListenerEvent
|
import net.minecraftforge.event.AddReloadListenerEvent
|
||||||
|
import net.minecraftforge.event.RegisterCommandsEvent
|
||||||
import net.minecraftforge.event.entity.player.ItemTooltipEvent
|
import net.minecraftforge.event.entity.player.ItemTooltipEvent
|
||||||
import net.minecraftforge.event.server.ServerStartedEvent
|
import net.minecraftforge.event.server.ServerStartedEvent
|
||||||
import net.minecraftforge.eventbus.api.IEventBus
|
import net.minecraftforge.eventbus.api.IEventBus
|
||||||
@ -36,6 +40,7 @@ import net.minecraftforge.registries.DeferredRegister
|
|||||||
import net.minecraftforge.registries.ForgeRegistries
|
import net.minecraftforge.registries.ForgeRegistries
|
||||||
import org.apache.logging.log4j.LogManager
|
import org.apache.logging.log4j.LogManager
|
||||||
import org.lwjgl.glfw.GLFW
|
import org.lwjgl.glfw.GLFW
|
||||||
|
import ru.dbotthepony.mc.otm.MINECRAFT_SERVER
|
||||||
import ru.dbotthepony.mc.otm.OverdriveThatMatters
|
import ru.dbotthepony.mc.otm.OverdriveThatMatters
|
||||||
import ru.dbotthepony.mc.otm.SystemTime
|
import ru.dbotthepony.mc.otm.SystemTime
|
||||||
import ru.dbotthepony.mc.otm.capability.MatteryCapability
|
import ru.dbotthepony.mc.otm.capability.MatteryCapability
|
||||||
@ -54,7 +59,10 @@ import ru.dbotthepony.mc.otm.core.registryName
|
|||||||
import ru.dbotthepony.mc.otm.core.stream
|
import ru.dbotthepony.mc.otm.core.stream
|
||||||
import ru.dbotthepony.mc.otm.registry.RegistryDelegate
|
import ru.dbotthepony.mc.otm.registry.RegistryDelegate
|
||||||
import ru.dbotthepony.mc.otm.storage.ItemStackWrapper
|
import ru.dbotthepony.mc.otm.storage.ItemStackWrapper
|
||||||
|
import java.io.File
|
||||||
import java.math.BigInteger
|
import java.math.BigInteger
|
||||||
|
import java.time.Instant
|
||||||
|
import java.time.format.DateTimeFormatter
|
||||||
import java.util.*
|
import java.util.*
|
||||||
import java.util.stream.Stream
|
import java.util.stream.Stream
|
||||||
import kotlin.ConcurrentModificationException
|
import kotlin.ConcurrentModificationException
|
||||||
@ -137,6 +145,8 @@ internal class KeyEntry(
|
|||||||
priority: Int,
|
priority: Int,
|
||||||
) : Entry(modificationChain, matter, complexity, priority)
|
) : Entry(modificationChain, matter, complexity, priority)
|
||||||
|
|
||||||
|
private fun transformQuotes(it: String?): String = if (it != null) '"' + it.replace("\"", "\"\"") + '"' else "NULL"
|
||||||
|
|
||||||
object MatterManager {
|
object MatterManager {
|
||||||
const val MATTER_DIRECTORY = "otm_matter"
|
const val MATTER_DIRECTORY = "otm_matter"
|
||||||
const val FINDER_DIRECTORY = "otm_recipe_finder"
|
const val FINDER_DIRECTORY = "otm_recipe_finder"
|
||||||
@ -1061,12 +1071,51 @@ object MatterManager {
|
|||||||
Resolver.registrar.register(bus)
|
Resolver.registrar.register(bus)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun dumpRegistry(stack: CommandContext<CommandSourceStack>): Int {
|
||||||
|
val targetFile = File(MINECRAFT_SERVER.serverDirectory, "otm/registry_dumps/full_${System.currentTimeMillis() / 1_000L}.csv")
|
||||||
|
File(MINECRAFT_SERVER.serverDirectory, "otm/registry_dumps").mkdirs()
|
||||||
|
|
||||||
|
stack.source.sendSuccess(TranslatableComponent("otm.dumping_matter_registry", targetFile.absolutePath), false)
|
||||||
|
|
||||||
|
val writer = targetFile.bufferedWriter(Charsets.UTF_8)
|
||||||
|
|
||||||
|
writer.write(arrayOf("Registry ID", "Matter Value", "Complexity", "Commentary").joinToString(";", transform = ::transformQuotes))
|
||||||
|
writer.write("\n")
|
||||||
|
|
||||||
|
for ((key, item) in ForgeRegistries.ITEMS.entries) {
|
||||||
|
val value = get(item)
|
||||||
|
|
||||||
|
if (!value.hasMatterValue) {
|
||||||
|
writer.write(arrayOf(key.location().toString(), "", "", commentary[item]?.string ?: "").joinToString(";", transform = ::transformQuotes))
|
||||||
|
} else {
|
||||||
|
writer.write(arrayOf(key.location().toString(), value.matter.toString(), value.complexity.toString(), commentary[item]?.string ?: "").joinToString(";", transform = ::transformQuotes))
|
||||||
|
}
|
||||||
|
|
||||||
|
writer.write("\n")
|
||||||
|
}
|
||||||
|
|
||||||
|
writer.close()
|
||||||
|
|
||||||
|
stack.source.sendSuccess(TranslatableComponent("otm.dumped_matter_registry", targetFile.absolutePath), true)
|
||||||
|
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
fun addCommands(event: RegisterCommandsEvent) {
|
||||||
|
event.dispatcher.register(
|
||||||
|
Commands.literal("dump_matter_registry")
|
||||||
|
.requires { it.hasPermission(Commands.LEVEL_OWNERS) }
|
||||||
|
.executes(::dumpRegistry)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
private val matterValues = Reference2ObjectOpenHashMap<Item, IMatterValue>()
|
private val matterValues = Reference2ObjectOpenHashMap<Item, IMatterValue>()
|
||||||
private val validMatterValues = ArrayList<Pair<Item, IMatterValue>>()
|
private val validMatterValues = ArrayList<Pair<Item, IMatterValue>>()
|
||||||
|
|
||||||
val valuesMap: Map<Item, IMatterValue> = Collections.unmodifiableMap(matterValues)
|
val valuesMap: Map<Item, IMatterValue> = Collections.unmodifiableMap(matterValues)
|
||||||
val valuesList: List<Pair<Item, IMatterValue>> = Collections.unmodifiableList(validMatterValues)
|
val valuesList: List<Pair<Item, IMatterValue>> = Collections.unmodifiableList(validMatterValues)
|
||||||
|
|
||||||
|
// TODO: /reload
|
||||||
fun onServerStarted(event: ServerStartedEvent) {
|
fun onServerStarted(event: ServerStartedEvent) {
|
||||||
Resolver.resolve(event.server)
|
Resolver.resolve(event.server)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user