This is a read-only snapshot of the ComputerCraft forums, taken in April 2020.
GopherAtl's profile picture

[MC 1.7.10] Gopher's Peripherals V2.2.pr1 - Biolock, Keypad, & Redstone Peripherals

Started by GopherAtl, 02 December 2012 - 09:52 AM
GopherAtl #1
Posted 02 December 2012 - 10:52 AM
Prerelease of 2.2 for CC 1.73/MC 1.7.10!
Lyqyd and I have been busy the last week, and there's a prerelease of v2.2 for mc 1.7.10 finally ready. All known bugs have been fixed, but there may be more lurking around yet to be uncovered; if anyone tests it and finds any issues, please report them here, either in the thread or on the github repo

download link: BioLock v2.2.pr1 for Minecraft 1.7.10
I've only tested it with cc 1.73, if there have been api changes lately, it may not work with older, but if yer not using 1.73, you should be, all earlier 1.7.10-compatible versions have crucial issues.

unofficial 1.6.4 port
Thanks to gamax for updating it to 1.6.4 while I was … on sabatical, lets call it.
I plan to update it again as soon as the next version of CC is out of beta and released properly.

I would like to note that I have not gotten Gopher's permission to fix and port his peripherals but I hope that by doing this, it helps keep this mod alive and well.

Changes:
Typo in the crafting recipes fixed, PRB's are craftable.
Removed usage of RecipeResetProgrammable, Everything no longer crafts into a PRB.

Downloads:
MC 1.5.2
MC 1.6.2
MC 1.6.4 (Also works on 1.6.2)

**New video** courtesy of Aucarndia, who use the new keypad blocks plus immibis' mods to make a very snazzy elevator!

I'm not able to record/upload videos right now; if anyone makes a video demonstrating the new PRBs and/or Keypad Locks, I'll embed it in the posts here and on minecraftforum.net!

Major new addition: Keypad Locks!

Peripheral Blocks
Biometric scanner
Place one by a computer, and you start getting "biolock" events containing a unique identifier for the player who scanned them. By itself, that's a pretty handy way to make secure door locks, but now there's more!
You can also teach it to associate names and access levels for up to 16 of these bio prints, and then you can program them to output redstone signals on any of it's 6 sides according to simple logic based on those stored access levels.

Keypad Block
These 12-key keypads are rendered with physical buttons; every button press sends an event to any attached computers, but you can also program them similarly to biolocks, add codes with access levels and program sides to output custom signals that respond to those codes. And, like biolocks, if programmed, they no longer need the computer connection, they will happily output redstone in response to stored codes without any computer involvement!

Programmable Redstone Blocks (PRBs)
Programmed via connected computer or turtle like the BioLock peripheral, these blocks can act as extenders for redstone control, giving per-side, analog redstone input and output just like a computer's, allowing one computer control redstone devices over a wide area from a single program. Like biolocks, once programmed, they can also be detached from the computer, broken, and placed elsewhere, and they will continue to carry out programmed logical operations, acting like any common logic gate, doing comparisons on analog inputs, and more.

Video Demo
This video is from aucarndia, apparently aka gamspony, who made this elevator using the new keypad blocks, as well as immibis' microblocks, with some help from immibis' adventure peripheral
[media]http://www.youtube.com/watch?v=ta8NQ0x0gHc[/media]

The new old video, explaining and demoing the then new 1.0 features!
[media]http://youtu.be/ap4ZubjzwfQ[/media]
(original demo of v0.9a)
[media]http://youtu.be/5OGadQZIWxc[/media]


Screenshots







BioLocks
SpoilerI can hear some of you asking "Why a pseudorandom string? Why not just give me their name?" Well, relax. If you edit the config file, you can change the default behavior so it returns the username of the person who clicked instead of a random identifier, saving you the bother of writing code to store the fistprint identifiers and associate them with usernames.

Usage
Peripheral Methods
SpoilerAll methods return either a requested value or true on success, and false plus an error string on failure.

Like any peripheral, wrap it first to get a table of methods

local sSide="bottom" --or whatever side it's on
local biolock=peripheral.wrap(sSide)
The methods you can call on this object:
learn(name,bioprint,level)
associate a name and access level with the device. Limit 16 (unless you edit the mod's config file), try to learn a 17th and it will return false and an error message. Takes 3 parameters: first the name to associate, second the bioprint to associate the name with (you'll have to catch these from os.pullEvent("biolock")), and an access level. Access level must be in the range 1-5.

biolock.learn("MyName",myPrint,5)

forget(name)
Just pass a stored name previously learned to make it forget it.

biolock.forget("MyName")

getLearnedNames()
No parameters, returns all the names it has learned. Returns each name as a separate value, so catch in {} to make a lua table…

local names={biolock.getLearnedNames()]

getPrint(name)
gets the bioprint associated with a given name

local bioprint=biolock.getPrint("MyName")

getAccessLevel(name)
gets the bioprint associated with a given name

local level=biolock.getAccessLevel("MyName")

program(side,level,ticks,[reverseOutput=false,[reverseLevel=false]])
Programs the redstone output logic for the specified side. Level is the minimum level to activate, ticks how long to stay activated. reverseLevel and reverseOutput are optional, defaulting to false. If reverseOutput is true, the block will output except when activated, instead of only when activated. If reverseLevel is true, instead of activating when someone equal to or higher than the set level is scanned, it activates when someone lower is scanned.

program("back",5,20) --outputs redstone from the back for 20 ticks when scanned by someone with access level 5.
program("left",3,10,true) --outputs redstone from the left constantly, but stopping for 10 ticks when scanned by someone level 3 or higher
program("front",1,20,true,true) -- outputs from the front for 20 ticks after scanned
--by somone who is NOT level 1 or above, i.e., anyone not learn()ed

forgetProgram(side)
removes a program from the specified side.

Events
"biolock", print, attachName, learnedName, accessLevel
Generated when someone right-clicks the biolock and is scanned.
print is the unique hash code that represents the player on this world (or, if the config setting bioLock_GivesUsernames" is true, the true name of the player). attachName is the attachment name of the biolock, the side or lan name used to wrap the peripheral. learnedName is the name the biolock has learned to associate with this print, or "" if it has not been learned, and accessLevel is the level stored with this print, or 0 if none.


New Shell Program
A new convenience utility program is now added to rom/programs when the peripheral is attached called biolock.
Usage:
Spoilerbiolock
Side is the side the peripheral to be affected is on; command can be learn, forget, or list. List takes no additional args and displays a formatted list of the bioprints it's learned and the names and access levels associated with them. Forget takes just a name and makes the BioLock forget the stored print associated with it. Learn takes a name and an access level, prompts for someone to scan (right-click the peripheral), and then associates the scanned bioprint with the provided name and access level.


Crafting

NOTE this has changed! will get new screenshot later, for now, know the new recipe is
stone-stone-stone
stone-prb-stone
stone-glass pane-stone

Keypad Locks
SpoilerFull documentation coming later, I need to stop to eat, and walk, and relax, first

For now, what you need to know: from the peripheral side, these work very similarly to biolocks.
Methods:
program & forgetProgram
works exactly like program on the biolock, except that instead of being activated by bioprints, they're activated when stored codes are entered.

learnCode(name,code,accessLevel) & forgetCode(name)
very similar to learnPrint, name is a name associated with this pin code, which will be returned in keypad_code events; code is a string representing the code itself - can be 1 to 8 characters long, any of 0-9, *, and #, the 12 symbols on the keypad buttons. accessLevel is 1-5, like the BioScanner, which affect how the programs (from program method) are activated in response to the code.

Events:
"keypad_button", attachName, button
sent every time a button is pressed.
attachName is the name of the device, same you would use for peripheral.wrap(), either the side of the computer it's on or the name of the networked peripheral.

"keypad_code", attachName, codeName, accessLevel
sent when a learned code is fully entered.
attachName is same as always, codeName is the name used to identify the code when it was learned with learnCode, and accessLevel is the accessLevel associated with the code.

crafting
[image coming later]

button-button-button
button-prb-button
button-button-button

button is a normal stone button, prb is a programmable redstone block from this mod.

Note this recipe is temporary, and will be changing in upcoming versions - along with another tweak to the biolock recipe.


PRBs
SpoilerUsage
Peripheral Methods
setOutput(side,value1)
setOutput(side,value1,operation,value2)
used to set the output of a given side.
If given only two argument, sets the output on the specified side to that value. true or false become 0 or 15, while integer values on the range 0-15 are set directly.

	prb.setOutput("left",true)
	prb.setOutput("top",11)
	

value1 can also be a string representing a side, i.e., "top", "left", etc., and that side's input value will be echoed to side.

	prb.setOutput("left","top") -- value coming in top will be sent back out the left.
	

If the 3rd and 4th arguments are specified, they can be used to do logical operations on 2 or more values.
value2 can have any of the same types as value1 - it can be true/false, a number, or the name of a side. Most commonly, you will want to use the name of a 2nd side, to do logical or comparison operations on two side inputs to produce a third side's output.
operator will be a string selecting an operation to perform. The following operations are available:
Boolean operators
These compare their input values as booleans, either true (not zero) or false (0).
"and" true if value1 and value2 are both true.
"or" true if either value1 or value2 is on, or if both are true.
"xor" true if exactly one of value1 and value2 are true, otherwise false
"nand" opposite of and, false if value1 and value2 are both true, otherwise true
"nor" opposite of "or", true only if both inputs are false
"nxor"/"same" opposite of xor, true if value1 and value2 are both true or both false, otherwise false

Comparison operators
These compare analog values numerically, but then output either true (15) or false (0)
"==" true if they are exactly equal values
"!=" true if they are inequal
">" true if value1 is greater than value2
">=" true if value1 is greater than or equal to value2
"<" true if value1 is less than value2
"<=" true if value1 is less than or equal to value2

Other operators
"max" outputs whichever of the two inputs is largest; if value1 is 7 and value2 is 10, will output 10. Similar to one setting on a redstone comparator.
"min" outputs whichever of the two inputs is smallest.
"if" outputs value1, but only if value 2 is true. Acts like a gate.
"unless" outputs value1, but only if value2 is false. Acts like an inverted gate.

	prb.setOutput("front","left","and","right") -- outputs on front only if both left and right are true
	prb.setOutput("top","left","min",5) -- outputs to top whichever is smaller, the input on the left side or the constant value 5
	

getInput(side)
returns the redstone input level of the specified side, as an integer from 0(off) to 15 (on, max strength)

	prb.getInput("left")
	

getOutput(side)
returns the value currently being output by the PRB on the specified side

	prb.getOutput("left")
	


Crafting


Events
"prb_input", attachName, side, value
generated whenever the redstone input on a side of the PRB changes. attachName is the name used to wrap the peripheral, side is the side of the PRB that changed, and value is the new redstone input level.

Common Methods
SpoilerThese methods are common to the BioLock, Keypad Lock, and PRB peripherals, and will be shared by most future blocks added to this mod as well.

Peripheral Methods
SpoilerThese methods are common to BioLock and PRB, and will be shared by all the future blocks I currently plan to add to this mod.

lock(password)
lock the peripheral interface, preventing use of any of it's peripheral methods by any computers until it is unlocked with the same password. While locked, only the unlock method can be called.

unlock(password)
unlocks.

Resetting
If you lock a peripheral and forget the password, you can reset it's program by placing it in a crafting grid by itself and pulling it out of the output side. This will unlock it, but will also reset the password and remove all stored programs!

Download
v2.1.3!
for mc 1.5.2/ComputerCraft 1.53
for mc 1.6.2/ComputerCraft 1.55/1.56

Old Versions
Spoilerv2.1.2
for mc 1.5.2/ComputerCraft 1.53
for mc 1.6.2/ComputerCraft 1.55/1.56

v2.0
BioLock biometric scanner &amp; PRB v2.0 for Minecraft 1.5.2/CC 1.53

v1.1.1
BioLock biometric scanner v1.1.1 for Minecraft 1.5.2/CC 1.53

v1.1
BioLock biometric scanner v1.1 for Minecraft 1.5.2/CC 1.53

v1.0.9b
BioLock biometric scanner v1.0.9 for Minecraft 1.5.2/CC 1.53

v1.0.8b
BioLock biometric scanner v1.0.8b for Minecraft 1.4.6/CC 1.48 (forge 471+)
BioLock biometric scanner v1.0.8b for Minecraft 1.4.4-1.4.5/CC 1.47 (forge 397+)
BioLock biometric scanner v1.0.8b for Minecraft 1.4.2/CC 1.46 (forge 349)
BioLock biometric scanner v1.0.8b for Minecraft 1.3.2/CC 1.45 (forge 318)

v1.0.7b
BioLock biometric scanner v1.0.7b for Minecraft 1.4.6/CC 1.48 (forge 471+)
BioLock biometric scanner v1.0.7b for Minecraft 1.4.4-1.4.5/CC 1.47 (forge 397+)
BioLock biometric scanner v1.0.7b for Minecraft 1.4.2/CC 1.46 (forge 349)
BioLock biometric scanner v1.0.7b for Minecraft 1.3.2/CC 1.45 (forge 318)


v1.0.6b
BioLock biometric scanner v1.0.6b for Minecraft 1.4.4-1.4.5/CC 1.47 (forge 397+)
BioLock biometric scanner v1.0.6b for Minecraft 1.4.2/CC 1.46 (forge 349)
BioLock biometric scanner v1.0.6b for Minecraft 1.3.2/CC 1.45 (forge 318)


v0.91a (crashes in SMP, included for completeness)
FistPrintScaner v0.9a for Minecraft 1.4.4-1.4.5/CC 1.47 (forge 397+)
FistPrintScaner v0.9a for Minecraft 1.4.2/CC 1.46 (forge 349)
FistPrintScaner v0.9a for Minecraft 1.3.2/CC 1.45 (forge 318)

v0.9a
FistPrintScanner v0.9a for Minecraft 1.4.4-1.4.5/CC 1.47 (needs forge 397+)
FistPrintScanner v0.9a for Minecraft 1.4.2/CC 1.46 (uses forge 349)
FistPrintScanner v0.9a for Minecraft 1.3.2/CC 1.43 (forge 318)

Version History
Spoiler0.9a - first release
0.91a
new features:
-fistprint event has 2nd parameter, the side of the computer the peripheral is on.
-block is slightly emissive, not enough to light an area but enough to see it in the dark
bug fixes:
-mcmod.info syntax error fixed, data tweaked, url added
-material and damage values corrected, now behaves like other computer blocks
-overrode normal drop behavior, now always drops even by hand
-block appears in "ComputerCraft" tab in creative mode instead of under "Blocks"
1.0.6b
new features:
-learn, forget, getLearnedNames, getPrint, getAccessLevel, program, and forgetProgram peripheral methods
-biolock shell program
-programming redstone output signals from biolock
-persistent storage of programmed settings when broken/replaced
-tooltip shows the unique id of the peripheral
bugs fixed:
-no longer crashes in smp
-…other things I'm sure I'm forgetting atm
1.0.7b
ported to 1.4.6, minor tweaks to path generation and eliminated some meaningless error messages.
1.0.8b
fixed a bug with directly controlling doors, unavoidably rolled back the 1.0.7 minor fixes in the process, will merge the two change sets in the not-too-distant future…
v2.0
Lots of changes in v2.0, the biggest being the addition of the new PRBs! In addition, there are some new features added to biolocks and the new PRBs, including the ability to password-lock the peripheral interface, preventing computers or turtles from wrapping and reprogramming them without knowing the password. There's also a stubbed feature, which will be used in the future, allowing configurable access levels based on computer ID, which will be used in the future to allow restricting access to some methods to specific computers or turtles when locked.
v2.1
-added Keypad Locks, which work similarly to BioLocks but have a physical keypad for entering codes.
-fixed bug in 1.5.2 version that prevented the biolock program from mounting properly
-changed recipe for biolocks to incorporate a PRB instead of redstone dust
-changed behavior so you can only click to be scanned from the front of the block
-ported to mc 1.6.2
-biolock scan events get properly sent out to all clients now, so you can see the scan animation when other people click the scanner.
v2.1.1
removed cruff, logging noise, and fixed version number issue
v2.1.2
fixed major bug with the 1.5.2 version which was crashing clients in smp. Bug did not affect 1.6.2 versions, or ssp in either version.

Got more features planned for this down the road, as well as other, more interesting and useful ideas for peripherals, which will be coming soon.

Any errors, bugs, block ID conflicts, etc, please report them here.

License
You're free to include this mod in any modpacks, public or private; I only ask you not modify the modinfo file and, if linking to a download that includes this mod on a forum, include a link to this thread as well. People will need the documentation to use more than the most basic features, anyway! I'd also ask that you let me know, in the thread or via PM. No need to wait for permission or anything, it's just nice to know when people are using my mod. Helps with the motivation to keep it maintained and such.

Enjoy!
Edited on 11 April 2015 - 10:17 PM
Forecaster #2
Posted 02 December 2012 - 10:57 AM
That is pretty awesome! Never seen a fistprint reader before! : P
GopherAtl #3
Posted 02 December 2012 - 11:11 AM
lol. Well, mc people don't have fingers, or palms, so fistprints it is. As to how it extracts 192 unique bits of information from the 8x8 pixels on an mc character's fist, I have no explaination.
KillaVanilla #4
Posted 02 December 2012 - 03:07 PM
This is brilliant and really, really, cool.

Nice work. You've earned my download, and a dedicated project.

Also, out of curiosity, is the string the same across servers?
If it is, then we could create a database of known griefers and general bad characters across servers.

*cough* minecraft FBI *cough*
Bubba #5
Posted 02 December 2012 - 03:21 PM
This is brilliant and really, really, cool.

Nice work. You've earned my download, and a dedicated project.

Also, out of curiosity, is the string the same across servers?
If it is, then we could create a database of known griefers and general bad characters across servers.

*cough* minecraft FBI *cough*

From what I've seen looking through the code, it generates a random user string every single time you create a new world. This probably wouldn't be that hard to change though.

Great job on the mod though man, it looks great :)/>
KillaVanilla #6
Posted 02 December 2012 - 03:37 PM
This is brilliant and really, really, cool.

