MALfunction84 Posted June 20, 2012 Posted June 20, 2012 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. Quote Somnia - simulate the world while you sleep
ScottKillen Posted June 21, 2012 Posted June 21, 2012 MALfunction...I don't mind doing this. I'm working on another forge bug fix...then I'll tackle this feature. Quote
ScottKillen Posted June 21, 2012 Posted June 21, 2012 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? Quote
MALfunction84 Posted June 21, 2012 Author Posted June 21, 2012 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.) Quote Somnia - simulate the world while you sleep
ScottKillen Posted June 21, 2012 Posted June 21, 2012 I can help with that, too...any questions, PM me! BTW...I'm a big Somnia fan! Quote
MALfunction84 Posted June 21, 2012 Author Posted June 21, 2012 Thanks on both counts! I opted to use TortoiseGit since I'm on Windows, and msysgit is still building... Quote Somnia - simulate the world while you sleep
OvermindDL1 Posted June 22, 2012 Posted June 22, 2012 Slightly offtopic, but I still wonder if there is any chance for an MP capable version of Somnia? Quote
MALfunction84 Posted June 23, 2012 Author Posted June 23, 2012 On 6/22/2012 at 10:32 PM, OvermindDL1 said: 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. Quote Somnia - simulate the world while you sleep
MALfunction84 Posted June 26, 2012 Author Posted June 26, 2012 So I think I have a client-side hooks that works, but I'm a bit lost on how to share it. Quote Somnia - simulate the world while you sleep
OvermindDL1 Posted June 26, 2012 Posted June 26, 2012 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/ Quote
ScottKillen Posted June 26, 2012 Posted June 26, 2012 On 6/26/2012 at 7:10 AM, MALfunction84 said: 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. Quote
MALfunction84 Posted July 1, 2012 Author Posted July 1, 2012 On 6/26/2012 at 9:36 AM, OvermindDL1 said: 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? Quote Somnia - simulate the world while you sleep
LexManos Posted July 1, 2012 Posted July 1, 2012 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. Quote I do Forge for free, however the servers to run it arn't free, so anything is appreciated. Consider supporting the team on Patreon
MALfunction84 Posted July 1, 2012 Author Posted July 1, 2012 On 7/1/2012 at 11:04 PM, LexManos said: 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. Quote Somnia - simulate the world while you sleep
LexManos Posted July 1, 2012 Posted July 1, 2012 ah yes, I ment to delete all the build.* files, they arnt needed anymore. Just for testing, Should probably clean these up. Quote I do Forge for free, however the servers to run it arn't free, so anything is appreciated. Consider supporting the team on Patreon
MALfunction84 Posted July 6, 2012 Author Posted July 6, 2012 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! Quote Somnia - simulate the world while you sleep
ScottKillen Posted July 10, 2012 Posted July 10, 2012 No problem! Looking forward to using this in a million different ways! Quote
MALfunction84 Posted July 12, 2012 Author Posted July 12, 2012 Pull request submitted here. Quote Somnia - simulate the world while you sleep
MALfunction84 Posted August 8, 2012 Author Posted August 8, 2012 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. Quote Somnia - simulate the world while you sleep
LexManos Posted August 8, 2012 Posted August 8, 2012 It'll get reviewed after we finish 1.3 Quote I do Forge for free, however the servers to run it arn't free, so anything is appreciated. Consider supporting the team on Patreon
MALfunction84 Posted August 8, 2012 Author Posted August 8, 2012 Thanks! Quote Somnia - simulate the world while you sleep
MALfunction84 Posted August 22, 2012 Author Posted August 22, 2012 Do I need to rewrite this as an Event? Quote Somnia - simulate the world while you sleep
Recommended Posts
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.