Code Monkey home page Code Monkey logo

scannable's Introduction

Scannable

Scannable is a Minecraft mod that adds a single scanner item and a couple of scanner modules. Using the scanner will bring up a couple of overlays highlighting nearby points of interest, such as animals, monsters and ores, depending on the installed modules.

License / Use in Modpacks

This mod is licensed under the MIT license. All assets are public domain, unless otherwise stated; all are free to be distributed as long as the license / source credits are kept. This means you can use this mod in any mod pack as you please. I'd be happy to hear about you using it, though, just out of curiosity.

Extending

In general, please refer to the API, everything you need to know should be explained in the Javadoc of the API classes and interfaces. The scan result provider API allows registering custom scanning logic, you can provide custom scanner modules by providing a scan result provider as a capability of an item.

Gradle

To add a dependency to Scannable for use in your mod, add the following to your build.gradle:

repositories {
    exclusiveContent {
        forRepository { maven("https://cursemaven.com") }
        filter { includeGroup("curse.maven") }
    }
}
dependencies {
    // Forge via ForgeGradle
    implementation(fg.deobf("curse.maven:scannable-266784:4712704"))
    // Fabric via Loom
    modImplementation("curse.maven:scannable-266784:4712705")
}

scannable's People

Contributors

akaleaf avatar curio-sitas avatar fnuecke avatar nekoyue avatar shados avatar vexatos avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

scannable's Issues

Feature Request: Exposed Ore / Line of Sight Setting

A neat feature if at all possible that would be neat to have is when using the ore modules to only be able to ping the blocks that are exposed to the player. This could be used to make it so players can't just use it to find all the ores without having to dig at least a little. Perhaps have a setting for how far in depth the scanner would show from the exposed face of the ores or something?

Just an idea, personally for my own pack I've actually just turned off the ore modules because it seems a little cheaty so having an option to make it a little more fair would be really cool!

Keep up the great work though, love the mod and that great animation every time I use the scanner!

Debug output causing connection timeouts and long world load times

Description