Nice work. You've earned my download, and a dedicated project.

Also, out of curiosity, is the string the same across servers?
If it is, then we could create a database of known griefers and general bad characters across servers.

*cough* minecraft FBI *cough*

From what I've seen looking through the code, it generates a random user string every single time you create a new world. This probably wouldn't be that hard to change though.

Great job on the mod though man, it looks great :)/>

Aww, so no minecraft FBI for us then. :(/>
Oh well. It's still great.
GopherAtl #7
Posted 02 December 2012 - 05:10 PM
Thanks for the praise!

re: the idea of consistent prints across servers, I considered using a hash function, so it never had to save any data and a given username would be the same value on any server, but decided on this route intstead because this way it is absolutely guaranteed there will be no hash collisions - every fingerprint is ensured to be unique.

If I can find a good, non-trivially-reversable hash function that is sufficiently unlikely to have collisions on basic strings within the length range of minecraft usernames, I might implement it as a config option in a future version.
Orwell #8
Posted 02 December 2012 - 09:18 PM
lol. Well, mc people don't have fingers, or palms, so fistprints it is. As to how it extracts 192 unique bits of information from the 8x8 pixels on an mc character's fist, I have no explaination.
Maybe 8x8x256 colors? :P/>
kaj #9
Posted 03 December 2012 - 08:31 AM
Liking this very much gopher.
Really simple to use, works fine.

Two (maybe three) requests, if you're doing requests-
-Can you possibly make the pullEvent (optionally) return the side of the computer the peripheral is attached to as a string - (for use as a large controller, this also seems to work well with cccables)
- Please make the block itself a bit harder to break, (maybe even have it trigger a different event on damage) - at the moment a player could 1-hit the block barehanded and access the computer.

Nice one either way - shall be using this.
GopherAtl #10
Posted 03 December 2012 - 09:13 AM
thanks! Re: requests..

1 - side parameter, good thought, so one comp can handle scanners on both sides of the door. Will add that in next version.
2 - oooops. It's still asploding on slightest contact, isn't it? I meant to fix the hardness but completely forgot, mostly been testing in creative so didn't notice. Will also do in the next version.

I also realised I forgot to move it off the "blocks" tab in creative mode, should be under redstone or, if possible, the computercraft tab. Or heck, I may go ahead and make my own tab, only the one block for now but I plan more.

I said this in the first post, but to reiterate, if anyone experienced with modding 1.2.5 is interested in porting this to that, contact me. I'd like to have a version that works with the last bukkit-compatible version of computercraft, but I don't feel like learning to mod 1.2.5 at this point if I don't have to.
GopherAtl #11
Posted 03 December 2012 - 03:32 PM
now supports every version from 1.3.2 on. The 1.3.2 and 1.4.2 versions are using the last version of minecraftforge for that version, with jenkins locked now I've got no way of knowing which were the last recommended versions but if anyone runs into an issue and needs one for an earlier forge version, let me know.

Just put up version 0.91a, which resolved a few minor bugs and added a couple of minor features (see first post for full details).
kaj #12
Posted 07 December 2012 - 02:05 PM
-fistprint event has 2nd parameter, the side of the computer the peripheral is on.

woot!
nice one.

a crash with the new version:
happens server side, on running server, is fine in SP:
(with both forge ver .425 and .407)
http://pastebin.com/SQxCtZWh

enjoying it otherwise.
GopherAtl #13
Posted 07 December 2012 - 02:14 PM
Ack. I already ran into and fixed that a couple of days ago, but I forgot that the change that caused it was already in v.91, or I would've released a fix before now! Sorry about that, rather embarassing…

I just finished the bulk of the java code for the major v1.0b update, should have the new version posted later tonight, with that fix and several new features.
GopherAtl #14
Posted 08 December 2012 - 11:01 AM
Bump for major v1.0.6b update. They're now programmable, and once programmed can continue to function without the computer attached.
Bubba #15
Posted 08 December 2012 - 11:37 AM
Sweet update man. I really like the programming feature. I can see this whole thing being really useful on servers.

Oh and the block animation is pretty sweet too :)/>

+1
GopherAtl #16
Posted 14 December 2012 - 10:40 PM
trivial update, v1.0.7b is exactly like v1.0.6b, except with 99% less server log spamming. Sorry about that.
ETHANATOR360 #17
Posted 17 December 2012 - 01:09 PM
this looks pretty cool
mrgreaper #18
Posted 23 December 2012 - 04:00 PM
awsome addon, been using it a lot but its not working with computercraft 1.48
http://paste.ubuntu.com/1458624/
immibis #19
Posted 23 December 2012 - 06:35 PM
awsome addon, been using it a lot but its not working with computercraft 1.48
http://paste.ubuntu.com/1458624/
Do you have the Minecraft 1.4.6 version of this?
GopherAtl #20
Posted 24 December 2012 - 01:55 AM
Been out of town and rather busy, sorry, didn't even know a new version had been released. Will do some testing and try to get an updated version if necessary asap.

[edit] had some issues this morning, mcp not cooperating, but found a bit more time and got it updated to 1.4.6/1.48.
Khalamov #21
Posted 24 December 2012 - 10:19 AM
Caught this line in my logs when I first used a biolock under MC1.4.6:

2012-12-23 15:18:11 [INFO] [STDOUT] Couldn't create directory "C:\Documents and Settings\Harlkyn\Application Data\MultiMC\instances\Ultimate 1.4.6\minecraft/saves/New World-/BioLocks"

Looks like it's trying to create a folder using \ and / both and Windows doesn't take kindly to folks that use / in their file paths :)/>
GopherAtl #22
Posted 24 December 2012 - 05:44 PM
odd, what version of windows? I've developed and tested it entirely under windows 7 and never had this problem.
kaj #23
Posted 24 December 2012 - 11:55 PM
2012-12-24 10:34:08 [INFO] [STDOUT] Couldn't create directory "C:\Documents and Settings\me\Desktop\MUltiMC\instances\ffs146a\minecraft/saves/New Worldf/BioLocks"

I get this too ^
winxp, sp3

funny thing is.. I look @ said location and there is a /Biolocks folder there :P/>
Khalamov #24
Posted 25 December 2012 - 05:38 AM
odd, what version of windows? I've developed and tested it entirely under windows 7 and never had this problem.

I'm also using WinXP sp3
GopherAtl #25
Posted 25 December 2012 - 08:46 AM
:facepalm: I just realised, I do get that error message in my logs, but it's largely meaningless; it prints if the call to mkdirs() fails, which it does if the directory already exists. It doesn't interrupt code flow, though, so it shouldn't be a critical error. I'll fix the logic to check for the directory already existing in the next version, so the error is not printed uselessly.

Is the BioLock actually not working, or did you see the error message and assume it wouldn't? If it's crashing, or not working, I'd expect there to be another error logged after that.

:edit: no time to apply the changes across all versions and package an update, but I've added checks for if the directory already exists, so it should print the error now only if it doesn't, or if a file exists with that name. I also went through and cleaned up the hard-coded "/" characters used in building paths, using File.separator and File.separatorChar instead; Windows is, in my experience, very tolerant of "/" instead of "\" in paths through it's high-level file routines, but it seems like a cleaner way to go, regardless.
Khalamov #26
Posted 26 December 2012 - 09:30 AM
Is the BioLock actually not working, or did you see the error message and assume it wouldn't? If it's crashing, or not working, I'd expect there to be another error logged after that.

I pretty much report anything unusual I see in a log to the mod author, just in case I'm the only one seeing that error due to mod interactions.
GopherAtl #27
Posted 27 December 2012 - 03:25 AM
Well, I'm glad you reported it either way! Just making sure the mod was working for you otherwise :)/>
jewelshisen #28
Posted 16 January 2013 - 06:11 PM
I have hit an error with the biolock powering a door. I programed it to only provide power for ten ticks but the door never shuts. It is like the signal never gets turned off.
GopherAtl #29
Posted 16 January 2013 - 06:40 PM
hrm. I'm not sure why this would be happening. Could you share the code you used to program it, and whichi minecraft version you're running under?
jewelshisen #30
Posted 16 January 2013 - 06:42 PM
hrm. I'm not sure why this would be happening. Could you share the code you used to program it, and whichi minecraft version you're running under?

running MC 1.4.6 and CC 1.481

here is the Lua code I used to program the biolock

bio=peripheral.wrap("right")
bio.program("right", 3, 10)
GopherAtl #31
Posted 16 January 2013 - 06:52 PM
seeing if I can reproduce it, give me a moment…
jewelshisen #32
Posted 16 January 2013 - 06:59 PM
seeing if I can reproduce it, give me a moment…

Just tested on a clean world with just this mod and CC and the glitch still happens so it is not mod interference.
GopherAtl #33
Posted 16 January 2013 - 07:00 PM
hrm. Using just redstone dust it seems to be working for me. Can you do a screenshot of your build, or just describe the arrangement?

:edit: Doh! tried experimenting with things other than dust and confirmed, wooden doors, iron doors, and trapdoors all stay open. Will look into why this is happening…
jewelshisen #34
Posted 16 January 2013 - 07:03 PM
hrm. Using just redstone dust it seems to be working for me. Can you do a screenshot of your build, or just describe the arrangement?

I have the biolock right next to the top half of the iron door. I'm using it as a lock out for security room.
GopherAtl #35
Posted 16 January 2013 - 07:14 PM
yeah, I managed to repro the issue, thanks for reporting it. Only happens with doors and trapdoors, not with pistons or redstone dust. Very strange. Will upload a fix as soon as I find one!
jewelshisen #36
Posted 16 January 2013 - 07:19 PM
yeah, I managed to repro the issue, thanks for reporting it. Only happens with doors and trapdoors, not with pistons or redstone dust. Very strange. Will upload a fix as soon as I find one!

Thanks! I had just checked to see if it was some kind of wacky interference between your mod and the twenty some odd other mods i have going but even just running CC and Biolock the problem still happens. Love the mod though! Super awesome idea behind it!
GopherAtl #37
Posted 16 January 2013 - 10:03 PM
Fixed! version 1.0.8b is now available in the first post. Due to stupidity (not copying code to bring back to atlanta, was out of town when I did 1.0.7) I had to re-port the whole mod to minecraft 1.4.6/7, otherwise I would've been done significantly sooner!
immibis #38
Posted 17 January 2013 - 02:21 AM
Fixed! version 1.0.8b is now available in the first post. Due to stupidity (not copying code to bring back to atlanta, was out of town when I did 1.0.7) I had to re-port the whole mod to minecraft 1.4.6/7, otherwise I would've been done significantly sooner!

At least you didn't spend a few days - counting only time spent working on the project - porting something to 1.4.6 only to discover you'd accidentally re-ported it to 1.4.5.
jewelshisen #39
Posted 17 January 2013 - 05:02 AM
Fixed! version 1.0.8b is now available in the first post. Due to stupidity (not copying code to bring back to atlanta, was out of town when I did 1.0.7) I had to re-port the whole mod to minecraft 1.4.6/7, otherwise I would've been done significantly sooner!

Yay! BTW do you need a bug tester?
jewelshisen #40
Posted 17 January 2013 - 05:38 AM
Found something. The Biolock doesn't keep prints and programs after you leave the world. Every time I load my world I have to have it relearn my print and reprogram it's behavior. Is there any way to make the programs and prints persistent?
GopherAtl #41
Posted 17 January 2013 - 10:23 AM
Found something. The Biolock doesn't keep prints and programs after you leave the world. Every time I load my world I have to have it relearn my print and reprogram it's behavior. Is there any way to make the programs and prints persistent?

? they should be saving, I tested that before I posted the update. To double-check, I just reloaded my test world from last night, the programs reloaded properly for me. What OS? and could you try to check the error log?

If you go into the world save directory, it should've created a directory called "BioLocks" which should have a lua directory and some nbt files, fistPrints.nbt and a series of numbered files starting with biolock0.nbt. If those aren't there, there should be some errors in the log indicating why.


immibis: haha! Oh, and thanks again for the assist last night, god knows how long it would've taken me to spot the difference between doors and pistons/redstone dust (which is where I would've started looking) and figure out what I'd missed!
jewelshisen #42
Posted 17 January 2013 - 11:15 AM
Found something. The Biolock doesn't keep prints and programs after you leave the world. Every time I load my world I have to have it relearn my print and reprogram it's behavior. Is there any way to make the programs and prints persistent?

? they should be saving, I tested that before I posted the update. To double-check, I just reloaded my test world from last night, the programs reloaded properly for me. What OS? and could you try to check the error log?

If you go into the world save directory, it should've created a directory called "BioLocks" which should have a lua directory and some nbt files, fistPrints.nbt and a series of numbered files starting with biolock0.nbt. If those aren't there, there should be some errors in the log indicating why.


immibis: haha! Oh, and thanks again for the assist last night, god knows how long it would've taken me to spot the difference between doors and pistons/redstone dust (which is where I would've started looking) and figure out what I'd missed!

Well I am running windows 7 and my biolock folder has everything. Not sure where the log file is.
GopherAtl #43
Posted 17 January 2013 - 11:21 AM
hmm. Try picking up the biolock, then hover over it in inventory and see what id# it has, make sure there's a matching biolock#.nbt file? For some reason when I actually dropped in the updated mod it seemed to reset my blocks, but reprogramming them saved fine. I was hoping that was the result of my repeated back-and-forth testing with highly defective versions, but it's possible it's not.

And biolock's stuff winds up in ForgeModLoader-client-0.log (0 is most recent, 1 is the previous session, etc), in single-player. with a separate server it'll be ForgeModLoader-server-0.log instead.
jewelshisen #44
Posted 17 January 2013 - 11:25 AM
When I try and pick it up it doesn't have an id# and I found the long but have no clue what you are looking for in it.
GopherAtl #45
Posted 17 January 2013 - 11:28 AM
have you tried reprogramming it since updating, or did you just lose the program from before the update? An unprogrammed biolock should drop with no id, one with a program should keep the id (and programs).

If reprogramming it after the update doesn't resolve the problem, just upload the log somewhere I can see it (is there a size limit on pastebin?). There probably won't be anything obvious like a stack trace, just some warning/error messages which may or may not be prefixed with either [BioLock] or [BioBlock] (latter being a typo I keep making for some reason)
jewelshisen #46
Posted 17 January 2013 - 11:32 AM
Alright. I'll try programing it again and then if it still won't hold the program I'll post the log

Here is the log: http://pastebin.com/RKyMN4CA
GopherAtl #47
Posted 17 January 2013 - 03:21 PM
hrm. Not sure when you edited that in but I didn't notice until now. Read the log, it's not logging any errors, but I notice it always winds up setting the id to 0, which is the id shared by all new, un-programmed biolocks. The minute you set a redstone program or learn a bioprint, it should be assigned an id starting with 1. I'm going to have to poke around a bit to even figure out what could be going wrong, as I haven't managed to reproduce this myself. Interactions with other mods don't seem like to cause this sort of thing though.
jewelshisen #48
Posted 17 January 2013 - 04:06 PM
hrm. Not sure when you edited that in but I didn't notice until now. Read the log, it's not logging any errors, but I notice it always winds up setting the id to 0, which is the id shared by all new, un-programmed biolocks. The minute you set a redstone program or learn a bioprint, it should be assigned an id starting with 1. I'm going to have to poke around a bit to even figure out what could be going wrong, as I haven't managed to reproduce this myself. Interactions with other mods don't seem like to cause this sort of thing though.

