This plugin is an update of Sunrise's original controllerblock. Since he hadn't been on to update it in nearly a month, I decided to update it myself. Should he return I will gladly return control of the plugin to him. NOTE: Update is for SMP only, I may update the SSP version in the future, but I'm still working on getting bugs out of this one and adding a few new/better features. (Downloads are at the end of this post)
Purpose:
This plugin allows players to create blocks that will change when another block is powered. This can be useful for traps, bridges, gates, stairs and numerous other things.
Glossary: Rune: A rune is a group of blocks place on the ground in a specific pattern that perform some function for a mod Controller Block: A controller block is a block that controls the states of changing blocks based on redstone input Changing Block: A changing block is a block who's state is changed when the corresponding controller block receives/loses power Changing Block Placeholder: This is a block that designates where a changing block will be when setting up a controller block State: This refers to a changing block being either on or off, or a controller block being either on, off or broken. A controller block is on when it has power, and off when it doesn't. A changing block is on when the corresponding controller block has power, and off when it does not. Controller block state is identified by an iron block (off), a gold block (on), or a gravel block (broken). Stable Build: This refers to latest official build of the plugin. It is designated by the first three numbers, and the last two numbers will always be 0 (X.X.X00) Unstable Build: This refers to the latest build, and is changed every time I recompile the plugin. Using this version is not recommended unless you are helping me test features. It is designated by the final 2 numbers, and the first 3 will always be the same as those from the last stable build (_._._XX) Updatr: This is a program/plugin that allows server admins to easily update the plugins for their servers. It can be found here
How to create and use a ControllerBlock: 1) You need permission use the /ControllerBlock command. NOTE: You never need to type the command, you only need the permission. 2) Once you have permission, you start by creating the rune below:
TRT
RIR
TRT
T=torch, R=redstone dust, and I=iron block
3) After the rune is laid out, click to the top of the iron block. If you did everything right, you should receive the message "ControllerBlock built, you can set the ChangingBlocks", and the torches and redstone will be removed. 4) The next step is placing the changing block placeholders (a max of 25/controller). To do this you need to
...A) Put a block in at least one of the two far right quickbar slots of your inventory. The farthest right slot is the block that will be used when the controller block has no power (is off), and the one next to it is the block that will be used when the controller block has power (is on)
...:cool.gif: Have a stick in your hand
...C) Left-click the location where you want the changing block to be placed.
...D) You should either receive an error message, or a snow block should be placed. This is a changing block placeholder. 5) Once you've placed all of the placeholders you want, left-click the top of the iron block again. You should receive the message "ControllerBlock set" NOTE: It's currently not displaying the message. I haven't gotten to look into the problem yet. 6) Put a redstone wire on top of the controller block NOTE: It must be powered from the top for right now. There are a few hooks missing from hmod that have made me (and sunrise before me) hold off on side/bottom powered controller blocks. 7) Add power to the controller block to turn the controller block on and remove it to turn the controller block off.
Video Tutorial:
Made by: Mr_Bones from the hey0 forums
Additional Information:
-Damaging/changing any of the changing blocks after activating a controller block will alter them in the datafile the next time the controllerblock changes state. NOTE: If both states of a changing block end up as air, it will be removed from the controllerblock, and further alterations will be ignored
-Clicking the controllerblock after it has been set will bring you back to the setup mode, allowing you to change the locations/contents of the changing blocks
-Attempts to change state within 3 miliseconds of the last attempt will be ignored (to prevent endless loops)
-Known blocks that don't work as changing blocks:
...All item blocks (I am working on fixing reeds and redstone dust)
...Ladders (will work on fixing these)
...Signs (I might work on fixing these)
...Doors (I probably won't work on fixing these)
...Levers, buttons and pressure plates (They work in some situations, but not all)
-A fair number of variables can be changed in the settings file (created after first run). NOTE: Right now there are issues with both the maxCB and maxCBDist variables. MaxCB has a limit that I have yet to determine. MaxCBDist doesn't limit the distance a changing block can be from it's controller block like it should, and breaks a lot of functionality when it's changed. All of the other variables should work fine, see settings file for details on each variable.
Changes in 3.5.000+:
AutoEdit added
ClickEdit added
Snowballs no longer drop when placeholder blocks are destroyed with a shovel
Iron drops instead of gold when controller block is destroyed while powered
Changes in 3.4.000+:
Settings file added
Fixed various bugs and typos
Added some messages
Attempted to fix redstone dust and reeds...failed miserably
Updated to use build 132 of hmod
To Do List:
1) Fix any bugs I created
2) Make plugin work with MoveCraft (possibly)
3) Fix maxCB and maxCBDist settings
4) Create method to change the number of slots existing controllerblocks have to allow adjusting of max changing blocks without removing existing controllerblocks first.
5) Make controller block drop iron block when destroyed while powered instead of gold block
6) Prevent changing block from dropping snow when destroyed with shovel
7) Remove breaking controller block feature and replace it with a feature that edits the controller block instead
8) Add a left-click activated editing mode for controller blocks
Video examples:
*RESERVED*
Special thanks to:
Sunrise: For making the original version of this plugin
faxanidu: For helping with bugs, helping with other players, and helping convince me to update the mod
RustyDagger: Helping find bugs, helping out other players, and helping convince me to update the mod
KevGraf94: For helping find bugs.
Mufa: For hosting the SMP server that I play on (even if you are a pain to deal with most of the time :smile.gif: )
Everyone else: For using this plugin, asking questions, finding bugs, and making suggestions.
I am really thankful for this, I mean honestly this mod was so awesome but I realized It was to late to use it on me and my pals server, we can finally do it thanks to you!
@Vishavs: I was having that problem, too. But once I put everything on the ground, it was fine.
I'm trying to load a world saved in 1.2.6 SSP into an hMod 132b server with this plugin.
Tested, got the plugin working in the server.
Whittling down my 1.2.6 mods to make double sure the world doesn't require anything else
When I start the hMod server, I'm getting:
2010-12-27 23:27:17 [SEVERE] Unexpected exception
java.lang.NullPointerException
at ex.c(SourceFile:103)
at fx.a(SourceFile:158)
at fx.a(SourceFile:129)
at fx.b(SourceFile:93)
at fx.a(SourceFile:64)
at fx.a(SourceFile:37)
at fx.a(SourceFile:26)
at ff.a(SourceFile:1660)
at hz.c(SourceFile:70)
at lc.G(lc.java:573)
at lc.b_(lc.java:191)
at ff.a(SourceFile:1072)
at fm.a(SourceFile:37)
at ff.f(SourceFile:1048)
at ff.c(SourceFile:1027)
at net.minecraft.server.MinecraftServer.h(SourceFile:274)
at net.minecraft.server.MinecraftServer.run(SourceFile:216)
at cj.run(SourceFile:490)
I did a lookup in the MCP spreadsheet trying to resolve it to the best of my ability, and the ex class handles TileEntitySpecialRenderer.
My guess is that it's trying to load the tile(s) and crashing, but without a proper decompiled source, I can't tell what's on line 103, so I can't even tell what's going on.
This is quite obscure, but any assistance rendered (by anyone) would be most welcome.
@Vishavs: The /controllerblock command isn't used ingame. It's just used as a way to give permission to use the plugin. Place the blocks onto the ground and click the top of the iron block.
@SycoPrime: The old SSP version used a different data structure and custom block ids, so copying a ssp world to a smp server won't work. Sorry. When I've got some more free time I'll look into updating the ssp version, and possibly creating something that'll convert an ssp map to an smp one (and vice versa). I might look into the data structure used in SSP, depending on how close the data structure is to the SMP structure it might be fairly easy to convert it. Aside from that, your best option would be to use an editor to remove all of the controller blocks from the world and replace them after copying the world to the smp server.
Changes include:
Re-added message when controller block is set (second time the iron block is hit)
Added a message every 10 changing blocks that displays the number that have been used. Can be adjusted in settings (Put in a number larger than maxCB to turn it off)
Added a setting to disable break checking
When a player uses the "/ControllerBlock" command in game, it displays the plugin name and version rather than just giving a unknown command message.
Fixed changing block bug (discovered on hey0 forum)
Fixed liquid bug (discovered on hey0 forum)
Fixed pulsar bug (discovered on hey0 forum)
I can't get this to work. I'm running OSX Snow Leopard. I started my server, and it said: "2010-12-30 03:10:28 [INFO] ControllerBlock 3.4.500 initialized
99 recipes", which I assume means it loaded fine. I looked in my world folder, and sure enough I saw a controller block folder in there, with two empty folders in it.
But when I type /controllerblock, it says unknown command, instead of the version number like you said it should, and when I put everything the ground and punch the iron block, nothing happens. =/ help please!
Rollback Post to RevisionRollBack
"Do not abandon yourselves to despair. We are the Easter people and hallelujah is our song."
@iccle: I forgot to change the version number inside of the .jar, I fixed it and reuploaded (I didn't change the version number in updatr, since the disparity won't harm anyone). What blocks were you trying to use when you got the error?
@Cyrilshark: While your problem ended up not being the lack of message, I realized I was printing the name/version number to the console window instead of sending a message to the player. I fixed that as well. I also included a message for players who try to use the command without permission that tells them they don't have permission. Should make troubleshooting easier in the future.
Also, for this mod, no you don't need to put anything in ops.txt. I forgot what exactly ops.txt is used for though.
And to add the command to a group, go into groups.txt. The admins has all commands by default.
Maybe I'm just an idiot but if I put the blocks I want to change in my crafting spots, they pop our when I close the inventory window to hit things with the stick.
Purpose:
This plugin allows players to create blocks that will change when another block is powered. This can be useful for traps, bridges, gates, stairs and numerous other things.
Glossary:
Rune: A rune is a group of blocks place on the ground in a specific pattern that perform some function for a mod
Controller Block: A controller block is a block that controls the states of changing blocks based on redstone input
Changing Block: A changing block is a block who's state is changed when the corresponding controller block receives/loses power
Changing Block Placeholder: This is a block that designates where a changing block will be when setting up a controller block
State: This refers to a changing block being either on or off, or a controller block being either on, off or broken. A controller block is on when it has power, and off when it doesn't. A changing block is on when the corresponding controller block has power, and off when it does not. Controller block state is identified by an iron block (off), a gold block (on), or a gravel block (broken).
Stable Build: This refers to latest official build of the plugin. It is designated by the first three numbers, and the last two numbers will always be 0 (X.X.X00)
Unstable Build: This refers to the latest build, and is changed every time I recompile the plugin. Using this version is not recommended unless you are helping me test features. It is designated by the final 2 numbers, and the first 3 will always be the same as those from the last stable build (_._._XX)
Updatr: This is a program/plugin that allows server admins to easily update the plugins for their servers. It can be found here
How to create and use a ControllerBlock:
1) You need permission use the /ControllerBlock command. NOTE: You never need to type the command, you only need the permission.
2) Once you have permission, you start by creating the rune below:
TRT
RIR
TRT
T=torch, R=redstone dust, and I=iron block
3) After the rune is laid out, click to the top of the iron block. If you did everything right, you should receive the message "ControllerBlock built, you can set the ChangingBlocks", and the torches and redstone will be removed.
4) The next step is placing the changing block placeholders (a max of 25/controller). To do this you need to
...A) Put a block in at least one of the two far right quickbar slots of your inventory. The farthest right slot is the block that will be used when the controller block has no power (is off), and the one next to it is the block that will be used when the controller block has power (is on)
...:cool.gif: Have a stick in your hand
...C) Left-click the location where you want the changing block to be placed.
...D) You should either receive an error message, or a snow block should be placed. This is a changing block placeholder.
5) Once you've placed all of the placeholders you want, left-click the top of the iron block again. You should receive the message "ControllerBlock set" NOTE: It's currently not displaying the message. I haven't gotten to look into the problem yet.
6) Put a redstone wire on top of the controller block NOTE: It must be powered from the top for right now. There are a few hooks missing from hmod that have made me (and sunrise before me) hold off on side/bottom powered controller blocks.
7) Add power to the controller block to turn the controller block on and remove it to turn the controller block off.
Video Tutorial:
Made by: Mr_Bones from the hey0 forums
Additional Information:
-Damaging/changing any of the changing blocks after activating a controller block will alter them in the datafile the next time the controllerblock changes state. NOTE: If both states of a changing block end up as air, it will be removed from the controllerblock, and further alterations will be ignored
-Clicking the controllerblock after it has been set will bring you back to the setup mode, allowing you to change the locations/contents of the changing blocks
-Attempts to change state within 3 miliseconds of the last attempt will be ignored (to prevent endless loops)
-Known blocks that don't work as changing blocks:
...All item blocks (I am working on fixing reeds and redstone dust)
...Ladders (will work on fixing these)
...Signs (I might work on fixing these)
...Doors (I probably won't work on fixing these)
...Levers, buttons and pressure plates (They work in some situations, but not all)
-A fair number of variables can be changed in the settings file (created after first run). NOTE: Right now there are issues with both the maxCB and maxCBDist variables. MaxCB has a limit that I have yet to determine. MaxCBDist doesn't limit the distance a changing block can be from it's controller block like it should, and breaks a lot of functionality when it's changed. All of the other variables should work fine, see settings file for details on each variable.
Changes in 3.5.000+:
AutoEdit added
ClickEdit added
Snowballs no longer drop when placeholder blocks are destroyed with a shovel
Iron drops instead of gold when controller block is destroyed while powered
Changes in 3.4.000+:
Settings file added
Fixed various bugs and typos
Added some messages
Attempted to fix redstone dust and reeds...failed miserably
Updated to use build 132 of hmod
To Do List:
1) Fix any bugs I created
2) Make plugin work with MoveCraft (possibly)
3) Fix maxCB and maxCBDist settings
4) Create method to change the number of slots existing controllerblocks have to allow adjusting of max changing blocks without removing existing controllerblocks first.
5) Make controller block drop iron block when destroyed while powered instead of gold block
6) Prevent changing block from dropping snow when destroyed with shovel
7) Remove breaking controller block feature and replace it with a feature that edits the controller block instead
8) Add a left-click activated editing mode for controller blocks
Video examples:
*RESERVED*
Special thanks to:
Sunrise: For making the original version of this plugin
faxanidu: For helping with bugs, helping with other players, and helping convince me to update the mod
RustyDagger: Helping find bugs, helping out other players, and helping convince me to update the mod
KevGraf94: For helping find bugs.
Mufa: For hosting the SMP server that I play on (even if you are a pain to deal with most of the time :smile.gif: )
Everyone else: For using this plugin, asking questions, finding bugs, and making suggestions.
Plugin Downloads:
Stable (v3.5.000)
Unstable (v3.5.0XX)
Plugin History (Still to come)
Updatr Downloads:
Stable
Unstable
If you find any bugs, have any suggestions, have any questions, have videos of things you made, or anything else, please don't hesitate to post.
I'm trying to load a world saved in 1.2.6 SSP into an hMod 132b server with this plugin.
Tested, got the plugin working in the server.
Whittling down my 1.2.6 mods to make double sure the world doesn't require anything else
When I start the hMod server, I'm getting:
I did a lookup in the MCP spreadsheet trying to resolve it to the best of my ability, and the ex class handles TileEntitySpecialRenderer.
My guess is that it's trying to load the tile(s) and crashing, but without a proper decompiled source, I can't tell what's on line 103, so I can't even tell what's going on.
This is quite obscure, but any assistance rendered (by anyone) would be most welcome.
@SycoPrime: The old SSP version used a different data structure and custom block ids, so copying a ssp world to a smp server won't work. Sorry. When I've got some more free time I'll look into updating the ssp version, and possibly creating something that'll convert an ssp map to an smp one (and vice versa). I might look into the data structure used in SSP, depending on how close the data structure is to the SMP structure it might be fairly easy to convert it. Aside from that, your best option would be to use an editor to remove all of the controller blocks from the world and replace them after copying the world to the smp server.
Changes include:
Re-added message when controller block is set (second time the iron block is hit)
Added a message every 10 changing blocks that displays the number that have been used. Can be adjusted in settings (Put in a number larger than maxCB to turn it off)
Added a setting to disable break checking
When a player uses the "/ControllerBlock" command in game, it displays the plugin name and version rather than just giving a unknown command message.
Fixed changing block bug (discovered on hey0 forum)
Fixed liquid bug (discovered on hey0 forum)
Fixed pulsar bug (discovered on hey0 forum)
Sorry, no SSP yet.
Edit: Nevermind, I didn't know hMod had been updated.
99 recipes", which I assume means it loaded fine. I looked in my world folder, and sure enough I saw a controller block folder in there, with two empty folders in it.
But when I type /controllerblock, it says unknown command, instead of the version number like you said it should, and when I put everything the ground and punch the iron block, nothing happens. =/ help please!
@Cyrilshark: While your problem ended up not being the lack of message, I realized I was printing the name/version number to the console window instead of sending a message to the player. I fixed that as well. I also included a message for players who try to use the command without permission that tells them they don't have permission. Should make troubleshooting easier in the future.
Also, for this mod, no you don't need to put anything in ops.txt. I forgot what exactly ops.txt is used for though.
And to add the command to a group, go into groups.txt. The admins has all commands by default.
Are you both using hmod build 133?
EDIT: I just started with a completely fresh build 133 and added nothing but v3.4.6 of CB, and it works fine for me.