[FUN/MECH] Lava Furnace - Furnaces that run on lava [BUKITDEV]

Discussion in 'Archived: Plugin Releases' started by Arcwolf, May 30, 2011.

  1. Offline

    Arcwolf

    Lava Furnace - Furnaces that run on lava:

    The basic idea of this plugin is to allow players to create a furnace that will run on lava but not consume buckets. It allows for customization by admins for fuel burn time, cook time, per player cook times and amount of furnaces per player. It is by default pretty balanced, but is customizable by admins for personal preference in balancing or even cheating if you so choose.

    Features:
    • User created Furnaces that consume only the lava not the bucket
    • Also can be used with regular fuel sources through the Minecraft furnace interface.
    • Potential to create infinitely fueled furnaces via config file
    • Can set furnace burn times up to 2147483647 via config
    • Can set furnace cook times from 1 to 4 x normal speed via config
    • Can define the blocks a furnace is created from via config
    • Works with multi-worlds
    • Permissions via PermissionsEX, GroupManager, nijikokun based permissions, bukkit permissions or OPs
    • Lava level is easily viewable through glass door and changes with burn time of furnace
    • Optional small or large Production Chests (*based on Zarius's idea)
    • Optional Custom Smelt-ables via config
    • Production chest smelt priority from TOP LEFT to BOTTOM RIGHT
    • Per user cook times, per item cook times from 1 to 4 x normal speed via commands
    • Per player group build limits
    Tutorial Video & Review (by ValBGaming)

    Production Chest Photo:
    [​IMG]
    Alternate Chest Setup (open)

    [​IMG]

    Alternate Furnace Layouts (open)

    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]

    And you could just keep going with it.


    [​IMG] if you like this plugin and want to support me. Its much appreciated. :)
     
  2. Offline

    Arcwolf

    It was a quick hack I admit. Twas the only thing I could think of at the time, even though I knew there were other world managers out there. It was mainly put in to ferret out the problem. Turns out that wasnt it anyway.

    Thanks for the heads up with onWorldLoad. Didnt think about that little event. Guess I need to do some more digging into the api JavaDocs again. Refresher course time :p
     
  3. Offline

    fernferret

    I see what you did there.
     
  4. Offline

    Arcwolf

    :cool:

    OK, I think I've managed a solution to the comma problem but I need a tester :)

    Here is a zip with two files in it.
    File 1: LavaFurnace.jar

    It has been updated to use ASCII character 31 for its data separator. Unfortunately, because of that, the old furnaces.dat and cooktimes.dat are now invalid.

    Not to fear, I've made a converter

    File 2: LFUpdate.jar

    Put it in your plugin/LavaFurnace data directory and run it. It will backup and update the two data files with the new delimiter character. *source is in the jar for the paranoid :)
    Only run it once.

    When you've updated successfully you should be able to use comma's in your names.

    That about it, I've tested it quite a few times but things sometimes act differently in the wild. So, if you would, please give it a test and tell me how it goes.

    Thanks
    -=-Edited-=-

    I removed the download, decided for simplicity to incorporate the updater into the lavafurnace plugin. Working on that now. Think I'll have something finished in a couple of hours.
    ChangeLog (open)

    version 1.45
    by request: permissionsEx support
    by request: Priority of smeltables implemented: Priority of production chest is from TOP LEFT to TOP RIGHT and from TOP to BOTTOM
    by request: included the ability to add custom smeltable items via config option custom_smeltables= (*comma seperated integers)
    fixed typo in accepted belt blocks.
    fixed bug in world detection and furnace creation
    slightly improved save performance
    included coal ore in the production chest database of valid smeltables
    changed from comma data delimiter to ASCII 31 control character
    LavaFurnace automatically Converts to new database


    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 16, 2016
  5. Offline

    FloppyDingo

    I'll test this asap.

    Sorry about that, I wasn't able to get to testing it until this morning. I'll wait for your finished version =)

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 16, 2016
  6. Offline

    Arcwolf

    No big deal. It gave me time to sleep on the idea of having a single point of failure instead of 2 with a Updater and a plugin file... anyway, here is the Plugin. Rename it to .jar

    It should do all the work for you. Simply plug and play :)

    Report any issues. If all goes well then this should be the release version.

    -=-edit-=-
    file removed.
     
  7. Offline

    FloppyDingo

    Tested, with and without commas in names. Everything is working great! Thanks a ton!
     
  8. Offline

    Arcwolf

    OK, new version is up with some new features to play with.

    version 1.45
    by request: permissionsEx support
    by request: Priority of smeltables implemented: Priority of production chest is from TOP LEFT to TOP RIGHT and from TOP to BOTTOM
    by request: included the ability to add custom smeltable items via config option custom_smeltables= (*comma seperated integers)
    fixed typo in accepted belt blocks.
    fixed bug in world detection and furnace creation
    slightly improved save performance
    included coal ore in the production chest database of valid smeltables
    changed from comma data delimiter to ASCII 31 control character
    Lavafurnace automatically converts old furnaces.dat and cooktimes.dat to new file format
    Old files renamed to furnaces.bak and cooktimes.bak
    New files called furnaces.bin and cooktimes.bin

    Quite a few requests filled this time. :)

    Enjoy!

    Thanks to @FloppyDingo for the help testing.
     
  9. Offline

    Wacko208

    THIS IS THE BEST PLUGIN I'V EVER USED!!!!!!!!!!! OMG ITS AWESOME!!!
     
  10. Offline

    Arcwolf

    Thanks :cool:
     
  11. Offline

    Neero

    Great mod! :D
    I read a couple of pages back about iConomy. I think you should read about Vault if you're gonna add support for an economy mod :) It's an API that handles the communication between a mod and most of the economy and permission mods that exists :)
    http://dev.bukkit.org/server-mods/vault/

    Edit:
    I tried to change the belt to 109, but then it didn't work to place the [lavafurnace] sign.
     
  12. Offline

    NEREVAR117

    Chests don't seem to be working? I place times in the left (and even tried the right) chest and the furnace doesn't pick them up. I have to place objects directly into the furnace for them to smelt.
     
  13. Offline

    Arcwolf

    Did you enable production chests in the config? Also, do you have permissions to use production chests? Either will prevent chests from working.

    I can confirm that they are working correctly on my development server. MC1.1 bukkit 1818.
     
  14. Offline

    NEREVAR117

    That was the issue. Totally my fault here for not even checking the config first. Thanks. ^_^
     
  15. Offline

    flea1777

    This plugin needs updating to work with 1.1 R4
     
  16. Offline

    Arcwolf

    What is your reason for saying this. I dont see any problems with this plugin and R4.
     
  17. Offline

    flea1777

    I got rid of lavafurnace and it fixed this problem. This occured when i started using 1.1 R4
    Code:
    16:55:26 [SEVERE] Could not pass event org.bukkit.event.block.BlockDamageEvent t
    o LavaFurnace
    org.bukkit.event.EventException
            at org.bukkit.plugin.java.JavaPluginLoader$103.execute(JavaPluginLoader.
    java:1026)
            at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav
    a:61)
            at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j
    ava:460)
            at org.bukkit.craftbukkit.event.CraftEventFactory.callBlockDamageEvent(C
    raftEventFactory.java:223)
            at net.minecraft.server.ItemInWorldManager.dig(ItemInWorldManager.java:1
    37)
            at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:514)
            at org.getspout.spout.SpoutNetServerHandler.a(SpoutNetServerHandler.java
    :202)
            at net.minecraft.server.Packet14BlockDig.handle(SourceFile:43)
            at net.minecraft.server.NetworkManager.b(NetworkManager.java:226)
            at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:100)
            at org.getspout.spout.SpoutNetServerHandler.a(SpoutNetServerHandler.java
    :552)
            at net.minecraft.server.NetworkListenThread.a(NetworkListenThread.java:7
    8)
            at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:537)
            at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:435)
            at net.minecraft.server.ThreadServerApplication.run(SourceFile:465)
    Caused by: java.lang.reflect.InvocationTargetException
            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 org.bukkit.plugin.java.JavaPluginLoader$103.execute(JavaPluginLoader.
    java:1024)
            ... 14 more
    Caused by: java.lang.NullPointerException
            at plugin.arcwolf.lavafurnace.Listeners.LFBlockListener.onBlockDamage(LF
    BlockListener.java:114)
            ... 19 more
    >
     
  18. Offline

    Arcwolf

    This is an issue with one of your worlds not being loaded and a furnace being in that world. This is not an R4 caused issue. It is also harmless, as like I said above, its just telling you that a world is not found when it should be.

    I'll put in a silent fail for it in the next version so it doesnt fill up your log.

    If you would like to test the fix it is available here https://github.com/downloads/arcwolf/LavaFurnace/LavaFurnace.jar

    Let me know if it works.
     
  19. Offline

    flea1777

    I will try it out, if you say the fix makes a silent fail then its not really a fix, it will just not fill up my log, i will look into the situation on why my world unloaded it's self in the config. Thanks anyway i needed more information on the problem.

    [second edit] Ok i found the problem it was in my old config files for somereason when i updated the plugin before my old config files turned into the new ones and inside for furnaces contained some text saying null,0,0,0,0,0 something like that i deleted my config and all my stuff and it fixed it thanks for your time
     
  20. Offline

    Arcwolf

    Maybe you can post your furnaces.bin file and I can have a look at it.

    The information about the error is this.

    Code:
    if (fo.world.equals(inWorld))  // fo is a furnace object, fo.world is the furnaces world string name. inWorld is the minecraft world the event happened in.
    
    This piece of code has been reported as in error and is a simple equality check between two strings. Both strings should contain the world name. One for the furnace and one for the Minecraft world the event occurred in. The null pointer exception is being caused by the equality check because for some reason the furnace string is a null. The "fix" involves checking for nulls in both strings and ignoring the offending furnace. Why the furnace would have a null for its world name I cant say. I might be able to determine more with the furnace database. Post it and I'll go from there.
     
  21. Offline

    flea1777

    As you can see from
    As you can see from my above comment from [second edit] i solved the problem it was the furnace showing up as null for a strange reason. I deleted the files apart from the config and reloaded the plugin. All was fine from here thanks anyways.
     
  22. Offline

    Arcwolf

    ehhhhh.... too late already gutting the code... its been gutted I say! lol. Well, if there is one thing I've learned from this, check the inWorld before the fo.world. Neither should be null ... ever, but its very unlikely that an event will be a null. So inWorld.equals(fo.world) would be safer.

    See, everything can be turned into a learning experience :D

    Sorry you had the problem.
     
  23. Offline

    mcferson

    Hello here.
    I come back for a ancient problem which came again, in the all new version of my server.
    I have this recipe for the furnace :
    ################################
    # Furnace Block Settings #
    ################################
    layer_one_blocks=98:0
    layer_two_blocks=45
    layer_three_blocks=98:0
    belt_blocks=0
    door_block=49
    ################################

    But when i place the sign, all i get is a "something wrong with the lavafurnace construction ???" message.
    So if i well inderstood : floor = stone bricks, lavacontainer/furnace = red bricks, and top = stone bricks + obsidian for door.
    SSS.....BBB.....SSS
    SSS.....B..B.........O
    SSS.....BFB.....SSS..........And the sign on the front (at the x)
    ..........................x
     
  24. Offline

    Arcwolf

    The problem is related to the fact that right now layer_three_blocks in the config does not accept block data values. IE you cant use 98:0

    So the block value is being reset to 49. For now the workaround would be to remove the 98:0 and just use 98.

    Until I fix it that is. Give the latest beta a try: download removed
     
  25. Offline

    mcferson

    This works well.
    I'll try out your beta version too, and report to you.
    Thank you.
     
  26. Offline

    mcferson

    I've noticed a bug : when we feed the lava-furnace with lava (normal way, in the lava chamber), an empty metal bucket appear in the furnace's combustion slot. And while this bucket is present, the smelt time is forced to normal time, even we double the speed or more.
     
  27. Offline

    Arcwolf

    If you are using 1.474 thats not possible. I never use a bucket to fuel the furnace in 1.474. The furnace is fueled entirely programmatically. IE I set the furnace timer. It must be another plugin that is causing it. Meaning a conflict.

    If you are using 1.5 beta then I suppose that might be possible. However in nearly a week of testing I've never seen that happen. Still the only way it might occur is if you already had a lava bucket in the supply chest and the furnace was fueling itself from the supply chest.

    I'd recommend checking your other plugins to make sure something isnt adding a bucket to the furnace incorrectly. If you find it do let me know so that I can test for that plugin and make corrections for its faults.
     
  28. Offline

    mcferson

    i've just installed 1.474. i'll try in few hours.
    but in 1.472 (the last i used) i feel the chamber with lava (the chamber below the door), and a bucket appear in the fuel slot of the furnace.
    i'll be back with info about 1.474, if the problem occur again.
    ad'taleur !
     
  29. Offline

    Arcwolf

    Let me reiterate here, this plugin never internally uses a bucket to start the lavafurnace cycle. Its just not possible for a bucket to appear in the fuel slot as caused by this plugin. No version up to 1.474 uses a bucket as its internal fuel method. Its all done by simply changing a variable to set the furnace timer. No buckets involved. I still recommend checking for a plugin conflict.

    --edit--

    Yep, just double checked the source. Since I havent been in that area of code in a while. The fuel cycle even for 1.5 is initiated via a craftbukkit method called setBurnTime()

    The only time the furnace is fueled in any other way is if its NOT lava or a lavabucket in the source chests. EX. Coal, logs... Then I move the item to the furnace. But the lava chamber is never filled in that case. Buckets and Lava block items are simply decremented from the chest inventory and the setBurnTime() value is updated. They never enter the furnace fuel slot. Thats how it is <shrugs>
     
  30. Offline

    mcferson

    found it : dwarf forge.
    it's stupid, this one doesn't require to be fueled when it's built upon lava.
    ok, my fault.
    thank you.
     
  31. Offline

    Arcwolf

    I'm really not surprised, dwarf forge does some low level stuff outside the bukkit api, hooking directly to the minecraft code. I wouldnt recommend using Lavafurnace and dwarf forge simultaneously.
     

Share This Page