Ok then. Sorry I seem to be ending up with so many bugs.
GopherAtl #49
Posted 17 January 2013 - 04:58 PM
don't be, I made the bugs, you just reported it. I may end up having to make a custom build with lots of debugging statements to the log for you, if I can't find anything that would be causing this. Assuming you're willing to test it for me?
jewelshisen #50
Posted 17 January 2013 - 05:02 PM
don't be, I made the bugs, you just reported it. I may end up having to make a custom build with lots of debugging statements to the log for you, if I can't find anything that would be causing this. Assuming you're willing to test it for me?

Sure! I'd be more than willing to run the bug test for you! I love this mod and just wish i knew java enough to make mods
jewelshisen #51
Posted 19 January 2013 - 05:34 AM
Just checking to see if you have the test version ready yet.
GopherAtl #52
Posted 19 January 2013 - 08:27 AM
Not yet. Sorry, been distracted by other things. I'll PM it to you when I have one put together, should get to it this weekend, tonight or tomorrow morning.
jewelshisen #53
Posted 19 January 2013 - 08:45 AM
Ah cool. I am happy to bug test and/or beta test for you
Pixelmnkey #54
Posted 19 January 2013 - 04:42 PM
After i logged out and in on my server the biolockk block dosn't remember me anymore, it was working like a charm even if i unloaded the chunk, what could cause it?
jewelshisen #55
Posted 19 January 2013 - 04:47 PM
After i logged out and in on my server the biolockk block dosn't remember me anymore, it was working like a charm even if i unloaded the chunk, what could cause it?

Gopher is working on making a bug test version. I have the same issue so once the bug test is ready he is gonna have me test it out.
GopherAtl #56
Posted 19 January 2013 - 05:16 PM
it would be more accurate to say I've been planning to put together a bug test version…<_</> about to grab something to eat, but after that I'll be getting to work, should have a test version shortly after that.

I really hate bugs I can't reproduce…
jewelshisen #57
Posted 19 January 2013 - 05:27 PM
it would be more accurate to say I've been planning to put together a bug test version…<_</>/> about to grab something to eat, but after that I'll be getting to work, should have a test version shortly after that.

I really hate bugs I can't reproduce…

I bet… Those bugs have to be a huge pain to find. But at least I am not the only one with this bug.
Pixelmnkey #58
Posted 20 January 2013 - 02:21 AM
Yeah, i know it's a pain to find thoose bugs, but atleast for me, just logging out ( the computer was removed tho, only the biolock remains ) it dosn't send rs signal anymore, also i have to use redstone + repeater+ rp2 wire since it dosn't send rs signal into rp2 wires, i guess that has something to do with cc, not with yours, right?
GopherAtl #59
Posted 20 January 2013 - 05:54 AM
the rp thing might be me, I haven't tried it with rp wires yet actually, was planning to add rp support in the next update tho so I'll see if I can sort that issue out then.

I worked on a version last night, and then at around 2am I somehow accidentally ran "cleanup" instead of "reobfuscate" in the mcp directory, which undid all my work. Going back out of town today, but my computer where I'm going has the source from the first time I ported to 1.4.6, which I neglected to bring with me when I came back here earlier this month. Will apply the v1.0.8 fix from earlier this week to that source and re-add the logging features; I expect that might fix jewelshisens's problem, not sure if yours is exactly the same or not, pixelmnkey, since you haven't give me a log or anything. Won't be until late tonight or early tomorrow that I have anything, though; sorry for the delays :/
jewelshisen #60
Posted 20 January 2013 - 05:56 AM
Hey it's fine~ Take your time because I have tons. :)/>
Pixelmnkey #61
Posted 20 January 2013 - 06:25 AM
No worries, enough that you made such a great addon, i don't have a log since it isn't actually a error that mc logs, the biolock just forgets who am i each time i relog, nothing else.
jewelshisen #62
Posted 24 January 2013 - 08:02 AM
Hey just checking for an update on that bug test version
digipenguin #63
Posted 01 February 2013 - 11:27 AM
so, if you program a bioscanner, and then destroy the computer that programmed it, does the bioscanner still follow the rules, or is the computer required to make it work?

EDIT: just read the description better, please disregard this post
absorr #64
Posted 16 February 2013 - 10:33 AM
Hi, I would like to add your mod into a Tekkit addon I am making called the Hackers' Modkit. The modkit is all about adding more things for programming lovers to be able to do more with their code within Tekkit Lite. It will be an addon through the new custom zip feature in the Technic Launcher. You will, of course, be given the proper credit for your mod. I hope to hear from you soon with your reply!
GopherAtl #65
Posted 28 February 2013 - 12:42 AM
Sorry for slow response, somehow I missed the notification when you posted, absorr. Feel free to bundle it in any modpacks you like, public or private. I just ask that you not modify the modinfo file, and anywhere you publicly post a download link that includes the mod, also link to this thread in that same post. Credit aside, many of the biolock's features would be hard to figure out without the documentation!
jewelshisen #66
Posted 01 March 2013 - 04:59 AM
Sorry for slow response, somehow I missed the notification when you posted, absorr. Feel free to bundle it in any modpacks you like, public or private. I just ask that you not modify the modinfo file, and anywhere you publicly post a download link that includes the mod, also link to this thread in that same post. Credit aside, many of the biolock's features would be hard to figure out without the documentation!

So you ARE still alive! JK! Been missing this mod.
hego555 #67
Posted 10 March 2013 - 08:50 AM
I would like a bit of assistance.


status = bio.learn(name,30)

its returning false

So its not learning the name?

I have edited the config files to all up to 30 levels.

 I:bioLock_InternalMemorySize=30

EDIT:
status = bio.learn(name,5)
Still doesnt return true




I think I misread the documentation, when it said limit 16,I thought it was referring to the access levels… can I add more access levels?
GopherAtl #68
Posted 15 March 2013 - 05:46 PM
Again? :checks: How did I get un-subscribed from this thread? Fixed. No wonder, last time I thought I just didn't notice the notification…

hego, not at present… there's only 6 possible sides to program, 5 if you assume you won't wire the front, so I don't see much point in increasing the range of access levels, since that is the primary purpose of the levels, is to allow different programs to achieve different things on different sides.
GopherAtl #69
Posted 21 May 2013 - 06:39 PM
ahem. Still not had time to update this, and don't seem likely to in the near future.

[REDACTED]

Started porting this today, gonna need to restructure my image files and tweak the redstone bits based on changes to 1.5. While I'm at it, I'm going to add analog output levels for redstone activation, so you can, for example, make it output 15 on one side for a level 5 scan and level 10 on the same side for a level 3 scan. Also going to be adding a new peripheral block at the same time, just a simple little thing I've found myself wanting (though in typical form I may go overboard and give it additional features beyond the basics)

In the future I have other peripheral blocks I plan to add to the mod as well, mostly along the common theme of programmible security devices. Also, at some point, I'm going to look into the possibility of adding support for MFR's bundled cables at some point as well - no promises, but if it seems practical, I'll add it.

At the same time, I've decided I'm going to discontinue my policy of continuing to support all old versions; the new fixes and features will be for minecraft 1.5.2 only, and unless a particular version winds up in some major mod pack, I will discontinue support for older versions as soon as I port to a newer version of Minecraft.
GopherAtl #70
Posted 15 June 2013 - 08:29 AM
bump for long-overdue 1.5.2 update!

Another update will follow in a few days, with new features, but I decided to go ahead and release a 1.5.2 version asap.

:edit: Another update followed already! No new features yet, just some changes that, I hope, will ensure thread safety. Also fixed an unrelated bug that was discovered in the process, so I hope nobody's gone and pushed v1.0.9b already in the few hours since I released it, as you'll definitely want v1.1 now!

Next - probably not until tomorrow - I'll be adding a method to set a label on the scanners, so that they will appear in the inventory with that label instead of just their numeric id, like you can with computers. I'm also gonna be properly implementing blanking of scanners; currently even if they are not programmed at all, they drop uniquely-id'd objects when broken. Gonna make them only drop if they have some learned prints or stored programs, and otherwise revert to un-numbered, and stackable, items. And after that, finally, a new peripheral. The new peripheral is pretty simple, so with luck I'll finish all of this by the end of the weekend!
jesusthekiller #71
Posted 16 June 2013 - 11:25 AM
Gopher, nice update! :D/>
GopherAtl #72
Posted 19 June 2013 - 11:32 AM
1.1.1 released to fix a rather major bug in 1.1, introduced by the thread safety changes. Kindof major, rather embarassed I didn't catch it, but was testing in mcp mostly, where player names are random, so…yeah. That's my excuse. Fixed now!
GopherAtl #73
Posted 23 June 2013 - 10:19 PM
*bump* for v2.0!

Major new feature. PRBs (Programmable Redstone Blocks).

These are some seriously versatile little babies! At the most basic, you can connect them to a computer, either directly or via wired modems over a LAN, and give that computer the ability to monitor and control redstone on 5 sides (minus the one that has the modem attached), just like you would the sides of the computer itself. But that's just the start! They can also be programmed to do logical operations on their inputs to generate outputs, including all the standard boolean comparisons (and, or, nor, xor, nand, nxor), analog comparisons (>, <, >=, <=, ==, and !=), as well as a few extras (max, min, if, unless). These operations can take constants or sides as their inputs.

See the original post for the detailed usage instructions. In the mean time, as a little bonus, I give you a program that can configure a PRB to act like an s/r latch!


prb=peripheral.wrap("bottom") --// assumes computer is sitting on top of the prb
prb.setOutput("back","left","nand","front")
prb.setOutput("front","right","nand","back")
And that's that. As long as there is something in front of and behind the PRB which will "reflect" redstone outputs back - redstone dust, or most basic solid, non-transparent blocks - then signals on the left and right will set and reset the latch. When set, a redstone signal will be output on the front, and the back will be off; when reset, the back will output while the front is off.

This is just scratching the surface of this incredibly versatile little logic block - which will become even more versatile in future updates, with the addition features like internal values that can be programmed and used in output programs, as well as clock and timing functions.

As always, report bugs here, and also post screenshots/videos of anything you create with these, the best will get added to the original post!
Mikeemoo #74
Posted 24 June 2013 - 04:28 AM
nice!
jesusthekiller #75
Posted 24 June 2013 - 05:48 PM
Uuu, sexy :D/>
wilcomega #76
Posted 29 June 2013 - 06:00 AM
this biolock is pretty cool, i would suggest adding a paper like thing where you right click other players to get their fistprint and then you canm right click with that thing in your hand on a biolock and it would give the fistprint on the paper to the lock instead of yours. that special paper would maybe be crafted with a paper and a slimeball? or make it so the player itself has to right click with it to save the fistprint of him. hope you take this in considderation
GopherAtl #77
Posted 29 June 2013 - 10:28 AM
I'm considering a way to subvert the locks and fake prints for a future version, but it's a ways off, and it'll be a more expensive than just a paper and a slimeball and a bit trickier to use than just clicking whoever you want to steal the prints of with it! If it was that easy, they'd be quite useless as locks.

Glad you like the mod, though!
NOTUSEDPLEASEDELETE #78
Posted 20 July 2013 - 12:30 AM
Don't want to be annoying but I can't see a download link!
Lyqyd #79
Posted 20 July 2013 - 02:29 AM
Open the "Common Methods" spoiler in the first post.
GopherAtl #80
Posted 21 July 2013 - 11:15 AM
I…:facepalm: fixed, it shouldn't have been inside that spoiler, sorry :P/>
firegore #81
Posted 24 July 2013 - 01:02 PM
i can't open the BioLock Spoiler o.o, please fix it :)/> thanks
mrgreaper #82
Posted 25 July 2013 - 09:59 PM
any news on 1.6.2 version?
GopherAtl #83
Posted 25 July 2013 - 10:40 PM
updating this is my project for this weekend; first fixing a bug and finishing a feature I started in 1.5.2, and there'll be a final 1.5.2 release with that, then I'll port the whole thing to 1.6.2. Almost done with the bug, and finishing the new block shouldn't take half a day. Hopefully both will be released by mid-day tomorrow (gmt+5, so about 14 hours from this post), worst case they will be finished Sunday, another 24h after that!
GopherAtl #84
Posted 26 July 2013 - 06:18 PM
…aaand done. A bit behind my planned schedule, but not too bad. Update for 1.5.2 version with the new features, as well as the new 1.6.2 version.

The big change is the addition of the Keypad blocks


These send events for each button press, but like biolocks, they can also be programmed to output redstone, in this case when learned codes are entered rather than when learned bioprints are scanned. See the OP for a quickie introduction to the methods (a more complete documentation update is coming later this weekend, after I take a break!)

Other changes this version include recipe changes - Biolocks are now crafted with a PRB instead of redstone dust in the middle, which makes them a fair bit more expensive (9 instead of 1 redstone). And lastly, biolocks now recognize scans only when right-clicked from the "business end," the front face with the scanner; this allows building around them without shift-clicking, and also lays the way for another change to come, probably not in the next update but by the end of the v2.0 cycle.

I've also got at least 2 more blocks, possibly 3, planned for version 2.0. Don't wanna reveal what they are just yet, but stay tuned for big things ahead!

:edit: oh, and if you try these and find they don't work, please report it here! don't assume I know, I won't be playing with them any more tonight, so unless someone reports an issue, there's no telling when I'll finally discover it myself!
Thib0704 #85
Posted 26 July 2013 - 07:15 PM
Look's God Damn cool,
Time to update to 1.6.2 !

