Posted June 20, 201213 yr Summary: This hook would allow modders to replace the right-click behavior of existing blocks. Reasoning: I'm the developer of Somnia, and I'm currently using the ISleepHandler implementation I submitted. Currently, beds still explode if you sleep in them in other worlds (Nether, The End), and it's something I'd like to change in my mod. I could edit BlockBed, but a Forge hook seems to be a better option. But why limit the hook to just the bed block? Details: Modders would be able to register an IBlockActivation with Forge. A hook would need to be inserted into the various PlayerController classes in the onPlayerRightClick method. The hook would consume all the same arguments as the Block.blockActivated method plus the Block type. It would return true if an activation occurred by a registered IBlockActivation or false if not. In the false case, it would fall through to call Block.blockActivated normally. Offer to Implement: I will gladly implement this hook myself on the client-side, but someone else would need to do the server-side implementation. Somnia - simulate the world while you sleep
June 21, 201213 yr MALfunction...I don't mind doing this. I'm working on another forge bug fix...then I'll tackle this feature.
June 21, 201213 yr Tell you what...if your fork Forge and make the client change, then I will make the server change on your fork and then you can submit the pull request. Will that work?
June 21, 201213 yr Author Sounds good. There may be a bit of a learning curve for me as I'm new to git. (When I last made a submission to Forge, they were still using Subversion, so I just sent a patch to the developers.) Somnia - simulate the world while you sleep
June 21, 201213 yr Author Thanks on both counts! I opted to use TortoiseGit since I'm on Windows, and msysgit is still building... Somnia - simulate the world while you sleep
June 22, 201213 yr Slightly offtopic, but I still wonder if there is any chance for an MP capable version of Somnia?
June 23, 201213 yr Author Slightly offtopic, but I still wonder if there is any chance for an MP capable version of Somnia? I'd love to make that happen someday, but I have very little time to devote to new development. It's mostly maintenance these days. Edit: Official modding support is supposedly coming in 1.4. I'm eager to see how far that will take me as far as preserving compatibility. Somnia - simulate the world while you sleep
June 26, 201213 yr Author So I think I have a client-side hooks that works, but I'm a bit lost on how to share it. Somnia - simulate the world while you sleep
June 26, 201213 yr Github in its help has full descriptions for how to do pull requests, let me see if I can find it for you, this is not quite the one I was looking for but is a nice and raw start: https://help.github.com/articles/fork-a-repo Regardless, githubs general help has all the information you would need: https://help.github.com/
June 26, 201213 yr So I think I have a client-side hooks that works, but I'm a bit lost on how to share it. Just give me the link to your github. In the admin tab, make me (ScottKillen) a collaborator.
July 1, 201213 yr Author Github in its help has full descriptions for how to do pull requests, let me see if I can find it for you, this is not quite the one I was looking for but is a nice and raw start: https://help.github.com/articles/fork-a-repo Regardless, githubs general help has all the information you would need: https://help.github.com/ Thanks! I have my repo set up now with ScottKillen as a collaborator. Right now, it's just an unmodified fork. I'd like to test my changes before I commit them, but when I run build.bat, I get errors... =================================== Build Start ================================= src_work -> src 1872 File(s) copied forge_client -> minecraft [snip] 17 File(s) copied forge_server -> minecraft_server [snip] 3 File(s) copied forge_common -> minecraft [snip] 57 File(s) copied forge_common -> minecraft_server [snip] 57 File(s) copied 'inject_version.bat' is not recognized as an internal or external command, operable program or batch file. 'inject_version.bat' is not recognized as an internal or external command, operable program or batch file. == MCP 6.2 (data: 6.2, client: 1.2.5, server: 1.2.5) == # found jad, ff, jad patches, ff patches, osx patches, srgs, name csvs, doc csvs, param csvs, astyle, astyle config == Recompiling client == > Cleaning bin > Recompiling '"C:\Program Files\Java\jdk1.6.0_33\bin\javac" -Xlint:-options -deprecation -g -source 1.6 -target 1....' failed : 1 == ERRORS FOUND == src\minecraft\net\minecraft\src\forge\ForgeHooks.java:392: warning: [deprecation] net.minecraft.src.forge.ISpecialMobSpawnHandler in net.minecraft.src.forge has been deprecated static LinkedList<ISpecialMobSpawnHandler> specialMobSpawnHandlers = new LinkedList<ISpecialMobSpawnHandler>(); ^ src\minecraft\net\minecraft\src\forge\MinecraftForge.java:181: warning: [deprecation] net.minecraft.src.forge.ISpecialMobSpawnHandler in net.minecraft.src.forge has been deprecated public static void registerSpecialMobSpawnHandler(ISpecialMobSpawnHandler handler) ^ src\minecraft\net\minecraft\src\forge\ModCompatibilityClient.java:8: cannot find symbol symbol : class CodecIBXM location: package paulscode.sound.codecs import paulscode.sound.codecs.CodecIBXM; ^ src\minecraft\net\minecraft\src\forge\ModCompatibilityClient.java:130: cannot find symbol symbol : class CodecIBXM location: class net.minecraft.src.forge.ModCompatibilityClient SoundSystemConfig.setCodec("xm", CodecIBXM.class); ^ src\minecraft\net\minecraft\src\forge\ModCompatibilityClient.java:131: cannot find symbol symbol : class CodecIBXM location: class net.minecraft.src.forge.ModCompatibilityClient SoundSystemConfig.setCodec("s3m", CodecIBXM.class); ^ src\minecraft\net\minecraft\src\forge\ModCompatibilityClient.java:132: cannot find symbol symbol : class CodecIBXM location: class net.minecraft.src.forge.ModCompatibilityClient SoundSystemConfig.setCodec("mod", CodecIBXM.class); ^ 4 errors 2 warnings ================== == Recompiling server == > Cleaning bin > Recompiling - Done in 5.47 seconds =================================== Build Finished 0 ================================= The file inject_version.bat is not present in the repo anywhere. It was removed on April 6, 2012. I have no idea why CodecIBXM.class is not found. Actually, that's not true. In build.bat, it only copies the forge_client\src\net path, which omits forge_client\src\paulscode and forgeclient\src\ibxm... xcopy /Y /E forge\forge_client\src\net\* src\minecraft\net My only thought is that I must have set up my workspace incorrectly or I'm calling the wrong scripts to test. Any pointers? Somnia - simulate the world while you sleep
July 1, 201213 yr You must of done something wrong because you're using 1/2 updated shit. inject_versions was MOVED to a python script int he same commit, it was not removed completely. Not sure how you managed that one. I do Forge for free, however the servers to run it arn't free, so anything is appreciated. Consider supporting the team on Patreon
July 1, 201213 yr Author You must of done something wrong because you're using 1/2 updated shit. inject_versions was MOVED to a python script int he same commit, it was not removed completely. Not sure how you managed that one. Thanks for responding. There are still references to inject_version.bat in build.bat, so I guess I shouldn't be using build.bat at all? Actually, I've replaced the contents of build.bat with the following, and it seems to work: @echo off ..\runtime\bin\python\python_mcp build.py %* build.sh and setup.sh should probably be similarly altered to invoke their corresponding python scripts, but all this is outside the scope of the feature I'm trying to add. Somnia - simulate the world while you sleep
July 1, 201213 yr ah yes, I ment to delete all the build.* files, they arnt needed anymore. Just for testing, Should probably clean these up. I do Forge for free, however the servers to run it arn't free, so anything is appreciated. Consider supporting the team on Patreon
July 6, 201213 yr Author ScottKillen, I've got a client-side block activation hook available here. It's ready for you to implement the server-side. Thanks again for all your help! Somnia - simulate the world while you sleep
August 8, 201213 yr Author We're coming up on a month now with no official word from anyone. Can I put a bounty on this pull request? As in, $x via PayPal to the maintainer who reviews and pulls it? Seems sketchy, so I'm half-joking. Somnia - simulate the world while you sleep
August 8, 201213 yr It'll get reviewed after we finish 1.3 I do Forge for free, however the servers to run it arn't free, so anything is appreciated. Consider supporting the team on Patreon
August 22, 201213 yr Author Do I need to rewrite this as an Event? Somnia - simulate the world while you sleep
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.