I know this is a dupe, but the OP of the other issue (#42) made a mess and I'd imagine this would be a bit better.
This Scannable update caused a massive amount of lag on first join of a world. This seems to be related to a massive IO time on the network thread caused by this mod due to the amount of logging.

It appears as though the following is the cause:

if (loggedWarningFor.add(state)) {
// Log twice to get both stack traces. Don't log first trace if second lookup succeeds.
Scannable.getLog().debug("Failed determining dropped block for " + state.toString() + " via getPickBlock, trying to resolve via meta.", t);
Scannable.getLog().debug("Failed determining dropped block for " + state.toString() + " via meta.", t2);
}

Suggested Solutions

Could this debug output maybe be a config option? This caused a massive time increase (15s+ for SevTech) to the world join times. Many players were experiencing connection timeouts.

In addition, it appears as though you store all states with Set<IBlockState> I assume to not log duplicates.

  1. This appears to never be cleared
  2. I assume it may be lighter on RAM if the ID of the blockstate was stored rather than the entire object

Workaround

For the time being, downgrading to 1.12-1.6.2.13 fixes the issue.

Versions

Minecraft: 1.12.2
Forge: 14.23.3.2655
Scannable: 1.12-1.6.3.17

Some warning using the mod on a Mac

[23:29:35] [Client thread/ERROR] [scannable]: Failed loading shader.
java.lang.Exception: ERROR: 0:1: '' : version '130' is not supported

this was reported first on our tracker where there is more information.
KAfable/FTB-Interactions#282

This may be a nonissue, not really sure so we're passing it on to you to decide
if we can gather any additional information for you let us know, thanks

Don't render a durability bar if "energyCapacityScanner" is set to 0

I disabled the RF consumption for Scannable in my pack. The max energy capacity of the scanner is set to 0, along with the energy cost of using every module. The scanner can't use or store RF.

There's an annoying black bar under the scanner. It's not needed, and I have a feeling it will annoy people.

Certain ores are not configurable

In 1.12, certain ores can not be configured. For example, the NuclearCraft ores thorium (oreThorium) and boron (oreBoron) always appear as common ores in the default color. Even when changing the color of these ores and marking them as rare ores, they still appear as common in the default color.

Astral Sorcery ores do not appear at all, although they have an ore dictionary entry.

From my research, the issue with the NuclearCraft ores seems to be that they all use the same id, but different metadata.

Config Custom Ore

Custom Ores cant be added to the Ore filters

Geolosys adds Ores, that cant be added to the oreDict, a config option, that allows to add non oredict Ores to your filters would alleviate that problem.

Game freezes (and doesn't unfreeze) occasionally when using the scanner

Modpack: Enigmatica 2 Expert
Mod Version: 1.6.3.22

Game freezes and doesn't unfreeze (where I need to open task manager and kill Minecraft) occasionally when using the scanner.

The installed module doesn't seem to matter, and I can't reproduce it easily (other than "use the scanner repeatedly").
Admittedly this isn't a very helpful bug report, but I just want to document that a bug exists.

Edit: I didn't get a log.

[1.4.0.2] Crash With Latest Forge

Forge: 2387
Version: 1.4.0.2

Cause: Starting up game causing the crash.

Crashlog: https://pastebin.com/bWLsHWdL

edit: redid this report to make more sense and something to work from. I'm sure you're aware that you need to update your mod to the latest version of forge, now that there is a recommended version of forge available, you should be able to go ahead and do that.

Screen freezed when using the scanner

Iā€™m using the newest version of Scannable(1.6.3.19), and yes, I'm using an Optifine shader here.
The screen will freeze when I use a scanner with its loading at 100%. After this, the game still runs with sounds, and I still perform actions in blind. FastRendering is off,
The screenshot(grabbed by pressing F2, proved that the game was still running)ļ¼š
2018-08-21_19 41 35

[Suggestion] Identifying non-vanilla dungeons

Can I recommend a module to identify structures and dungeons that aren't vanilla. Most modpacks have other types of dungeons nowadays. I know its harder than it sounds, but ways to code it might be:

-Code the mod to highlight the general area anytime there is a higher than normal concentration of mob spawners within a close proximity to each other (i.e. 20-25 block radius). This usually indicates a dungeon of some sort.

-Code the mod to look for "rooms"... flat areas with a 90 degree angle on each corner. This doesn't happen often, if ever, in normal world gen, unless its a structure of some sort.

[1.6.3.20]Functionality of scanning common or rare ores becomes invalid

Whether the ores is vanilla or custom, the scanner won't show the location for them now.

Prepared to scan
2018-08-22_11 30 23

Right after the scan
2018-08-22_11 30 34

Actual location of the ores(left:oreGold; up:oreCoal; bottom:oreRuby(from Pixelmon Reforged 6.3.4); right: pixelmon:fire_stone_ore(from Pixelmon Reforged 6.3.4))
2018-08-22_11 31 45

This is the scannable configuration file which I added the support to Pixelmon Reforged 6.3.4.
scannable.cfg.txt

Scanner just showing bars on screen

This might be related to #41 but for some reason suddenly whenever I tried to scan it would progress through the bar, and then it would cover my screen with the blue lines like when it's scanning but it took up the whole screen. The scanning then finishes and the bars go away.
2018-08-24_10 01 07

Sometimes it gives me the same OpenGL error as issue 41 (1286), sometimes it doesn't. I was trying to figure out what mod was causing it to behave like this but when making a new instance and dropping mods I added/updated recently it still works okay. It was working when I first installed it, but seems to not want to work.

Log in case you need it: uhh. Sorry about this but my log was really long and so I didn't want to attach that one, (I had kept trying it), but now the game keeps crashing when I try to go into a world. So uh... I'll try to get a log later. I'm sick of just loading up the game only to watch it crash and stop responding.

Mod list: modlister.com/beanaboston

[1.10.2-1.0.0.3] Scan effect does not play

When I use the scanner the scan effect does not play. The game freezes up until the effect would end, then displays ores like it normally would.

A video of the issue -
https://u.nya.is/uihmaa.mp4

If I can provide any other information that would help with this, ask. I realize that this alone probably doesn't help. :/

Request :: Module storage within scanner

I really really like this mod. it's not to Overpowered, and also not to underpower. however, I do have 1 small request that would help greatly.

Could you add a "storage" to the scanner, to store all the different modules that you make? Kind of like how you have the current "Active" mods on the scanner, just a field below it that starts with 1 space, and it expands everytime you add 1 mod to it that is used for storage of Mods for the scanner only. would help alot of keeping the different mods sorted out. would want to make sure it only allowed storage of mods, similar to the Tconstruct pattern storage system.

also, would be nice if you could put a stack of blank Module into the scanner, and as you find new Ore ..you do a specific key or action, etc and it would use up one of the blank modules and make it into a specific ore module. this could work well with a storage of modules I stated above, and maybe even have it first check to see if you allready have one of those exact resource modules created allready.. and if you do, it would not use the resources to crap it, as you allready have it.

just a few thoughts is all ;)

[1.11.2 - 1.2.2.12] Scanning for grass blocks gives poor results

Setting the block scanner to scan for a grass block seem to only detect a couple nearby that are mostly surrounded by water while I am standing in a field of grass blocks. Tried different grass blocks thinking it was detecting blocks connecting to it but same results.
grass

EDIT: Further testing has inconsistent results on some more mundane stuff. Stone either lights up everything or nothing at all for example. Sand shows an area instead of just the sand blocks and it included water.
sand

Integration

There's been some requests for allowing to integrate the scanner in some other mods' modular gimmicks. Among those:

  • EnderIO dark steel armor From what I can see, no API. So meh.
  • Blood Magic living armor
  • Modular Power Suits Might be added to MPS itself (source).
  • Cyberware Available via WIRED.

Will have to look into their APIs.

Scanner Module: Structures

Look into how the /locate command works, use that to allow detecting nearby worldgen structures.

Update: all right, looks this this is server only functionality, so for this sending a request and fetching it from the server will become necessary. Will have to test how expensive those lookup are...

OpenGL Error

When I use the Scanner for the first time it freezes my game for about 10s and throws this error.

2018-04-16_17 21 10

Minecraft: 1.12
Forge: 2669
Mods: list.txt

Scanner Module: Block

Module that can be configured to find a specific block by using it on that block in the world. Will have to see about performance, either generify the ore scanning result provider for that, to avoid having to fetch all those blocks multiple times, or pull up some common logic (e.g. range for this should probably be a tad higher than for regular broad ore scans, as it only scans for one block type, so it doesn't replace that).

Not sure what to do about TE NBT... and state stuff like rotations, which should be ignored. Might just go ahead and say "screw you" to the fourth wall and add a config UI for that.

Alternatively, configure by giving the module a one-slot inventory into which a block can be put, scan for that block.

Results would get the same grouping treatment that ores do to avoid obliterating rendering performance.

[1.10.2] Add support for Thermal Foundation ores

Could you add support for Thermal Foundation ores for the ore scanning modules please? I think that Copper/Tin/Aluminium are common ores and Silver/Lead/Nickel/Platinum/Iridium/Mana Infused Ore (mithril ore) are rare ores. Maybe you can support them using ore dictionnary?

Edit: I know that I can add them by myself but I think that native support can be interesting.

[1.11.2] Conflict with newest version of Rustic (0.3)

Confirmed on test pack with just Rustic and Scannable. World loads, but no chunks are loaded. More details on the issue I opened on Rustic: cadaverous-eris/Rustic#10

Scannable 1.3.1.19
Rustic 0.3

Log: https://gist.github.com/jesmores/ae0246c6bb2c4ebf5e191c90308a3bc6

This is probably the more interesting part of the log:

java.lang.IllegalArgumentException: Cannot set property PropertyEnum{name=axis, clazz=class net.minecraft.util.EnumFacing$Axis, values=[x, z]} to y on block rustic:grape_leaves, it is not an allowed value
	at net.minecraft.block.state.BlockStateContainer$StateImplementation.func_177226_a(BlockStateContainer.java:227) ~[atm$a.class:?]
	at rustic.common.blocks.crops.BlockGrapeLeaves.func_180651_a(BlockGrapeLeaves.java:99) ~[BlockGrapeLeaves.class:?]
	at li.cil.scannable.client.scanning.ScanResultProviderBlock.buildOreCache(ScanResultProviderBlock.java:434) ~[ScanResultProviderBlock.class:?]
	at li.cil.scannable.client.scanning.ScanResultProviderBlock.rebuildOreCache(ScanResultProviderBlock.java:88) ~[ScanResultProviderBlock.class:?]
	at li.cil.scannable.common.config.Settings.setServerSettings(Settings.java:232) ~[Settings.class:?]
	at li.cil.scannable.client.network.handler.MessageHandlerConfig.onMessage(MessageHandlerConfig.java:15) ~[MessageHandlerConfig.class:?]
	at li.cil.scannable.client.network.handler.MessageHandlerConfig.onMessage(MessageHandlerConfig.java:11) ~[MessageHandlerConfig.class:?]

Scanner nevers scans when using the Structures Scanner Module

Minecraft 1.12.2
Scannable-MC1.12-1.6.3.17

When using the Structures module, when pressing right mouse button and keeping it down, the scanner charges and then nothing happens, it stays at 100% charge until the right mouse button is released.

2018-04-02_21 02 43

2018-04-02_21 03 07

Other modules work. Nothing shows in the log.

Scanner Module: Entity

Similar to the block module you could find a specific entity (hostile or not) by clicking on it as well (handy for finding wither skeletons, ghasts, witches, specific villagers in a village, etc.).

[1.12] Creative tab leak

Vanilla/Forge changes are causing items to show up in tabs they're not supposed to, and causing the scanner to show up in the creative trash slot. Here is a thread on reddit about how to fix it.

[Request] The ability to define new block scanner modules with an array of blocks

In my pack, stones like marble and slate spawn in rare but large spheres. I'd like to create a scanner that detects those stone types.

Here's what I'd like to be able to do:

  1. Create a new scanner item, either using ContentTweaker or a config
  2. Supply a texture if a config is used
  3. Define a list of blocks that the scanner would detect

oreNickel not recognized

For some unknown reasons, oreNickel is not recognized as a regular ore by the Scanner.
Any ideas ?

I have nickel ore from thermal expansion and immersive engineering too.

Thanks for your help.

Minecraft version : 1.12.2
Scannable version : 1.6.2.13

Note : this works fine with oreCertusQuartz and oreChargedCertusQuartz from Applied Energistics 2

Internet/Network module?

I think it would be pretty neat if there was a module for the Scanner that would allow you to transmit data, similar to the internet and network cards for OpenComputers robots. Is this reasonably possible, or too big an addition for a small mod?

[issue] maybe, this error is showing up like a million times in the debug.log

I'm getting like a wall of these error on the debug.log of my client.

minecraft 1.12.2
forge 14.23.3.2655
scannable 1.6.3.17
quark 1.4-123

[21:32:05] [Netty Client IO #1/DEBUG] [scannable]: Failed determining dropped block for quark:colored_flowerpot_black[contents=orange_tulip,legacy_data=6] via meta. java.lang.Exception: Block/Item implementation does not allow round-trip via Block.damageDropped/Item.getMetadata/Block.getStateFromMeta: Block{quark:colored_flowerpot_black}, vazkii.arl.item.ItemModBlock@7ae9bca5 at li.cil.scannable.util.BlockUtils.getItemStackFromState(BlockUtils.java:37) [BlockUtils.class:?] at li.cil.scannable.client.scanning.ScanResultProviderBlock.buildOreCache(ScanResultProviderBlock.java:424) [ScanResultProviderBlock.class:?] at li.cil.scannable.client.scanning.ScanResultProviderBlock.rebuildOreCache(ScanResultProviderBlock.java:91) [ScanResultProviderBlock.class:?] at li.cil.scannable.common.config.Settings.setServerSettings(Settings.java:248) [Settings.class:?] at li.cil.scannable.client.network.handler.MessageHandlerConfig.onMessage(MessageHandlerConfig.java:15) [MessageHandlerConfig.class:?] at li.cil.scannable.client.network.handler.MessageHandlerConfig.onMessage(MessageHandlerConfig.java:11) [MessageHandlerConfig.class:?] at net.minecraftforge.fml.common.network.simpleimpl.SimpleChannelHandlerWrapper.channelRead0(SimpleChannelHandlerWrapper.java:56) [SimpleChannelHandlerWrapper.class:?] at net.minecraftforge.fml.common.network.simpleimpl.SimpleChannelHandlerWrapper.channelRead0(SimpleChannelHandlerWrapper.java:36) [SimpleChannelHandlerWrapper.class:?] at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105) [SimpleChannelInboundHandler.class:4.1.9.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) [AbstractChannelHandlerContext.class:4.1.9.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) [AbstractChannelHandlerContext.class:4.1.9.Final] at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) [AbstractChannelHandlerContext.class:4.1.9.Final] at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:108) [SimpleChannelInboundHandler.class:4.1.9.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) [AbstractChannelHandlerContext.class:4.1.9.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) [AbstractChannelHandlerContext.class:4.1.9.Final] at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) [AbstractChannelHandlerContext.class:4.1.9.Final] at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102) [MessageToMessageDecoder.class:4.1.9.Final] at io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111) [MessageToMessageCodec.class:4.1.9.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) [AbstractChannelHandlerContext.class:4.1.9.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) [AbstractChannelHandlerContext.class:4.1.9.Final] at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) [AbstractChannelHandlerContext.class:4.1.9.Final] at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1334) [DefaultChannelPipeline$HeadContext.class:4.1.9.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) [AbstractChannelHandlerContext.class:4.1.9.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) [AbstractChannelHandlerContext.class:4.1.9.Final] at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:926) [DefaultChannelPipeline.class:4.1.9.Final] at io.netty.channel.embedded.EmbeddedChannel.writeInbound(EmbeddedChannel.java:274) [EmbeddedChannel.class:4.1.9.Final] at net.minecraftforge.fml.common.network.internal.FMLProxyPacket.func_148833_a(FMLProxyPacket.java:99) [FMLProxyPacket.class:?] at net.minecraft.network.NetworkManager.channelRead0(NetworkManager.java:147) [gw.class:?] at net.minecraft.network.NetworkManager.channelRead0(NetworkManager.java:49) [gw.class:?] at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105) [SimpleChannelInboundHandler.class:4.1.9.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) [AbstractChannelHandlerContext.class:4.1.9.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) [AbstractChannelHandlerContext.class:4.1.9.Final] at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) [AbstractChannelHandlerContext.class:4.1.9.Final] at net.minecraftforge.fml.common.network.handshake.NetworkDispatcher.handleClientSideCustomPacket(NetworkDispatcher.java:383) [NetworkDispatcher.class:?] at net.minecraftforge.fml.common.network.handshake.NetworkDispatcher.channelRead0(NetworkDispatcher.java:269) [NetworkDispatcher.class:?] at net.minecraftforge.fml.common.network.handshake.NetworkDispatcher.channelRead0(NetworkDispatcher.java:72) [NetworkDispatcher.class:?] at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105) [SimpleChannelInboundHandler.class:4.1.9.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) [AbstractChannelHandlerContext.class:4.1.9.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) [AbstractChannelHandlerContext.class:4.1.9.Final] at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) [AbstractChannelHandlerContext.class:4.1.9.Final] at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:293) [ByteToMessageDecoder.class:4.1.9.Final] at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:267) [ByteToMessageDecoder.class:4.1.9.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) [AbstractChannelHandlerContext.class:4.1.9.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) [AbstractChannelHandlerContext.class:4.1.9.Final] at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) [AbstractChannelHandlerContext.class:4.1.9.Final] at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:293) [ByteToMessageDecoder.class:4.1.9.Final] at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:267) [ByteToMessageDecoder.class:4.1.9.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) [AbstractChannelHandlerContext.class:4.1.9.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) [AbstractChannelHandlerContext.class:4.1.9.Final] at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) [AbstractChannelHandlerContext.class:4.1.9.Final] at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:293) [ByteToMessageDecoder.class:4.1.9.Final] at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:280) [ByteToMessageDecoder.class:4.1.9.Final] at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:396) [ByteToMessageDecoder.class:4.1.9.Final] at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:248) [ByteToMessageDecoder.class:4.1.9.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) [AbstractChannelHandlerContext.class:4.1.9.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) [AbstractChannelHandlerContext.class:4.1.9.Final] at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) [AbstractChannelHandlerContext.class:4.1.9.Final] at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102) [MessageToMessageDecoder.class:4.1.9.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) [AbstractChannelHandlerContext.class:4.1.9.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) [AbstractChannelHandlerContext.class:4.1.9.Final] at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) [AbstractChannelHandlerContext.class:4.1.9.Final] at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:287) [IdleStateHandler.class:4.1.9.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) [AbstractChannelHandlerContext.class:4.1.9.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) [AbstractChannelHandlerContext.class:4.1.9.Final] at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) [AbstractChannelHandlerContext.class:4.1.9.Final] at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1334) [DefaultChannelPipeline$HeadContext.class:4.1.9.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) [AbstractChannelHandlerContext.class:4.1.9.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) [AbstractChannelHandlerContext.class:4.1.9.Final] at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:926) [DefaultChannelPipeline.class:4.1.9.Final] at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:134) [AbstractNioByteChannel$NioByteUnsafe.class:4.1.9.Final] at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:624) [NioEventLoop.class:4.1.9.Final] at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:559) [NioEventLoop.class:4.1.9.Final] at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:476) [NioEventLoop.class:4.1.9.Final] at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:438) [NioEventLoop.class:4.1.9.Final] at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858) [SingleThreadEventExecutor$5.class:4.1.9.Final] at java.lang.Thread.run(Unknown Source) [?:1.8.0_171]

LinkageError (Crash)

Heyo!

A developer of SevTech here. While testing a new beta build of the pack, this crash occurred https://pastebin.com/dSB54Awm Would it be possible for you to take a gander at this one?

Versions:

  • Mod: 1.6.3.22
  • Forge: 14.23.5.2772

Thanks!

Internal Exception

I'm having an 'Internal Exception: java.nio.channels.ClosedChannelExcetion' and Scannable appears to be involved. I have a world crash when I first start a minecraft session whether creating a new world or entering an existing world. Only happens once then I can get into the world. This is single player. When I disable Scannable-MC1.12-1.6.3.17 or use the previous version the world crash does not occur. The log I have to look at is attached.
Minecraft log.txt

Allow the ORE scanner to differentiate between block metadata

the following is a picture to illustrate the issue
image
on the left is Geolosys Coal
follow by vanilla coal
to the right is Beryl (emerald)
and behind is vanilla emerald.

Geolosys coal and geolosys beryl both share. Geolosys:ore_vanilla, separated by block state
image
image
Which can be expressed as meta 0 and 1

However. Geolosys Coal is ore dict as oreCoal and Beryl is ore dict as oreEmerald
image
image

The issue here is that the ore scanner only seems to care about the block sans state or meta
and as seen in the first picture Beryl shows up as coal according to the scanner.
This is true of any geolosys:ore_vanilla regardless of ore dictionary. (in this example)

Which leads me to believe that when scanning, the scan only confirms that a block is geolosys:ore_vanilla and finds the first ore dict for it, it can.

FEATURE REQUEST : Color Filtering and Toggleability

really like this mod, but would love to see the following 2 features added to this.

FEATURE REQUEST:

  1. ability to "filter" colors. Meaning, if there are multiple Ores with the same / similar colors, having a filter ability to only display specific colors would be nice. On moded worlds with alot of resources, This mod scanning makes the entire area look like a candy swirl within the Rocks. Filtering would allow ability to target specific colors, but not exactly specific resources depending on the colors.

  2. Ability to toggle the scanning on/off .. but with the continues resource cost (a high cost) if you continue to use it. having this as an option within the item so that client users would be able to select either 1 time scan or toggle continues scanning.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    šŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. šŸ“ŠšŸ“ˆšŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ā¤ļø Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.