EDIT : NOOOOOO, Link not working Snif ;(
RE : EDIT the link is : http://geomys.com/mc..._v2.1_1.6.2.zip
He mistyped it :/

AGAIN : SO COOOOL!
karelmikie3 #86
Posted 26 July 2013 - 07:45 PM
awesome stuff :D/> i'm surely gonna try it
GopherAtl #87
Posted 26 July 2013 - 07:47 PM
Ah, thanks for catching that; I usually double-check links before I post, but forgot to do it this time. Bad habits of a windows user, ignoring case of file names…
Thib0704 #88
Posted 26 July 2013 - 07:51 PM
Soo Happy !
GopherAtl #89
Posted 26 July 2013 - 07:54 PM
just realised I forgot to remove something I've been working on, unrelated to this mod, from the final zips. It's not craftable, and I won't explain how it's used, but deliberately or not, it's there to be discovered in creative mode and experimented with by anyone so inclined! It will certainly be removed from this mod next version (though some form of it may be released in a future mod, along with some related stuff), so don't get attached to it or anything.

To anyone who found it but is wondering if it actually does anything… yes, yes it does. Only hint I'll give is that it is a peripheral.
Thib0704 #90
Posted 26 July 2013 - 08:00 PM
:D/> , Im going to try to find it :P/>
EDIT : I dont seem to find it the only thing I know is that is related to
Spoilerplayground ?
Found it !
Thank's to the magic of NEI :P/>
Sad Face :(/> Peripheral.wrap("right").listMethods() Dosnt work :(/>
Lyqyd #91
Posted 26 July 2013 - 09:02 PM
That's a symptom of OpenPeripheral interfering.
Thib0704 #92
Posted 26 July 2013 - 09:30 PM
So You mean There might be OpenPeripheral interaction in the future ?
GopherAtl #93
Posted 26 July 2013 - 10:43 PM
why would something that is already a peripheral need openperipherals interaction? The point of OP is to wrap things that aren't peripherals already.

Normal peripherals do not generally have listMethods() methods on them. That's something OpenPeripherals does, for some reason.

use peripheral.getMethods instead. That's literal "peripheral.getMethods", as in using the peripheral api, not "myWrappedPeripheral=peripheral.wrap(side) myWrappedPeripheralObject.getMethods()" This will work on actual peripherals, as well as non-peripherals interfaced by OpenPeripherals.
Lyqyd #94
Posted 26 July 2013 - 10:43 PM
I mean that because you have OpenPeripheral installed, and because of some technical stuff about the way the two mods are written, OpenPeripheral has replaced the peripheral interface for Gopher's block with its own (in this case useless) peripheral methods. If you uninstall OpenPeripheral, the actual methods will show up. This is undesired or unintended behavior that is apparently going to be fixed in future updates of OpenPeripheral and/or ComputerCraft.

Edit: I am assuming, perhaps erroneously, that peripheral.getMethods was already run, turned up only OpenP's replacement listMethods, and that running that did nothing. If you were instead simply trying to do listMethods first, definitely see what peripheral.getMethods actually returns.
GopherAtl #95
Posted 26 July 2013 - 10:49 PM
actually, no, it hasn't, lyqyd; just tried it with the beta for 1.6 of OP, getMethods works fine, there just is not a listMethods method on my peripherals because, well, nothing beside OP-promoted peripherals does have listMethods.

Always use peripheral.getMethods instead; as I said before, it always seems to work.

:edit:

re: the accidental bonus peripheral, I just realised it is not actually accessible, because the playground sub-mod was not fully ported or mentioned in the mod info file. So, no hidden little secrets now; sorry if anyone spent any time looking for one…
Thib0704 #96
Posted 27 July 2013 - 06:02 AM
Oh ok.
TheOddByte #97
Posted 27 July 2013 - 09:14 PM
Awesome! Really like the new keypad blocks! :D/>
NOTUSEDPLEASEDELETE #98
Posted 31 July 2013 - 04:58 PM
i can't open the BioLock Spoiler o.o, please fix it :)/> thanks

I found the issue. The spoiler was in italics. Italics spoilers don't work.
GopherAtl #99
Posted 31 July 2013 - 07:03 PM
i can't open the BioLock Spoiler o.o, please fix it :)/> thanks
I found the issue. The spoiler was in italics. Italics spoilers don't work.

oh wow, sorry firegore! I saw your post but at the time dismissed it as one of those so-frequent page load issues you get with spoilers people get, and never even looked into it.

Thank you, flick, for pointing out the issue. Fixed now!
doublequestionmark #100
Posted 01 August 2013 - 11:12 AM
player detector
MCGamer20000 #101
Posted 02 August 2013 - 01:01 AM
I remember I deleted version 2.0 of this mod from my server because it kept spamming the console. Does it still do this? And if it does, can you change it?
GopherAtl #102
Posted 02 August 2013 - 07:32 AM
2.1.1 does not. If you still have 2.1, make sure to grab the latest, I stealth-updated to resolve a version mismatch issue, as well as remove some lingering debug logging info.
willwac #103
Posted 03 August 2013 - 12:07 PM
Are there any program examples for us to use?

I don't know how to use os.pullEvent and having example programs really help me learn, (That's how I learned how to program in CC Lua.)
GopherAtl #104
Posted 03 August 2013 - 03:54 PM
Not at my computer atm, but I'll add some basic example programs later on. Of course, the biolock and keypad locks can be used without an actual program. You can just wrap them and call learn()/learnCode() and program() at a Lua prompt. You can place them next to a computer in a workshop or whatever to program then break and re-place them where they're needed, or place a temporary computer next to them where they're being installed.

Note that if they can be vulnerable to hacking if people can get a computer or turtle next to them (and if its on an exterior door, they can always fly a turtle next to it!), but you can protect against that by using the common methods, lock() and unlock(), which disables the API functions to learn prints/codes or modify the stored redstone programs unless they are unlocked with a password.

All of that is a bit more complicated than the typical peripheral, but none of it requires event handling and those functions are well-documented in the OP. In the case of Biolocks, there is a utility program installed on any attached computer that can help as well, just run "biolock" on at attached computer and it will display its own help. Here's a simple example programming a keypad to open a door from a Lua prompt:


Keypad=peripheral.wrap("left") --naturally change "left" to the side it is in

--adds access code *1234 with access level 5
Keypad.learnCode("mainCode", "*1234", 5)

--programs the keypad to emit redstone on its left side for 30 ticks (1.5 seconds)
--when it gets a code with access level 5
Keypad.program("left", 5, 30)

--this will prevent learnCode(...) and program(...) from being called until unlock() is called with the same pw)
Keypad.lock("mypassword")

In the event that you forget the password, you can reset the entire block, causing it to forget any stored prints/codes a lot programs, by placing it in a crafting grid by itself.
GopherAtl #105
Posted 04 August 2013 - 12:24 PM
okie! Biolock tutorial/example time.

There are two basic ways to use biolocks. First, here is a step-by-step walkthrough of the most basic biolock setup using the lock's programming functions.
Spoiler



the biolocks are connected to the computer inside by wired modems and network cable. Note the red rings on the modems on the biolocks, remember to right-click to activate those. Activating the modem on the computer is not required; unless you have a specific reason, I don't recommend it in general. The pressure plates are there for exiting.

When I right-clicked to activate the modems, I got chat messages identifying them; the one on the left from the computer is biolock_0, the one on the right biolock_1. Note those names when you activate the modems.

The first step is teaching them the bioprints you want them to recognize. For some cases, this can most easily be done just using the built-in biolock program. Screenshot after I did this for both locks:

Basic syntax is "biolock <lockname> learn <username> <accesslevel>" where lockname is the attach name you got earlier when you activated the modem on the lock, or the side of the computer if it's directly connected. Username is whatever name you want it to know the person by, and accesslevel is a number from 1 to 5, higher being more access.

When it prompts you to scan the person you want it to learn, you'll have to run around to the front of the biolock and right-click; you'll see the scan animation and the computer will get the print and store it back to the lock with the name and level you provided.

The next step is programming the redstone outputs on the locks. This is a one-time thing, so we'll do it at a lua prompt.

The args here are simple; first I wrapped the locks, then called the program method on them. Program takes at least 3 args: the side of the biolock you're programming - this is the side that will emit a redstone signal, and is relative to the biolock itself. This is followed by the access level to require for activation, and last is the time, in minecraft ticks, for the activation pulse to last. 60 ticks is 3 seconds.

That's it! The locks are working and online! I've created a pair of locked doors which will open only for me. If that's all you want, then at this point you could remove the computer, modems, and networking cable; the locks are programmed, and will carry on opening the door only for me without any further work.

To give access to more people, I can go to the computer and use the biolock program as I did the first time, and have them right-click the locks instead of doing it myself. If I add or remove people a lot, though, that can get tedious, especially if you add more locks into the system as well. I'll put together an example of that soon as well, but for now this ought to let you get started without even mucking about with os.pullEvent. And remember, once they're programmed, you can break and move these locks to wherever you need them. If I were moving those walls out to make more space inside, I could just break and re-place the biolock just like I would the door and other blocks, and it will work exactly as it did before!

Keypad locks can be set up almost the exact same way; the onyl difference is instead of using the biolock program to learn people's prints, in lua, you'll just wrap the keypad and call learnCode("code","*1234",5) to store "*1234" as a code called "code" with access level 5.

The second method is to use a program in a pullEvent loop; You can see lyqyd's door program code on pastebin, I'll leave it to him to explain it all though :)/>/> He doesn't use any of the biolock's special features, just handles biolock events, and manages a list of prints directly. This approach is a bit more difficult to set up in the first place, and requires the computer stay connected and running it's program to function, but it's much more flexible, as well.

code: http://pastebin.com/JfxEk7xV
screenshot of setup:
</accesslevel></username></lockname>
Lyqyd #106
Posted 04 August 2013 - 03:10 PM
The biolocks have some cool features on their own, but there is some really cool functionality you can add if you use them with some more computer programming. For instance, this program adds an easy authorization feature. Once you put your print in the .auth file, you can add new authorized users simply by putting your print in a second time while the door is already open, and then having them put in their print.

So, I'll break down the code and explain it a little bit:


local authorized = {}
local authorizing
local close

local handle = io.open(".auth", "r")
if handle then
  for user in handle:lines() do
	authorized[user] = true
  end
  handle:close()
end

The first part of the code initializes various variables that will be used in the rest of the script, and loads the list of fistprints from the file they are stored in. It adds the fistprints to the authorized tables as the keys for each entry, so that the table can be indexed by the key later rather than having to iterate the table and compare the value of each.


while true do
  event = {os.pullEvent()}
  if event[1] == "biolock" then
	if authorized[event[2]] then
	  if rs.getOutput("right") then
		--accept new authorized entry
		authorizing = true
	  else
		rs.setOutput("right", true)
		close = os.startTimer(20)
	  end
	elseif authorizing then
	  authorized[event[2]] = true
	  authorizing = false
	  local handle = io.open(".auth", "w")
	  if handle then
		for k, v in pairs(authorized) do
		  handle:write(k.."\n")
		end
		handle:close()
	  end
	end

The next part of the code begins the main loop of the program and handles biolock events. The first thing we check is if the fistprint we've received is on our list of authorized prints. Then we see if we've already opened the door (checking the redstone output on the right side), and if we haven't, we open the door. If we have, however, we set the `authorizing` variable to true, which means that the next unauthorized print will be added to the authorized list.

Then if the fistprint wasn't on the list, we check to see if we are in authorizing mode (we received a second authorized print while the door was already open). If so, we add the new print as an authorized print and save the list of authorized users. We also turn authorizing mode off.


  elseif event[1] == "redstone" then
	if rs.getInput("bottom") then
	  authorizing = false
	  rs.setOutput("right", false)
	end
  elseif event[1] == "timer" and event[2] == close then
	authorizing = false
	rs.setOutput("right", false)
  end
end

The last part of the code handles the timeout for closing the door as well as the pressure plate. As you saw above, the door stays open for 20 seconds after an authorized print is input. However, once a player passes through the door and steps on the pressure plate, the computer will close the door behind them right away. Whether the door gets closed via the timer or by the player stepping on the pressure plate, we turn off the authorizing mode again just in case it had been turned on.
mrgreaper #107
Posted 19 August 2013 - 07:46 PM
i did a simple program for the keypad:


print ("input side")
local side = read()
print ("input code")
local code = read()
print ("input level")
local level = read()
print ("redstone delay")
local redst = read()
print ("code name?")
local codename= read()
print ("side to unlock")
local side2 = read()
defaultpass = "alphapapa"
Keypad=peripheral.wrap(side)
Keypad.learnCode(codename, code, level)
Keypad.program(side2, redst, level)
Keypad.lock(defaultpass)

and from the nbt tags it seems to work, but entering the code i set causes nothing to happen,

so i tried in lua prompt with the lines you have a few posts above…still nothing

i even placed pistons either side and behind the keypad incase that was the issue …nothing

any ideas?
GopherAtl #108
Posted 19 August 2013 - 10:06 PM
you don't tonumber(level), so I'm rather surprised you're not getting an error for invalid arguments from both learnCode and program. I'll check if they're really not generating errors, and fix that if that is the case.

You should be doing level=tonumber(read()) and redst=tonumber(read()), I believe.

:edit: Tested, both learnCode and program are returning false and an error message when passed in a string instead of a number for access level or activation ticks. I chose to do this rather than actually raise an error, since using pcall is the only way to handle actual error() calls generated in lua, and it is more than a little inconvenient.
GopherAtl #109
Posted 19 August 2013 - 11:21 PM
bump for v2.1.2 bugfix for the 1.5.2 version; in back-porting 2.1 to mc 1.5.2, I apparently forgot some of the testing process, making it unusable in smp. It was incredibly easy to fix, but I didn't even know about it until it was reported to me on irc tonight.

latest 1.6.2 version is still v2.1.1, as this bug only affected the back-port to 1.5.2

:edit: Scratch that, latest for BOTH is 2.1.3; realized the cc events from keypads were not including the attach name, so added that. Updating the op now…

:edit2: new video demo, an elevator using immibis' microblocks &amp; adventure peripheral, using my new keypad blocks for a control pad!

[media]http://www.youtube.com/watch?v=ta8NQ0x0gHc[/media]
Lyqyd #110
Posted 20 August 2013 - 01:20 AM
Oooh, that is actually pretty cool. Definitely better than that railcraft monstrosity we worked on at one point!
mrgreaper #111
Posted 20 August 2013 - 02:24 PM
you don't tonumber(level), so I'm rather surprised you're not getting an error for invalid arguments from both learnCode and program. I'll check if they're really not generating errors, and fix that if that is the case.

You should be doing level=tonumber(read()) and redst=tonumber(read()), I believe.

:edit: Tested, both learnCode and program are returning false and an error message when passed in a string instead of a number for access level or activation ticks. I chose to do this rather than actually raise an error, since using pcall is the only way to handle actual error() calls generated in lua, and it is more than a little inconvenient.
stil cant get it to work even with the lua commands

k=peripheral.wrap("top")
k.learnCode("code","*12345", 5)
computer says true
k.program("left",30,5)
computer says true


the computer is on the floor, ontop of it is the keypad, on the right of it is a iron door on the left is a piston.
so i right click * 1 2 3 4 5, each time the buttons depress but nothing happens the door stays shut (as it should do as its on the right), the piston does not extend..no beeps to say the code is a success or failed, just nothing. what am i doing wrong?
GopherAtl #112
Posted 20 August 2013 - 03:12 PM
>.< ffs. Ok, sorry, you are correct, something is just plain borked, somehow the redstone signaling has gotten broken, gonna go through my difs and figure out why. This passed embarassing a couple of bugs ago, at this point I don't even know what to say.

I will have a fixed version asap, probably within an hour or two.
GopherAtl #113
Posted 20 August 2013 - 04:05 PM
>.< ffs. Ok, sorry, you are correct, something is just plain borked, somehow the redstone signaling has gotten broken, gonna go through my difs and figure out why. This passed embarassing a couple of bugs ago, at this point I don't even know what to say.

I will have a fixed version asap, probably within an hour or two.


stil cant get it to work even with the lua commands

k=peripheral.wrap("top")
k.learnCode("code","*12345", 5)
computer says true
k.program("left",30,5)
computer says true


the computer is on the floor, ontop of it is the keypad, on the right of it is a iron door on the left is a piston.
so i right click * 1 2 3 4 5, each time the buttons depress but nothing happens the door stays shut (as it should do as its on the right), the piston does not extend..no beeps to say the code is a success or failed, just nothing. what am i doing wrong?

Herpaderp. Took me 30 minutes of debugging my code to realise it, but the args are just backwards, as I've forgotten how to use my own peripherals, apparently XD

program(side,level,delay), not program(side,delay,level). You were programming the left to activate for 5 ticks on level 30.
Reverse that and your code should work fine.

I'm gonna recheck the OP and the examples earlier to make sure they aren't showing this backwards.. :update: my example above was backwards, OP documentation was correct. Very sorry about that!
mrgreaper #114
Posted 20 August 2013 - 04:34 PM
>.< ffs. Ok, sorry, you are correct, something is just plain borked, somehow the redstone signaling has gotten broken, gonna go through my difs and figure out why. This passed embarassing a couple of bugs ago, at this point I don't even know what to say.

I will have a fixed version asap, probably within an hour or two.


stil cant get it to work even with the lua commands

k=peripheral.wrap("top")
k.learnCode("code","*12345", 5)
computer says true
k.program("left",30,5)
computer says true


the computer is on the floor, ontop of it is the keypad, on the right of it is a iron door on the left is a piston.
so i right click * 1 2 3 4 5, each time the buttons depress but nothing happens the door stays shut (as it should do as its on the right), the piston does not extend..no beeps to say the code is a success or failed, just nothing. what am i doing wrong?

Herpaderp. Took me 30 minutes of debugging my code to realise it, but the args are just backwards, as I've forgotten how to use my own peripherals, apparently XD

program(side,level,delay), not program(side,delay,level). You were programming the left to activate for 5 ticks on level 30.
Reverse that and your code should work fine.

I'm gonna recheck the OP and the examples earlier to make sure they aren't showing this backwards.. :update: my example above was backwards, OP documentation was correct. Very sorry about that!

np chap, you have made an awesome mod, the odd slip up is understood :)/>

also now i switched those two and it works perfectly, thank you
TyDoesMC #115
Posted 27 August 2013 - 02:13 AM
How Do I Make Like Other Functions For The Keypad? Sorta Like The elevator.. But Like I Push 1 It Says "You Pushed 1" Or Custom Text?
GopherAtl #116
Posted 27 August 2013 - 03:45 PM
at the most basic, you can just use an os.pullEvent loop. There's examples and tutorials on pullEvent in the tutorials section, but here's a simple one:


print("keypad example. Press any key on the keyboard to exit the program.")

while true do
  local event={ os.pullEvent() }

  if event[1]=="keypad_button" then
    --upack and properly name args, just for convenience
    local _, side, button=unpack(event)
    if event[3]=="2" then
	  print("2nd floor!")

    elseif event[3]=="1" then
	  print("ground floor!")

    else
	  print("invalid floor "..event[3])

    end

  elseif event[1]=="key" or event[1]=="char" then
    print("quitting")
    break
  end

end

TyDoesMC #117
Posted 29 August 2013 - 01:48 PM
Ok Thank You, Is There Any Way For The Keypad To Keep a Door Open? Insted Of Opening It For a Time Limit
GopherAtl #118
Posted 29 August 2013 - 02:02 PM
hrm. I'm afraid not, though that's something I might want to add in the next version; it hadn't occurred to me before.
TyDoesMC #119
Posted 06 September 2013 - 01:53 AM
Ok… Thanks.
GopherAtl #120
Posted 06 September 2013 - 04:27 PM
actually, on further thought, with a controlling lua program, you could do this, but the approach is a bit hackish. If you invert the output, using "true" for the optional 4th argument to the program method, you can make them open by default, instead of closed by default, and if you specify an impossible access level, like 10, then it will just turn that side's output on, and leave it on until the program is changed. You would have to be connected to a computer, and the computer's program would have to keep track of the door's state, listening for keypad_code events and toggling between an always-open program (keypad.program(side,10,1,true)) and always-closed program (keypad.program(side,10,1,false), or just keypad.forgetProgram(side)).

As I said, a bit hackish, but not impossible! same should work with biolocks.

Regardless, I will add the activation timer 0 argument as a toggle function in the next version.
rmrocks01 #121
Posted 13 September 2013 - 08:17 PM
pleese help me i am trying to make a code to open a door with a key pad and it always fails. heres my code

while true do

keypad = peripheral.wrap("top")

keypad.learnCode("maincode", "0811", 7)
os.pullEvent("keypad_code", "top", "maincode", 7)
	keypad.program("back", 7, 30)


end
rmrocks01 #122
Posted 13 September 2013 - 09:55 PM
pleese help me i am trying to make a code to open a door with a key pad and it always fails. heres my code

while true do

keypad = peripheral.wrap("top")

keypad.learnCode("maincode", "0811", 7)
os.pullEvent("keypad_code", "top", "maincode", 7)
	keypad.program("back", 7, 30)


end
i figured it out now….. the sevens needed to be lower
rmrocks01 #123
Posted 13 September 2013 - 10:12 PM
i found a bug… apparently for me the back of the keypad is the left of the keypad left is back, ect
GopherAtl #124
Posted 14 September 2013 - 06:34 PM
eh? I don't know how/why that would be happening, the same side information is used to render as to determine sides for button presses. I'll see if I can reproduce it a little later…
Chamimnya #125
Posted 14 September 2013 - 08:19 PM
Full documentation coming later, I need to stop to eat, and walk, and relax, first

How long has that been there? Will it ever be finished? :P/>
dsuser97 #126
Posted 21 September 2013 - 03:00 PM
It seems to me, that the keypad_code event is a bit weird when you enter wrong codes/reset codes and assign the name to new ones.
When I run the following program (with Terminal Glasses from OpenPeripherals):


terminalGlassesBridge = peripheral.wrap("left")
terminalGlassesBridge.clear()
keyPad = peripheral.wrap("right")
keyPad.learnCode("dsuser97","38989",5)
while true do
a, b, c, d = os.pullEvent("keypad_code")
if d == 5 then
  randomCode = ""
  for i=1,8 do
   randomNum = math.random(0, 9)
   randomCode = randomCode .. randomNum
  end
  local objectInfo = terminalGlassesBridge.addText(20, 20, "Random Code: " .. randomCode, 0)
  print("Secret Code: " .. randomCode)
  keyPad.learnCode("random",randomCode,1)
  local counter = 0
  local finished = false
  repeat
   a, b, c, d = os.pullEvent()
   if a == "keypad_code" then
    print("Code input: " .. c)
    if c == "random" then
	 redstone.setOutput("back", true)
	 sleep(5)
	 redstone.setOutput("back", false)
	 finished = true
    end
   end
   if a == "keypad_button" then
    print("Button input: " .. c)
    counter = counter + 1
    if c == "#" then
	 finished = true
    end
    if c == "*" then
	 counter = 0
    end
   end
   if counter >= 10 then
    finished = true
   end
  until finished == true
  keyPad.forgetCode("random")
end
terminalGlassesBridge.clear()
end

This code should do (and mostly does): In a loop, check for a fixed code, generate a random code, check for that code and open a door.
The rest is printing codes and inputs somewhere and some working functions to cancel the input.

I can get into the following scenarios:
If I type in the first code (38989, called "dsuser97") it creates the random code when I then type this code, my door opens. Then I type in the default code again, and it generates another random Code. But when I then type in the random Code, it does nothing.
Also when I type the normal code, then anything and then the random code, it does nothing.

I don't think, this is expected behaviour.
GopherAtl #127
Posted 28 September 2013 - 12:33 PM
Been away from my computer for a while, this does sound odd but can't say more until I get back and can look into it.
tec_SG #128
Posted 06 November 2013 - 12:27 PM
I got the crash report when trying to use it with MCPC-forge942-b116/MC1.6.4/CC1.57, idk if it is intended as the support for 1.6.4 is not done. But if not there goes the crashlog.
http://pastebin.com/3uuxkYfX
karelmikie3 #129
Posted 08 November 2013 - 01:38 PM
I got the crash report when trying to use it with MCPC-forge942-b116/MC1.6.4/CC1.57, idk if it is intended as the support for 1.6.4 is not done. But if not there goes the crashlog.
http://pastebin.com/3uuxkYfX
i have the same crash on the client
MrabEzreb #130
Posted 19 November 2013 - 09:53 AM
I am having an issue with the mod, as soon as it is installed I run Minecraft… to no avail… I did manage to get a crash log though!
Spoiler—- Minecraft Crash Report —-
// There are four lights!
Time: 11/19/13 9:52 AM
Description: Initializing game
java.lang.NoClassDefFoundError: gopheratl/biolock/common/RecipeResetProgrammable
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at cpw.mods.fml.common.FMLModContainer.constructMod(FMLModContainer.java:462)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:74)
at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:45)
at com.google.common.eventbus.EventBus.dispatch(EventBus.java:313)
at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:296)
at com.google.common.eventbus.EventBus.post(EventBus.java:267)
at cpw.mods.fml.common.LoadController.sendEventToModContainer(LoadController.java:194)
at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:174)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:74)
at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:45)
at com.google.common.eventbus.EventBus.dispatch(EventBus.java:313)
at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:296)
at com.google.common.eventbus.EventBus.post(EventBus.java:267)
at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:105)
at cpw.mods.fml.common.Loader.loadMods(Loader.java:509)
at cpw.mods.fml.client.FMLClientHandler.beginMinecraftLoading(FMLClientHandler.java:183)
at net.minecraft.client.Minecraft.func_71384_a(Minecraft.java:472)
at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:807)
at net.minecraft.client.main.Main.main(SourceFile:101)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at net.minecraft.launchwrapper.Launch.launch(Launch.java:131)
at net.minecraft.launchwrapper.Launch.main(Launch.java:27)
Caused by: java.lang.ClassNotFoundException: gopheratl.biolock.common.RecipeResetProgrammable
at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:186)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
… 35 more
Caused by: java.lang.IncompatibleClassChangeError: Implementing class
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:178)
… 37 more

A detailed walkthrough of the error, its code path and all known details is as follows:
—————————————————————————————
– Head –
Stacktrace:
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at cpw.mods.fml.common.FMLModContainer.constructMod(FMLModContainer.java:462)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:74)
at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:45)
at com.google.common.eventbus.EventBus.dispatch(EventBus.java:313)
at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:296)
at com.google.common.eventbus.EventBus.post(EventBus.java:267)
at cpw.mods.fml.common.LoadController.sendEventToModContainer(LoadController.java:194)
at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:174)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:74)
at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:45)
at com.google.common.eventbus.EventBus.dispatch(EventBus.java:313)
at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:296)
at com.google.common.eventbus.EventBus.post(EventBus.java:267)
at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:105)
at cpw.mods.fml.common.Loader.loadMods(Loader.java:509)
at cpw.mods.fml.client.FMLClientHandler.beginMinecraftLoading(FMLClientHandler.java:183)
at net.minecraft.client.Minecraft.func_71384_a(Minecraft.java:472)
– Initialization –
Details:
Stacktrace:
at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:807)
at net.minecraft.client.main.Main.main(SourceFile:101)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at net.minecraft.launchwrapper.Launch.launch(Launch.java:131)
at net.minecraft.launchwrapper.Launch.main(Launch.java:27)
– System Details –
Details:
Minecraft Version: 1.6.4
Operating System: Windows 7 (x86) version 6.1
Java Version: 1.7.0_40, Oracle Corporation
Java VM Version: Java HotSpot™ Client VM (mixed mode, sharing), Oracle Corporation
Memory: 85058240 bytes (81 MB) / 185434112 bytes (176 MB) up to 518979584 bytes (494 MB)
JVM Flags: 2 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xmx512M
AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
Suspicious classes: FML and Forge are installed
IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
FML: MCP v8.11 FML v6.4.20.916 Minecraft Forge 9.11.1.916 30 mods loaded, 30 mods active
mcp{8.09} [Minecraft Coder Pack] (minecraft.jar) Unloaded->Constructed
FML{6.4.20.916} [Forge Mod Loader] (minecraftforge-9.11.1.916.jar) Unloaded->Constructed
Forge{9.11.1.916} [Minecraft Forge] (minecraftforge-9.11.1.916.jar) Unloaded->Constructed
Micdoodlecore{} [Micdoodle8 Core] (minecraft.jar) Unloaded->Constructed
BioLock{2.1.3} [BioLock] (BioLock_v2.1.3_1.6.2) Unloaded
BuildCraft|Core{4.1.2} [BuildCraft] (buildcraft-A-1.6.2-4.1.2.jar) Unloaded
BuildCraft|Builders{4.1.2} [BC Builders] (buildcraft-A-1.6.2-4.1.2.jar) Unloaded
BuildCraft|Energy{4.1.2} [BC Energy] (buildcraft-A-1.6.2-4.1.2.jar) Unloaded
BuildCraft|Factory{4.1.2} [BC Factory] (buildcraft-A-1.6.2-4.1.2.jar) Unloaded
BuildCraft|Transport{4.1.2} [BC Transport] (buildcraft-A-1.6.2-4.1.2.jar) Unloaded
BuildCraft|Silicon{4.1.2} [BC Silicon] (buildcraft-A-1.6.2-4.1.2.jar) Unloaded
IC2{2.0.260-experimental} [IndustrialCraft 2] (industrialcraft-2_1.117.921.jar) Unloaded
CompactWindmills{1.0.2.2} [CompactWindmills] (CompactWindmills+MC.1.6.4+v.1.0.2.2.jar) Unloaded
ComputerCraft{1.57} [ComputerCraft] (ComputerCraft1.57.zip) Unloaded
CCTurtle{1.57} [ComputerCraft Turtles] (ComputerCraft1.57.zip) Unloaded
CrossbowMod2{a0.1.6} [Crossbow Mod 2] (Crossbow-Mod-2-1.6.4-a0.1.6.33.jar) Unloaded
FlansMod{4.0.1} [Flans Mod] (FlansMod-4.0.1.jar) Unloaded
GalacticraftCore{2.0.6} [Galacticraft Core] (Galacticraft-1.6.4-2.0.6.895.jar) Unloaded
GalacticraftMars{2.0.6} [Galacticraft Mars] (Galacticraft-Planets-1.6.4-2.0.6.895.jar) Unloaded
Thaumcraft{4.0.4c} [Thaumcraft] (Thaumcraft4.0.4c.zip) Unloaded
Railcraft{8.2.0.0} [Railcraft] (Railcraft_1.6.2-8.2.0.0.jar) Unloaded
gregtech_addon{MC162} [GregTech-Addon] (gregtechmod.zip) Unloaded
IC2NuclearControl{1.6.2c} [Nuclear Control] (IC2NuclearControl-1.6.2c-ic2-experimental.zip) Unloaded
ImmibisCore{57.0.0} [Immibis Core] (immibis-core-57.0.0.jar) Unloaded
lantern{1.44} [Lantern mod] (Lantern1.44[1.6.4].zip) Unloaded
numina{0.0.1-17} [Numina] (Numina-1.6.2-0.0.1-17.jar) Unloaded
OpenPeripheral{0.2.1} [OpenPeripheral] (OpenPeripheral-0.2.1-preview8.jar) Unloaded
ForgeMultipart{1.0.0.191} [Forge Multipart] (ForgeMultipart-universal-1.6.4-1.0.0.191.jar) Unloaded
McMultipart{1.0.0.191} [Minecraft Multipart Plugin] (ForgeMultipart-universal-1.6.4-1.0.0.191.jar) Unloaded
ForgeMicroblock{1.0.0.191} [Forge Microblocks] (ForgeMultipart-universal-1.6.4-1.0.0.191.jar) Unloaded
Launched Version: 1.6.4-Forge9.11.1.916
LWJGL: 2.9.0
OpenGL: Intel® HD Graphics 3000 GL version 3.1.0 - Build 9.17.10.2932, Intel
Is Modded: Definitely; Client brand changed to 'fml,forge'
Type: Client (map_client.txt)
Resource Pack: Default
Current Language: English (US)
Profiler Position: N/A (disabled)
Vec3 Pool Size: ~~ERROR~~ NullPointerException: null
This very much annoys me because your addon sounds awesome but from this it might not work. I am using the Experamental 1.6.4 IC2, in case that makes any difference. (Also using the version of your addon for that :/)
karelmikie3 #131
Posted 22 November 2013 - 05:17 PM
I am having an issue with the mod, as soon as it is installed I run Minecraft… to no avail… I did manage to get a crash log though!
Spoiler—- Minecraft Crash Report —-
// There are four lights!
Time: 11/19/13 9:52 AM
Description: Initializing game
java.lang.NoClassDefFoundError: gopheratl/biolock/common/RecipeResetProgrammable
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at cpw.mods.fml.common.FMLModContainer.constructMod(FMLModContainer.java:462)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:74)
at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:45)
at com.google.common.eventbus.EventBus.dispatch(EventBus.java:313)
at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:296)
at com.google.common.eventbus.EventBus.post(EventBus.java:267)
at cpw.mods.fml.common.LoadController.sendEventToModContainer(LoadController.java:194)
at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:174)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:74)
at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:45)
at com.google.common.eventbus.EventBus.dispatch(EventBus.java:313)
at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:296)
at com.google.common.eventbus.EventBus.post(EventBus.java:267)
at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:105)
at cpw.mods.fml.common.Loader.loadMods(Loader.java:509)
at cpw.mods.fml.client.FMLClientHandler.beginMinecraftLoading(FMLClientHandler.java:183)
at net.minecraft.client.Minecraft.func_71384_a(Minecraft.java:472)
at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:807)
at net.minecraft.client.main.Main.main(SourceFile:101)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at net.minecraft.launchwrapper.Launch.launch(Launch.java:131)
at net.minecraft.launchwrapper.Launch.main(Launch.java:27)
Caused by: java.lang.ClassNotFoundException: gopheratl.biolock.common.RecipeResetProgrammable
at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:186)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
… 35 more
Caused by: java.lang.IncompatibleClassChangeError: Implementing class
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:178)
… 37 more

A detailed walkthrough of the error, its code path and all known details is as follows:
—————————————————————————————
– Head –
Stacktrace:
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at cpw.mods.fml.common.FMLModContainer.constructMod(FMLModContainer.java:462)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:74)
at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:45)
at com.google.common.eventbus.EventBus.dispatch(EventBus.java:313)
at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:296)
at com.google.common.eventbus.EventBus.post(EventBus.java:267)
at cpw.mods.fml.common.LoadController.sendEventToModContainer(LoadController.java:194)
at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:174)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:74)
at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:45)
at com.google.common.eventbus.EventBus.dispatch(EventBus.java:313)
at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:296)
at com.google.common.eventbus.EventBus.post(EventBus.java:267)
at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:105)
at cpw.mods.fml.common.Loader.loadMods(Loader.java:509)
at cpw.mods.fml.client.FMLClientHandler.beginMinecraftLoading(FMLClientHandler.java:183)
at net.minecraft.client.Minecraft.func_71384_a(Minecraft.java:472)
– Initialization –
Details:
Stacktrace:
at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:807)
at net.minecraft.client.main.Main.main(SourceFile:101)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at net.minecraft.launchwrapper.Launch.launch(Launch.java:131)
at net.minecraft.launchwrapper.Launch.main(Launch.java:27)
– System Details –
Details:
Minecraft Version: 1.6.4
Operating System: Windows 7 (x86) version 6.1
Java Version: 1.7.0_40, Oracle Corporation
Java VM Version: Java HotSpot™ Client VM (mixed mode, sharing), Oracle Corporation
Memory: 85058240 bytes (81 MB) / 185434112 bytes (176 MB) up to 518979584 bytes (494 MB)
JVM Flags: 2 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xmx512M
AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
Suspicious classes: FML and Forge are installed
IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
FML: MCP v8.11 FML v6.4.20.916 Minecraft Forge 9.11.1.916 30 mods loaded, 30 mods active
mcp{8.09} [Minecraft Coder Pack] (minecraft.jar) Unloaded->Constructed
FML{6.4.20.916} [Forge Mod Loader] (minecraftforge-9.11.1.916.jar) Unloaded->Constructed
Forge{9.11.1.916} [Minecraft Forge] (minecraftforge-9.11.1.916.jar) Unloaded->Constructed
Micdoodlecore{} [Micdoodle8 Core] (minecraft.jar) Unloaded->Constructed
BioLock{2.1.3} [BioLock] (BioLock_v2.1.3_1.6.2) Unloaded
BuildCraft|Core{4.1.2} [BuildCraft] (buildcraft-A-1.6.2-4.1.2.jar) Unloaded
BuildCraft|Builders{4.1.2} [BC Builders] (buildcraft-A-1.6.2-4.1.2.jar) Unloaded
BuildCraft|Energy{4.1.2} [BC Energy] (buildcraft-A-1.6.2-4.1.2.jar) Unloaded
BuildCraft|Factory{4.1.2} [BC Factory] (buildcraft-A-1.6.2-4.1.2.jar) Unloaded
BuildCraft|Transport{4.1.2} [BC Transport] (buildcraft-A-1.6.2-4.1.2.jar) Unloaded
BuildCraft|Silicon{4.1.2} [BC Silicon] (buildcraft-A-1.6.2-4.1.2.jar) Unloaded
IC2{2.0.260-experimental} [IndustrialCraft 2] (industrialcraft-2_1.117.921.jar) Unloaded
CompactWindmills{1.0.2.2} [CompactWindmills] (CompactWindmills+MC.1.6.4+v.1.0.2.2.jar) Unloaded
ComputerCraft{1.57} [ComputerCraft] (ComputerCraft1.57.zip) Unloaded
CCTurtle{1.57} [ComputerCraft Turtles] (ComputerCraft1.57.zip) Unloaded
CrossbowMod2{a0.1.6} [Crossbow Mod 2] (Crossbow-Mod-2-1.6.4-a0.1.6.33.jar) Unloaded
FlansMod{4.0.1} [Flans Mod] (FlansMod-4.0.1.jar) Unloaded
GalacticraftCore{2.0.6} [Galacticraft Core] (Galacticraft-1.6.4-2.0.6.895.jar) Unloaded
GalacticraftMars{2.0.6} [Galacticraft Mars] (Galacticraft-Planets-1.6.4-2.0.6.895.jar) Unloaded
Thaumcraft{4.0.4c} [Thaumcraft] (Thaumcraft4.0.4c.zip) Unloaded
Railcraft{8.2.0.0} [Railcraft] (Railcraft_1.6.2-8.2.0.0.jar) Unloaded
gregtech_addon{MC162} [GregTech-Addon] (gregtechmod.zip) Unloaded
IC2NuclearControl{1.6.2c} [Nuclear Control] (IC2NuclearControl-1.6.2c-ic2-experimental.zip) Unloaded
ImmibisCore{57.0.0} [Immibis Core] (immibis-core-57.0.0.jar) Unloaded
lantern{1.44} [Lantern mod] (Lantern1.44[1.6.4].zip) Unloaded
numina{0.0.1-17} [Numina] (Numina-1.6.2-0.0.1-17.jar) Unloaded
OpenPeripheral{0.2.1} [OpenPeripheral] (OpenPeripheral-0.2.1-preview8.jar) Unloaded
ForgeMultipart{1.0.0.191} [Forge Multipart] (ForgeMultipart-universal-1.6.4-1.0.0.191.jar) Unloaded
McMultipart{1.0.0.191} [Minecraft Multipart Plugin] (ForgeMultipart-universal-1.6.4-1.0.0.191.jar) Unloaded
ForgeMicroblock{1.0.0.191} [Forge Microblocks] (ForgeMultipart-universal-1.6.4-1.0.0.191.jar) Unloaded
Launched Version: 1.6.4-Forge9.11.1.916
LWJGL: 2.9.0
OpenGL: Intel® HD Graphics 3000 GL version 3.1.0 - Build 9.17.10.2932, Intel
Is Modded: Definitely; Client brand changed to 'fml,forge'
Type: Client (map_client.txt)
Resource Pack: Default
Current Language: English (US)
Profiler Position: N/A (disabled)
Vec3 Pool Size: ~~ERROR~~ NullPointerException: null
This very much annoys me because your addon sounds awesome but from this it might not work. I am using the Experamental 1.6.4 IC2, in case that makes any difference. (Also using the version of your addon for that :/)

i got exact the same!
mrgreaper #132
Posted 24 November 2013 - 12:38 PM
I am having an issue with the mod, as soon as it is installed I run Minecraft… to no avail… I did manage to get a crash log though!
Spoiler—- Minecraft Crash Report —-
// There are four lights!
Time: 11/19/13 9:52 AM
Description: Initializing game
java.lang.NoClassDefFoundError: gopheratl/biolock/common/RecipeResetProgrammable
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at cpw.mods.fml.common.FMLModContainer.constructMod(FMLModContainer.java:462)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:74)
at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:45)
at com.google.common.eventbus.EventBus.dispatch(EventBus.java:313)
at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:296)
at com.google.common.eventbus.EventBus.post(EventBus.java:267)
at cpw.mods.fml.common.LoadController.sendEventToModContainer(LoadController.java:194)
at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:174)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:74)
at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:45)
at com.google.common.eventbus.EventBus.dispatch(EventBus.java:313)
at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:296)
at com.google.common.eventbus.EventBus.post(EventBus.java:267)
at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:105)
at cpw.mods.fml.common.Loader.loadMods(Loader.java:509)
at cpw.mods.fml.client.FMLClientHandler.beginMinecraftLoading(FMLClientHandler.java:183)
at net.minecraft.client.Minecraft.func_71384_a(Minecraft.java:472)
at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:807)
at net.minecraft.client.main.Main.main(SourceFile:101)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at net.minecraft.launchwrapper.Launch.launch(Launch.java:131)
at net.minecraft.launchwrapper.Launch.main(Launch.java:27)
Caused by: java.lang.ClassNotFoundException: gopheratl.biolock.common.RecipeResetProgrammable
at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:186)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
… 35 more
Caused by: java.lang.IncompatibleClassChangeError: Implementing class
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:178)
… 37 more

A detailed walkthrough of the error, its code path and all known details is as follows:
—————————————————————————————
– Head –
Stacktrace:
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at cpw.mods.fml.common.FMLModContainer.constructMod(FMLModContainer.java:462)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:74)
at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:45)
at com.google.common.eventbus.EventBus.dispatch(EventBus.java:313)
at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:296)
at com.google.common.eventbus.EventBus.post(EventBus.java:267)
at cpw.mods.fml.common.LoadController.sendEventToModContainer(LoadController.java:194)
at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:174)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:74)
at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:45)
at com.google.common.eventbus.EventBus.dispatch(EventBus.java:313)
at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:296)
at com.google.common.eventbus.EventBus.post(EventBus.java:267)
at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:105)
at cpw.mods.fml.common.Loader.loadMods(Loader.java:509)
at cpw.mods.fml.client.FMLClientHandler.beginMinecraftLoading(FMLClientHandler.java:183)
at net.minecraft.client.Minecraft.func_71384_a(Minecraft.java:472)
– Initialization –
Details:
Stacktrace:
at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:807)
at net.minecraft.client.main.Main.main(SourceFile:101)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at net.minecraft.launchwrapper.Launch.launch(Launch.java:131)
at net.minecraft.launchwrapper.Launch.main(Launch.java:27)
– System Details –
Details:
Minecraft Version: 1.6.4
Operating System: Windows 7 (x86) version 6.1
Java Version: 1.7.0_40, Oracle Corporation
Java VM Version: Java HotSpot™ Client VM (mixed mode, sharing), Oracle Corporation
Memory: 85058240 bytes (81 MB) / 185434112 bytes (176 MB) up to 518979584 bytes (494 MB)
JVM Flags: 2 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xmx512M
AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
Suspicious classes: FML and Forge are installed
IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
FML: MCP v8.11 FML v6.4.20.916 Minecraft Forge 9.11.1.916 30 mods loaded, 30 mods active
mcp{8.09} [Minecraft Coder Pack] (minecraft.jar) Unloaded->Constructed
FML{6.4.20.916} [Forge Mod Loader] (minecraftforge-9.11.1.916.jar) Unloaded->Constructed
Forge{9.11.1.916} [Minecraft Forge] (minecraftforge-9.11.1.916.jar) Unloaded->Constructed
Micdoodlecore{} [Micdoodle8 Core] (minecraft.jar) Unloaded->Constructed
BioLock{2.1.3} [BioLock] (BioLock_v2.1.3_1.6.2) Unloaded
BuildCraft|Core{4.1.2} [BuildCraft] (buildcraft-A-1.6.2-4.1.2.jar) Unloaded
BuildCraft|Builders{4.1.2} [BC Builders] (buildcraft-A-1.6.2-4.1.2.jar) Unloaded
BuildCraft|Energy{4.1.2} [BC Energy] (buildcraft-A-1.6.2-4.1.2.jar) Unloaded
BuildCraft|Factory{4.1.2} [BC Factory] (buildcraft-A-1.6.2-4.1.2.jar) Unloaded
BuildCraft|Transport{4.1.2} [BC Transport] (buildcraft-A-1.6.2-4.1.2.jar) Unloaded
BuildCraft|Silicon{4.1.2} [BC Silicon] (buildcraft-A-1.6.2-4.1.2.jar) Unloaded
IC2{2.0.260-experimental} [IndustrialCraft 2] (industrialcraft-2_1.117.921.jar) Unloaded
CompactWindmills{1.0.2.2} [CompactWindmills] (CompactWindmills+MC.1.6.4+v.1.0.2.2.jar) Unloaded
ComputerCraft{1.57} [ComputerCraft] (ComputerCraft1.57.zip) Unloaded
CCTurtle{1.57} [ComputerCraft Turtles] (ComputerCraft1.57.zip) Unloaded
CrossbowMod2{a0.1.6} [Crossbow Mod 2] (Crossbow-Mod-2-1.6.4-a0.1.6.33.jar) Unloaded
FlansMod{4.0.1} [Flans Mod] (FlansMod-4.0.1.jar) Unloaded
GalacticraftCore{2.0.6} [Galacticraft Core] (Galacticraft-1.6.4-2.0.6.895.jar) Unloaded
GalacticraftMars{2.0.6} [Galacticraft Mars] (Galacticraft-Planets-1.6.4-2.0.6.895.jar) Unloaded
Thaumcraft{4.0.4c} [Thaumcraft] (Thaumcraft4.0.4c.zip) Unloaded
Railcraft{8.2.0.0} [Railcraft] (Railcraft_1.6.2-8.2.0.0.jar) Unloaded
gregtech_addon{MC162} [GregTech-Addon] (gregtechmod.zip) Unloaded
IC2NuclearControl{1.6.2c} [Nuclear Control] (IC2NuclearControl-1.6.2c-ic2-experimental.zip) Unloaded
ImmibisCore{57.0.0} [Immibis Core] (immibis-core-57.0.0.jar) Unloaded
lantern{1.44} [Lantern mod] (Lantern1.44[1.6.4].zip) Unloaded
numina{0.0.1-17} [Numina] (Numina-1.6.2-0.0.1-17.jar) Unloaded
OpenPeripheral{0.2.1} [OpenPeripheral] (OpenPeripheral-0.2.1-preview8.jar) Unloaded
ForgeMultipart{1.0.0.191} [Forge Multipart] (ForgeMultipart-universal-1.6.4-1.0.0.191.jar) Unloaded
McMultipart{1.0.0.191} [Minecraft Multipart Plugin] (ForgeMultipart-universal-1.6.4-1.0.0.191.jar) Unloaded
ForgeMicroblock{1.0.0.191} [Forge Microblocks] (ForgeMultipart-universal-1.6.4-1.0.0.191.jar) Unloaded
Launched Version: 1.6.4-Forge9.11.1.916
LWJGL: 2.9.0
OpenGL: Intel® HD Graphics 3000 GL version 3.1.0 - Build 9.17.10.2932, Intel
Is Modded: Definitely; Client brand changed to 'fml,forge'
Type: Client (map_client.txt)
Resource Pack: Default
Current Language: English (US)
Profiler Position: N/A (disabled)
Vec3 Pool Size: ~~ERROR~~ NullPointerException: null
This very much annoys me because your addon sounds awesome but from this it might not work. I am using the Experamental 1.6.4 IC2, in case that makes any difference. (Also using the version of your addon for that :/)

exact same error for me too (forge 953 in my case though)
MrabEzreb #133
Posted 28 November 2013 - 04:14 PM
I am having an issue with the mod, as soon as it is installed I run Minecraft… to no avail… I did manage to get a crash log though!
Spoiler—- Minecraft Crash Report —-
// There are four lights!
Time: 11/19/13 9:52 AM
Description: Initializing game
java.lang.NoClassDefFoundError: gopheratl/biolock/common/RecipeResetProgrammable
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at cpw.mods.fml.common.FMLModContainer.constructMod(FMLModContainer.java:462)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:74)
at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:45)
at com.google.common.eventbus.EventBus.dispatch(EventBus.java:313)
at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:296)
at com.google.common.eventbus.EventBus.post(EventBus.java:267)
at cpw.mods.fml.common.LoadController.sendEventToModContainer(LoadController.java:194)
at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:174)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:74)
at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:45)
at com.google.common.eventbus.EventBus.dispatch(EventBus.java:313)
at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:296)
at com.google.common.eventbus.EventBus.post(EventBus.java:267)
at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:105)
at cpw.mods.fml.common.Loader.loadMods(Loader.java:509)
at cpw.mods.fml.client.FMLClientHandler.beginMinecraftLoading(FMLClientHandler.java:183)
at net.minecraft.client.Minecraft.func_71384_a(Minecraft.java:472)
at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:807)
at net.minecraft.client.main.Main.main(SourceFile:101)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at net.minecraft.launchwrapper.Launch.launch(Launch.java:131)
at net.minecraft.launchwrapper.Launch.main(Launch.java:27)
Caused by: java.lang.ClassNotFoundException: gopheratl.biolock.common.RecipeResetProgrammable
at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:186)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
… 35 more
Caused by: java.lang.IncompatibleClassChangeError: Implementing class
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:178)
… 37 more

A detailed walkthrough of the error, its code path and all known details is as follows:
—————————————————————————————
– Head –
Stacktrace:
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at cpw.mods.fml.common.FMLModContainer.constructMod(FMLModContainer.java:462)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:74)
at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:45)
at com.google.common.eventbus.EventBus.dispatch(EventBus.java:313)
at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:296)
at com.google.common.eventbus.EventBus.post(EventBus.java:267)
at cpw.mods.fml.common.LoadController.sendEventToModContainer(LoadController.java:194)
at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:174)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:74)
at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:45)
at com.google.common.eventbus.EventBus.dispatch(EventBus.java:313)
at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:296)
at com.google.common.eventbus.EventBus.post(EventBus.java:267)
at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:105)
at cpw.mods.fml.common.Loader.loadMods(Loader.java:509)
at cpw.mods.fml.client.FMLClientHandler.beginMinecraftLoading(FMLClientHandler.java:183)
at net.minecraft.client.Minecraft.func_71384_a(Minecraft.java:472)
– Initialization –
Details:
Stacktrace:
at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:807)
at net.minecraft.client.main.Main.main(SourceFile:101)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at net.minecraft.launchwrapper.Launch.launch(Launch.java:131)
at net.minecraft.launchwrapper.Launch.main(Launch.java:27)
– System Details –
Details:
Minecraft Version: 1.6.4
Operating System: Windows 7 (x86) version 6.1
Java Version: 1.7.0_40, Oracle Corporation
Java VM Version: Java HotSpot™ Client VM (mixed mode, sharing), Oracle Corporation
Memory: 85058240 bytes (81 MB) / 185434112 bytes (176 MB) up to 518979584 bytes (494 MB)
JVM Flags: 2 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xmx512M
AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
Suspicious classes: FML and Forge are installed
IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
FML: MCP v8.11 FML v6.4.20.916 Minecraft Forge 9.11.1.916 30 mods loaded, 30 mods active
mcp{8.09} [Minecraft Coder Pack] (minecraft.jar) Unloaded->Constructed
FML{6.4.20.916} [Forge Mod Loader] (minecraftforge-9.11.1.916.jar) Unloaded->Constructed
Forge{9.11.1.916} [Minecraft Forge] (minecraftforge-9.11.1.916.jar) Unloaded->Constructed
Micdoodlecore{} [Micdoodle8 Core] (minecraft.jar) Unloaded->Constructed
BioLock{2.1.3} [BioLock] (BioLock_v2.1.3_1.6.2) Unloaded
BuildCraft|Core{4.1.2} [BuildCraft] (buildcraft-A-1.6.2-4.1.2.jar) Unloaded
BuildCraft|Builders{4.1.2} [BC Builders] (buildcraft-A-1.6.2-4.1.2.jar) Unloaded
BuildCraft|Energy{4.1.2} [BC Energy] (buildcraft-A-1.6.2-4.1.2.jar) Unloaded
BuildCraft|Factory{4.1.2} [BC Factory] (buildcraft-A-1.6.2-4.1.2.jar) Unloaded
BuildCraft|Transport{4.1.2} [BC Transport] (buildcraft-A-1.6.2-4.1.2.jar) Unloaded
BuildCraft|Silicon{4.1.2} [BC Silicon] (buildcraft-A-1.6.2-4.1.2.jar) Unloaded
IC2{2.0.260-experimental} [IndustrialCraft 2] (industrialcraft-2_1.117.921.jar) Unloaded
CompactWindmills{1.0.2.2} [CompactWindmills] (CompactWindmills+MC.1.6.4+v.1.0.2.2.jar) Unloaded
ComputerCraft{1.57} [ComputerCraft] (ComputerCraft1.57.zip) Unloaded
CCTurtle{1.57} [ComputerCraft Turtles] (ComputerCraft1.57.zip) Unloaded
CrossbowMod2{a0.1.6} [Crossbow Mod 2] (Crossbow-Mod-2-1.6.4-a0.1.6.33.jar) Unloaded
FlansMod{4.0.1} [Flans Mod] (FlansMod-4.0.1.jar) Unloaded
GalacticraftCore{2.0.6} [Galacticraft Core] (Galacticraft-1.6.4-2.0.6.895.jar) Unloaded
GalacticraftMars{2.0.6} [Galacticraft Mars] (Galacticraft-Planets-1.6.4-2.0.6.895.jar) Unloaded
Thaumcraft{4.0.4c} [Thaumcraft] (Thaumcraft4.0.4c.zip) Unloaded
Railcraft{8.2.0.0} [Railcraft] (Railcraft_1.6.2-8.2.0.0.jar) Unloaded
gregtech_addon{MC162} [GregTech-Addon] (gregtechmod.zip) Unloaded
IC2NuclearControl{1.6.2c} [Nuclear Control] (IC2NuclearControl-1.6.2c-ic2-experimental.zip) Unloaded
ImmibisCore{57.0.0} [Immibis Core] (immibis-core-57.0.0.jar) Unloaded
lantern{1.44} [Lantern mod] (Lantern1.44[1.6.4].zip) Unloaded
numina{0.0.1-17} [Numina] (Numina-1.6.2-0.0.1-17.jar) Unloaded
OpenPeripheral{0.2.1} [OpenPeripheral] (OpenPeripheral-0.2.1-preview8.jar) Unloaded
ForgeMultipart{1.0.0.191} [Forge Multipart] (ForgeMultipart-universal-1.6.4-1.0.0.191.jar) Unloaded
McMultipart{1.0.0.191} [Minecraft Multipart Plugin] (ForgeMultipart-universal-1.6.4-1.0.0.191.jar) Unloaded
ForgeMicroblock{1.0.0.191} [Forge Microblocks] (ForgeMultipart-universal-1.6.4-1.0.0.191.jar) Unloaded
Launched Version: 1.6.4-Forge9.11.1.916
LWJGL: 2.9.0
OpenGL: Intel® HD Graphics 3000 GL version 3.1.0 - Build 9.17.10.2932, Intel
Is Modded: Definitely; Client brand changed to 'fml,forge'
Type: Client (map_client.txt)
Resource Pack: Default
Current Language: English (US)
Profiler Position: N/A (disabled)
Vec3 Pool Size: ~~ERROR~~ NullPointerException: null
This very much annoys me because your addon sounds awesome but from this it might not work. I am using the Experimental 1.6.4 IC2, in case that makes any difference. (Also using the version of your addon for that :/)
I don't know why but I wasn't thinking and said that I had the Experimental 1.6.4 IC2, I forgot that this was a CC addon :P/> I thought it was an IC2 addon when I wrote that. MrabEzreb (<–STUPID)
Promminne #134
Posted 03 December 2013 - 11:07 AM
I am having an issue with the mod, as soon as it is installed I run Minecraft… to no avail… I did manage to get a crash log though!
Spoiler—- Minecraft Crash Report —-
// There are four lights!
Time: 11/19/13 9:52 AM
Description: Initializing game
java.lang.NoClassDefFoundError: gopheratl/biolock/common/RecipeResetProgrammable
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at cpw.mods.fml.common.FMLModContainer.constructMod(FMLModContainer.java:462)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:74)
at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:45)
at com.google.common.eventbus.EventBus.dispatch(EventBus.java:313)
at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:296)
at com.google.common.eventbus.EventBus.post(EventBus.java:267)
at cpw.mods.fml.common.LoadController.sendEventToModContainer(LoadController.java:194)
at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:174)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:74)
at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:45)
at com.google.common.eventbus.EventBus.dispatch(EventBus.java:313)
at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:296)
at com.google.common.eventbus.EventBus.post(EventBus.java:267)
at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:105)
at cpw.mods.fml.common.Loader.loadMods(Loader.java:509)
at cpw.mods.fml.client.FMLClientHandler.beginMinecraftLoading(FMLClientHandler.java:183)
at net.minecraft.client.Minecraft.func_71384_a(Minecraft.java:472)
at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:807)
at net.minecraft.client.main.Main.main(SourceFile:101)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at net.minecraft.launchwrapper.Launch.launch(Launch.java:131)
at net.minecraft.launchwrapper.Launch.main(Launch.java:27)
Caused by: java.lang.ClassNotFoundException: gopheratl.biolock.common.RecipeResetProgrammable
at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:186)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
… 35 more
Caused by: java.lang.IncompatibleClassChangeError: Implementing class
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:178)
… 37 more

A detailed walkthrough of the error, its code path and all known details is as follows:
—————————————————————————————
– Head –
Stacktrace:
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at cpw.mods.fml.common.FMLModContainer.constructMod(FMLModContainer.java:462)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:74)
at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:45)
at com.google.common.eventbus.EventBus.dispatch(EventBus.java:313)
at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:296)
at com.google.common.eventbus.EventBus.post(EventBus.java:267)
at cpw.mods.fml.common.LoadController.sendEventToModContainer(LoadController.java:194)
at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:174)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:74)
at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:45)
at com.google.common.eventbus.EventBus.dispatch(EventBus.java:313)
at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:296)
at com.google.common.eventbus.EventBus.post(EventBus.java:267)
at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:105)
at cpw.mods.fml.common.Loader.loadMods(Loader.java:509)
at cpw.mods.fml.client.FMLClientHandler.beginMinecraftLoading(FMLClientHandler.java:183)
at net.minecraft.client.Minecraft.func_71384_a(Minecraft.java:472)
– Initialization –
Details:
Stacktrace:
at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:807)
at net.minecraft.client.main.Main.main(SourceFile:101)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at net.minecraft.launchwrapper.Launch.launch(Launch.java:131)
at net.minecraft.launchwrapper.Launch.main(Launch.java:27)
– System Details –
Details:
Minecraft Version: 1.6.4
Operating System: Windows 7 (x86) version 6.1
Java Version: 1.7.0_40, Oracle Corporation
Java VM Version: Java HotSpot™ Client VM (mixed mode, sharing), Oracle Corporation
Memory: 85058240 bytes (81 MB) / 185434112 bytes (176 MB) up to 518979584 bytes (494 MB)
JVM Flags: 2 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xmx512M
AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
Suspicious classes: FML and Forge are installed
IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
FML: MCP v8.11 FML v6.4.20.916 Minecraft Forge 9.11.1.916 30 mods loaded, 30 mods active
mcp{8.09} [Minecraft Coder Pack] (minecraft.jar) Unloaded->Constructed
FML{6.4.20.916} [Forge Mod Loader] (minecraftforge-9.11.1.916.jar) Unloaded->Constructed
Forge{9.11.1.916} [Minecraft Forge] (minecraftforge-9.11.1.916.jar) Unloaded->Constructed
Micdoodlecore{} [Micdoodle8 Core] (minecraft.jar) Unloaded->Constructed
BioLock{2.1.3} [BioLock] (BioLock_v2.1.3_1.6.2) Unloaded
BuildCraft|Core{4.1.2} [BuildCraft] (buildcraft-A-1.6.2-4.1.2.jar) Unloaded
BuildCraft|Builders{4.1.2} [BC Builders] (buildcraft-A-1.6.2-4.1.2.jar) Unloaded
BuildCraft|Energy{4.1.2} [BC Energy] (buildcraft-A-1.6.2-4.1.2.jar) Unloaded
BuildCraft|Factory{4.1.2} [BC Factory] (buildcraft-A-1.6.2-4.1.2.jar) Unloaded
BuildCraft|Transport{4.1.2} [BC Transport] (buildcraft-A-1.6.2-4.1.2.jar) Unloaded
BuildCraft|Silicon{4.1.2} [BC Silicon] (buildcraft-A-1.6.2-4.1.2.jar) Unloaded
IC2{2.0.260-experimental} [IndustrialCraft 2] (industrialcraft-2_1.117.921.jar) Unloaded
CompactWindmills{1.0.2.2} [CompactWindmills] (CompactWindmills+MC.1.6.4+v.1.0.2.2.jar) Unloaded
ComputerCraft{1.57} [ComputerCraft] (ComputerCraft1.57.zip) Unloaded
CCTurtle{1.57} [ComputerCraft Turtles] (ComputerCraft1.57.zip) Unloaded
CrossbowMod2{a0.1.6} [Crossbow Mod 2] (Crossbow-Mod-2-1.6.4-a0.1.6.33.jar) Unloaded
FlansMod{4.0.1} [Flans Mod] (FlansMod-4.0.1.jar) Unloaded
GalacticraftCore{2.0.6} [Galacticraft Core] (Galacticraft-1.6.4-2.0.6.895.jar) Unloaded
GalacticraftMars{2.0.6} [Galacticraft Mars] (Galacticraft-Planets-1.6.4-2.0.6.895.jar) Unloaded
Thaumcraft{4.0.4c} [Thaumcraft] (Thaumcraft4.0.4c.zip) Unloaded
Railcraft{8.2.0.0} [Railcraft] (Railcraft_1.6.2-8.2.0.0.jar) Unloaded
gregtech_addon{MC162} [GregTech-Addon] (gregtechmod.zip) Unloaded
IC2NuclearControl{1.6.2c} [Nuclear Control] (IC2NuclearControl-1.6.2c-ic2-experimental.zip) Unloaded
ImmibisCore{57.0.0} [Immibis Core] (immibis-core-57.0.0.jar) Unloaded
lantern{1.44} [Lantern mod] (Lantern1.44[1.6.4].zip) Unloaded
numina{0.0.1-17} [Numina] (Numina-1.6.2-0.0.1-17.jar) Unloaded
OpenPeripheral{0.2.1} [OpenPeripheral] (OpenPeripheral-0.2.1-preview8.jar) Unloaded
ForgeMultipart{1.0.0.191} [Forge Multipart] (ForgeMultipart-universal-1.6.4-1.0.0.191.jar) Unloaded
McMultipart{1.0.0.191} [Minecraft Multipart Plugin] (ForgeMultipart-universal-1.6.4-1.0.0.191.jar) Unloaded
ForgeMicroblock{1.0.0.191} [Forge Microblocks] (ForgeMultipart-universal-1.6.4-1.0.0.191.jar) Unloaded
Launched Version: 1.6.4-Forge9.11.1.916
LWJGL: 2.9.0
OpenGL: Intel® HD Graphics 3000 GL version 3.1.0 - Build 9.17.10.2932, Intel
Is Modded: Definitely; Client brand changed to 'fml,forge'
Type: Client (map_client.txt)
Resource Pack: Default
Current Language: English (US)
Profiler Position: N/A (disabled)
Vec3 Pool Size: ~~ERROR~~ NullPointerException: null
This very much annoys me because your addon sounds awesome but from this it might not work. I am using the Experamental 1.6.4 IC2, in case that makes any difference. (Also using the version of your addon for that :/)
I investigated the problem and noticed the mod doesn't use SRG names. This makes it incompitable with any other Minecraft version than the one it was made for (MC 1.6.2). It is impossible to use the mod with MC 1.6.4 before we get an update.
PaintPauller #135
Posted 04 December 2013 - 10:38 AM
any chance we could get a update to 1.6.4 and CC 1.57. thanks and love the mod!
gamax92 #136
Posted 20 December 2013 - 07:44 PM
I would like to note that I have not gotten Gopher's permission to fix and port his peripherals but I hope that by doing this, it helps keep this mod alive and well.

Changes:
Typo in the crafting recipes fixed, PRB's are craftable.
Removed usage of RecipeResetProgrammable, Everything no longer crafts into a PRB.

Downloads:
MC 1.5.2
MC 1.6.2
MC 1.6.4 (Also works on 1.6.2)

Permission from Cloudy, IRC Logs:
Spoiler[00:45:03] <@Cloudy> what you patching, anything interesting?
[00:45:20] <gamax92> Cloudy: Gopher's peripherals so it works on 1.6.4.
[00:45:38] <@Cloudy> gamax92, was it n ever updated to 1.6.x?
[00:45:45] <gamax92> it only runs on 1.6.2
[00:45:49] <@Cloudy> ah
[00:45:52] <@Cloudy> you know you could just
[00:46:00] <@Cloudy> decompile it, recompile it with srg names?
[00:46:13] <gamax92> Cloudy: I did.

[00:45:55] <gamax92> Cloudy: (REMOVED) said he would be fine if I put a patch on the forums and not the actual zip.
[00:46:31] <@Cloudy> honestly, personally, I'd say just post the zip
[00:46:34] <@Cloudy> you're keeping his mod alive
[00:46:37] <@Cloudy> I know Gopher wouldn't mind
[00:46:49] <gamax92> Cloudy: Then you'll have to tell (REMOVED) to not bother me.
[00:46:58] <@Cloudy> gamax92, quote this log
Edited on 27 January 2014 - 03:48 PM
Nathan1852 #137
Posted 30 December 2013 - 08:35 AM
Does anyone else have problems with the prb in the 1.6.4 version from gamax?

Every time i try to use 'setOutput()' with only two arguments ('setOutput("top", true)') it returns lua:52:2
gamax92 #138
Posted 10 January 2014 - 04:25 PM
Hmm, I'll check that out when I get home, which will be in 2~3 hours.

I should note that the 1.6.4 version is based on the 1.5.2 code. Mainly because 1.6.2 wouldn't decompile properly at all. The 1.6.2 version I posted is a bytecode hack to effectively break RecipeResetProgrammable and fix the typo, so issues introduced from decompiling won't be there.

So, redid the 1.6.4 version using all of the 1.6.2 code, and it seems to have fixed the problem.
Just re-download the 1.6.4 link. Please test it, I've only done minimal testing: everything is craft-able, correct textures, biolock and keypad events.
Edited on 12 January 2014 - 09:15 AM
Nathan1852 #139
Posted 12 January 2014 - 09:03 AM
It seems like it is working now, thanks gamax :)/>
GopherAtl #140
Posted 18 February 2014 - 03:33 PM
gamax: consider yourself having my permission. I hopped on here today with finding someone interested in taking it over. pm me if you want the original source, it's several versions out of date at this point obviously but if you want, can has.
gamax92 #141
Posted 21 February 2014 - 11:51 PM
To prevent me from wasting more time I require on homework, and this isn't to say your work is a waste of time it's to say I waste my own time, I'll have to decline that offer. My current project is cclite and I'm already failing to maintain it due to homework, said issue, and lazyness.

Plus, I've taken a look at the whole rendering thing and it files over my head, someone with more experience would be more suited to the task. All I could do is maintain the existing code and at some point, froge is probably going to do some extreme change and I'll have no idea on how to keep up.
Edited on 21 February 2014 - 10:53 PM
GopherAtl #142
Posted 22 February 2014 - 01:11 AM
well, unless someone reports major issues with it, your port is gonna remain the official one for the latest version for a while yet at the least.
Dread Flint #143
Posted 28 March 2014 - 06:01 AM
Out of curiosity, is there a way to see if a code someone enters isn't a learned code? I'm trying to create a keypad locked door, where an alarm is set off after a certain amount of failed attempts. If there isn't a way right now, may I suggest it be included as an event or something in a future update?
Nathan1852 #144
Posted 28 March 2014 - 02:00 PM
Will there be a version for the new CC version? Just asking :)/>
GopherAtl #145
Posted 03 May 2014 - 02:04 AM
Sorry for the slow responses, guys..

Dread Flint, a code is just defined as any series of presses that is programmed into it, so it doesn't really make sense to talk about a code that's not known, just a series of key presses that don't add up to a code. The best way to do what you're wanting is to count the keypad key events, and reset that counter when a keypad code event is received. If the key press event counter gets too high, you can release the hounds (or whatever). You would want this count to be at least twice the length of the code, to allow for mistakes from legitimate players, probably a bit more than that. If you're wanting a way to program this behavior into the block so a computer doesn't have to be connected to manage it… no, that's not currently possible, and not likely to be, I'm afraid.

Nathan, yes, I'm gonna be porting this soon, but I've left it alone so long that it's gonna be a three-stage thing.

First, updating my own code base to mc 1.6.4 (reproducing what gamax did in my absence), and doing some overdue bugfixing directly to that version.
Second, updating that version to work with the latest CC, with it's API changes,
And lastly, porting to mc 1.7.

It's my intention to drop support for 1.5 versions of minecraft at this point (though when I'm done I'll do a test merge, see how much of a hassle it'll be, if it's trivial I may change my mind and release at least one more update for MC 1.52. No promises, tho. I'm not a fan of continuing to support mods for outdated versions, as I think it's detrimental to the game being modded when mod packs cause large chunks of the player community to use outdated versions of the game.)
Rougeminner #146
Posted 11 May 2014 - 04:08 AM
i think the keypads are failing to wrap to the computer (adv. computer)
Geforce Fan #147
Posted 17 May 2014 - 12:04 AM
lol. Well, mc people don't have fingers, or palms, so fistprints it is. As to how it extracts 192 unique bits of information from the 8x8 pixels on an mc character's fist, I have no explaination.
8x8xammountofcolorspossible
I'm pretty sure the amount of colors possible is something pretty crazy. It can definitely extract 192 unique bits of information for that reason.
Edited on 16 May 2014 - 10:04 PM
NYLoRD #148
Posted 03 June 2014 - 07:48 PM
Hello,

when can we expect an update?

MFG NYLoRD
jmang98 #149
Posted 09 June 2014 - 12:18 AM
gamax - what is the code you used for the elevator, i can't seem to figure it out. The setup of the elevator is the same, but i can't figure out the lua code of the thing. I have all of the mods you used and I still can't get it. Any help?
Edited on 09 June 2014 - 05:16 PM
jmang98 #150
Posted 11 June 2014 - 06:45 AM
I need help. I'm trying to write a code to emit redstone from the left side of the computer while pressing 2 on the keypad. it is a network peripheral, keypadlock_6, and i can get it to read that a button is pressed, but i can't set a specific button. Here is my code, any help? I'm not really a Lua pro, just kind of a beginner.


event = os.pullEvent()
if event=="keypad_button" then
   if keypad_button=="2" then
	  rs.setOutput("left", true)
	  sleep(8)
	  rs.setOutput("left", false)
   end
end
GopherAtl #151
Posted 11 June 2014 - 06:56 AM
if you only want keypad events, something like this:


--//by passing the event name to pullEvent, you'll wait until you get that event
local event,keypad,button = os.pullEvent("keypad_button")
if keypad_button=="2" then
  --do yer stuff here
end

if you need to handle different events in the same loop, just remove the "keypad_button" from the os.pullEvent call and add back the 'if event=="keypad_button" then' condition back like you had it
Edited on 11 June 2014 - 04:56 AM
Dog #152
Posted 11 June 2014 - 07:29 AM
Hey GopherAtl,

Shouldn't that second 'keypad_button' instead be 'button' for the variable check?


local event, keypad, button = os.pullEvent("keypad_button")
if button == "2" then
  -- do yer stuff here
end
Edited on 11 June 2014 - 05:48 PM
jmang98 #153
Posted 12 June 2014 - 12:10 AM
what about the same thing with the code 123 instead?
Link149 #154
Posted 12 June 2014 - 01:16 AM

function isCode123()
	local code
   
	for i = 0, 3 do
		local event, keypad, button = os.pullEvent("keypad_button")
	  
		code = (code or "") .. button
	end
   
	--# Returns true if code equals "123".
	return (code == "123")
end


EDIT1: Clarified the comment a bit.
EDIT2: Added the loop. My bad. :D/>
Edited on 12 June 2014 - 10:55 PM
GopherAtl #155
Posted 12 June 2014 - 05:18 AM
dog: yer right, used the var name from jmang98's code there by accident, will fix in the post.

link: ehrum. Yes, you could do something similar to that (though the code as posted would not work, the code variable is being reset every time you call the function). Or, if you're using the peripheral's learnCode function to program in the code "123" you can just pull a "keypad_code" event instead. The documentation in the original post covers the arguments for learnCode and the keypad_code event.
Edited on 12 June 2014 - 03:20 AM
Link149 #156
Posted 13 June 2014 - 12:54 AM
dog: yer right, used the var name from jmang98's code there by accident, will fix in the post.

link: ehrum. Yes, you could do something similar to that (though the code as posted would not work, the code variable is being reset every time you call the function). Or, if you're using the peripheral's learnCode function to program in the code "123" you can just pull a "keypad_code" event instead. The documentation in the original post covers the arguments for learnCode and the keypad_code event.

Oh right, I forgot the loop. o_O
Latusy #157
Posted 06 July 2014 - 02:37 AM
I think I screwed something up somehow.

Using Biolock v 2.1.3_1.6.4 with CC v 1.63, computers don't recognize biolocks, nor does the program appear in the default list. Adding it manually and attempting to interact with the lock simply results in, "No biolock on that side!" even though I have the proper side. How did I break it? :C
Lyqyd #158
Posted 06 July 2014 - 05:30 AM
I'd imagine it hasn't been updated for CC 1.63. The API ComputerCraft provides changed between the 1.58 and 1.63 builds. Try it with CC 1.58.
RapidEv #159
Posted 07 October 2014 - 02:29 PM
Is this mod is dead ?
norfair00 #160
Posted 17 October 2014 - 02:37 PM
The mod will be the update to 1.7.10

translate by google
Lyqyd #161
Posted 17 October 2014 - 03:41 PM
This mod isn't dead. I've got access to the source and plan to update it as best I can sometime soon.
norfair00 #162
Posted 19 October 2014 - 11:44 AM
Ok cool, very thanks
RapidEv #163
Posted 21 October 2014 - 01:27 AM
Thanks :)/>
I just love this mod, i tried to update it but… without the original code, i had some problems.
Cranium #164
Posted 21 October 2014 - 01:40 AM
This mod isn't dead. I've got access to the source and plan to update it as best I can sometime soon.
At least now you can use Minecraft's unique player ID instead of a randomly generated code for each player. Saves a lot of work I assume.
norfair00 #165
Posted 30 October 2014 - 08:52 PM
Where can I get the source code
theoriginalbit #166
Posted 31 October 2014 - 12:00 AM
Where can I get the source code
I do believe that it isn't open source.
norfair00 #167
Posted 31 October 2014 - 10:06 AM
Too bad I wanted to upgrade to a private modpack
Dog #168
Posted 11 November 2014 - 10:38 PM
After playing around with the Biolocks for quite a bit, I have a request for a future release…

Given the following setup:
1. A piston/drawbridge door (something that requires redstone signal to stay closed)
2. Biolocks on both sides of the door - one for each facing of the door.
3. Biolocks programmed with (<side>, 1, 60, true) - so they emit redstone constantly unless activated, then turn off for 3 seconds to 'open' the door

The problem is that since both Biolocks are emitting redstone, there is no way to open the door without activating both biolocks.

My request is for a two-faced Biolock so both sides of a door can be accessed with one biolock (thus resolving the two redstone input problem and allowing for more compact builds). Although I haven't played with the keypads, I'm guessing a 2-faced keypad would also offer the same benefits.

My apologies if there's an easy solution that I'm missing.

Thanks for the fun mod :)/>
Edited on 12 November 2014 - 06:24 AM
Smtgr14 #169
Posted 26 November 2014 - 02:44 PM
After playing around with the Biolocks for quite a bit, I have a request for a future release…

Given the following setup:
1. A piston/drawbridge door (something that requires redstone signal to stay closed)
2. Biolocks on both sides of the door - one for each facing of the door.
3. Biolocks programmed with (<side>, 1, 60, true) - so they emit redstone constantly unless activated, then turn off for 3 seconds to 'open' the door

The problem is that since both Biolocks are emitting redstone, there is no way to open the door without activating both biolocks.

My request is for a two-faced Biolock so both sides of a door can be accessed with one biolock (thus resolving the two redstone input problem and allowing for more compact builds). Although I haven't played with the keypads, I'm guessing a 2-faced keypad would also offer the same benefits.

My apologies if there's an easy solution that I'm missing.

Thanks for the fun mod :)/>
You could simply connect the bio locks to a computer and use the computer to control the door. Additionally, this method keeps the door closed if someone breaks the bio locks and allows you to set up some kind of server validation if you wish along with easy granting and revoking of access to individual users.
Dog #170
Posted 26 November 2014 - 04:27 PM
Smtgr14, thank you for the suggestions, but the biolocks already have user validation, access levels, and redstone output programming built in (if you haven't, read the OP for all the features, including password protection) - one of the reasons for using them is so that you don't have to have a computer at every door. Adding a computer to each door wouldn't solve the problem of people breaking biolocks, because they could just as easily break the computer or door as well. As for granting/revoking access privileges, I have a program pretty much finished, just for that very thing with the biolocks; but it's not worth releasing until I have a solution to the dual-input issue since regular doors are so easy to bypass.
Edited on 26 November 2014 - 09:27 PM
GopherAtl #171
Posted 02 January 2015 - 08:08 AM
Sorry I haven't made time to keep this updated anymore; since I don't see myself updating this any time soon, I've decided to make the github repo public. It can be found here. Lyqyd already has full access to this repo, if he has the time/interest any updated versions he chooses to release will be official, regardless anyone else is free to fork the repo and make changes, fixes, etc. as desired. I apologize that the repo is kind of a mess, as I was rather inconsistent in my use of git during pretty much the entire development process.
jmang98 #172
Posted 28 February 2015 - 02:44 AM
Can someone please send me an updated link for the repo, or the repo in general? the link is broken and I'd like to dabble a bit. Thanks in advance
Dog #173
Posted 04 March 2015 - 08:52 PM
Lyqyd, with the repo gone do you still have the source and are you still considering updating this at some point?
Lyqyd #174
Posted 04 March 2015 - 10:12 PM
I do, and Gopher has himself been poking at this recently. I'll whack away at getting it updated again if he doesn't still feel like working on it. I had made a start into it before Gopher started poking at it again, but nothing that would have built successfully yet.
GopherAtl #175
Posted 06 March 2015 - 11:38 AM
derp, sorry, I forgot to update here, and didn't notice the activity because the forum decided, back when I started this thread, that I just shouldn't be aIlowed to follow it. I click follow thread, and I get the little green message that it's talking to the server, and then… nothing. It's very annoying.

Anyway, re: the repo, I ended up changing the repo settings again because, on investigation, I found that the repo was in a basically unusable state, missing essential code that wasn't included in the repo, and containing code that was even more outdated than the last official release. This has been fixed now, though, and I just didn't think to make it public again. It is now accessible, url hasn't changed.

A secondary reason I had made it non-public is that I was considering not just updating, but doing a near-complete rewrite for 1.8; I'm not sure if that's actually going to happen, though, it's just an idea I've been kicking around. Even if it does happen, it would be months, at least, before I have a release of that overhauled version ready, and beyond setting up a 1.8 dev environment, I haven't even started such a project yet, because there's just other things I'd rather be working on right now. If that changes, I'll let everyone know here.
Lyqyd #176
Posted 06 March 2015 - 03:53 PM
With that clarified, I'll keep poking at it as I have time/motivation. I'll upload my current progress to the repo tonight so we don't have a duplication of effort. The missing code is also an issue that has to be worked around, and it's something that's going to take some non-trivial effort to do.

Edit: the progress I've been making has been toward a 1.7.10/gradle changeover, which could then be an easier starting point for updating to 1.8.
GopherAtl #177
Posted 06 March 2015 - 04:02 PM
gopherCore is in the repo now tho, isn't it? So no more missing code…
Dog #178
Posted 06 March 2015 - 05:22 PM
Thanks for the update and for all your work on this…both of you :)/>
Lyqyd #179
Posted 06 March 2015 - 05:33 PM
gopherCore is in the repo now tho, isn't it? So no more missing code…

Oh, is it? If so, great! I had been under the impression that you hadn't been able to find it. That'll be very helpful if it is.
GopherAtl #180
Posted 06 March 2015 - 05:37 PM
gopherCore is in the repo now tho, isn't it? So no more missing code…

Oh, is it? If so, great! I had been under the impression that you hadn't been able to find it. That'll be very helpful if it is.

wat? I put it up in gopheratl/biolock2, gave you access, you the one who merged it and committed it back to the Biolock repo. Guess you didn't even notice at the time, but I thoguht that was half the point of me making the biolock2 repo XD
Lyqyd #181
Posted 06 March 2015 - 05:42 PM
Yep, that would've been, no idea how/why I don't remember that.
GopherAtl #182
Posted 18 March 2015 - 05:52 PM
Lyqyd and I have been busy the last week, and there's a prerelease of v2.2 for mc 1.7.10 finally ready. All known bugs have been fixed, but there may be more lurking around yet to be uncovered; if anyone tests it and finds any issues, please report them here, either in the thread or on the github repo

download link: BioLock v2.2.pr1 for Minecraft 1.7.10
I've only tested it with cc 1.73, if there have been api changes lately, it may not work with older, but if yer not using 1.73, you should be, all earlier 1.7.10-compatible versions have crucial issues.
Lyqyd #183
Posted 18 March 2015 - 05:59 PM
My earlier beta builds were functional with CC1.65 (I really need to get around to updating my test instance), so this should work with 1.63+, unless major breaking changes happened since I last tested a build. But 1.73 really is the place to be anyway!

Funny enough, I was considering posting an update on the topic earlier in the day, but hadn't had an opportunity to. :P/>
GopherAtl #184
Posted 18 March 2015 - 06:04 PM
well, I'd finished fixing PRBs, did some other tweaking, and while I still want to do more thorough testing, it seems ready for a PR on the off chance anyone else wants to give it a test-run.
Dog #185
Posted 19 March 2015 - 01:19 AM
Woot! FWIW, biolocks seem to be working as expected. Thanks to both of you :)/>
MittonsMadness #186
Posted 02 October 2015 - 08:35 AM
Trying to create a program to open a door using the bioscanner. i found a basic GUI program for the scanner, using the program "BioPup", used for ccDialer and associated programs with SGcraft
Is there a way to program access protocols using previously mentioned "BioPup"
For example, I can use the program to record and manage profiles and their associated "punchprints" but I dont know how to get the computer to respond to the attached scanner using "biopup" as the access requirement directory
any ideas or hints?

BioPup : http://pastebin.com/H8LKg8kS
Dog #187
Posted 02 October 2015 - 09:13 PM
I'm not sure what you mean by 'using "biopup" as the access requirement directory' - can you please elaborate? FWIW, BioPup is just for programming the scanners - once the scanners are programmed you shouldn't need BioPup any further - from that point your program would look for biolock events and act on the data received from those events. To capture the events you would do it like so…

local event, idPrint, attachName, userName, accessLevel = os.pullEvent("biolock")

event captures the event being pulled - in this case, "biolock"
idPrint is the unique id returned when a user swipes a scanner
attachName is the side the scanner is attached to, or the name of the scanner if it is attached via modem/network cable
userName is the programmed name for the user - I believe this will be nil if the user isn't added to the scanner
accessLevel is the assigned access level of the user (1-5) - I believe this will be nil if the user isn't added to the scanner
MittonsMadness #188
Posted 06 October 2015 - 07:46 AM
ill elaborate
I have a litttle system set up like so:

Scanner => Computer Unit(biopup program installed) => door

what I am trying to do is use the scanner to open the door without going through the whole individual code input, as well as add more authorized persons to the access list

the scanner reads the punchprint,= then the computer gets the ok from the profile on the installed software and sends redstone to open door to the right

forgive the confusing use of lingo in prior post :)/>
Dog #189
Posted 06 October 2015 - 04:46 PM
OK, just to reiterate - BioPup is only for programming the Biolocks - it doesn't hold any information itself. After you've programmed the Biolocks with BioPup you would normally need a program to capture the biolock events and make use of them. In your case, you could actually skip the program and directly program the Biolock to do what you want.

For this to work, set it up like so:
Computer => Scanner => Door

On the computer type lua (all lower case) then press enter. At the prompt type the following:

scanner = peripheral.wrap("right")
scanner.program("right", 1, 60, true)

- In the peripheral.wrap statement, replace "right" with the side of the computer the scanner is on (make sure it's in quotes)
- For the scanner program line, the following applies:
- Replace "right" with the side the door is on
- Replace 1 with the access level you want to access the door (e.g. if you set it to 2 then only people with access level 2 and above will be able to open the door)
- Replace 60 with the number of ticks you want the door to remain open (20 ticks/ second)

After you have programmed the scanner, type exit() to exit the Lua prompt and return to the shell.

This will allow the scanner itself to open the door for authorized users without requiring a special program (except BioPup for adding/removing users).
Edited on 06 October 2015 - 02:49 PM
LHman97 #190
Posted 31 October 2015 - 09:58 PM
Hi is there any documentation for how to use them? I dont have the best understanding of computercraft really but i was wondering if you had any documentation i could use. I can work from programs that people have written if anyone has any they would like to give me? :)/> Thanks
Dog #191
Posted 01 November 2015 - 03:03 AM
The only documentation I'm aware of is in the OP - that's what I work of off.
Dog #192
Posted 31 January 2016 - 05:02 PM
Any plans for an update to CC 1.78 / MC 1.8.9?
nidico100 #193
Posted 18 April 2016 - 03:14 PM
I will include your mod in my modpack :)/> it's such a great mod
The modpack is called The New World, for more infos, just text me.
Aaronstar #194
Posted 18 September 2017 - 04:21 PM
do you have a version for 1.10.2?
Edited on 18 September 2017 - 02:22 PM
Dog #195
Posted 18 September 2017 - 04:45 PM
As there was no official release of CC for 1.10.2 I doubt there will be a build of this mod for 1.10.2. If we're lucky we might get a build for 1.12 now that CC is in PR for 1.12; but, based on the lack of replies to previous posts, I'm guessing this mod is no longer being developed.
Edited on 18 September 2017 - 02:46 PM