UnlimitedLava
UnlimitedLava - Ability to enjoy unlimited lava!
Version v2.1.1
Description
Now you can make pools of infinite Lava! It's a rebirth of InfiniteLava from @Edward Hand
The code is nearly rewritten, but all credits of the idea and the original 3x3 pool go to Edward Hand!
Just set the config values as you like, give yourself some permissions (or even other players ;)) use commands and of course enjoy the unlimited source(s) of lava!
Demonstration
Features
- Allows you to take unlimited lava from various source, see the list below
- Easy to understand and modifiable on the fly config
- Permissions & Commands for an easy administration
- Define which item the furnace should give back, when you place a lava bucket into it!
- Localization to customize the messages!
- Lava (and water) falls!
- Multiworld
Third party features, all of them can be disabled
Please take a look at the detailed information about bStats below!
- bStats for usage statistics
- Auto Updater (connecting to https://dev.bukkit.org for updating checking)
- can be disabled if you switch autoUpdater to false in the config.yml
Config
# For help please refer the bukkit dev page: http://dev.bukkit.org/bukkit-plugins/unlimited-lava/ configuration: # Should permissions be enabled or not? permissions: true # Should a message displayed, if a player without the permission picks up lava? messages: true # Enabled the custom furnace, configure the output of a lava bucket below furnace: true # At which height (block - not line of sight!) is the lava unlimited height: 60
# Should an auto updater for this plugin be enabled?
autoUpdater: true sources: # Different sources -> See the schematics below three: true two: true other: false big: false lava_fall: true water_fall: false plus: true T: true ring: true furnace: # What item should appear in the furnace if you place a lava bucket as the fuel? item: BUCKET # Define in which worlds the sources should be unlimited. UUID's and world names are supported enabled_worlds: - world - world_nether - myAwesomeWorld
- 33a5b547-b272-45ca-b1d7-7b6648a5e44f debug: false
Commands & Permissions
If the config value permission is set to false, all people can use the commands!
If no permission system is found, all commands are for OPs only! (as long as permissions is set to true)
Of course the console can use the commands, too!
You can type the long version /unlimitedlava or use the short version /ulava, and even /ul
Node: unlimitedlava.use
Description: Ability to use the unlimited blocks
/unlimitedlava reload
/ulava reload
Node: unlimitedlava.reload
Description: Reloads the config
/unlimitedlava help
/ulava help
Node: unlimitedlava.help
Description: Displays the help
/unlimitedlava status
/ulava status
Node: unlimitedlava.status
Description: Displays the shows the status
/unlimitedlava enable all
/ulava enable all
Node: unlimitedlava.enable.all
Description: Enables all sources
/unlimitedlava enable three
/ulava enable three
Node: unlimitedlava.enable.three
Description: Enables the 3x3 source
/unlimitedlava enable two
/ulava enable two
Node: unlimitedlava.enable.two
Description: Enables the 2x2 source
/unlimitedlava enable other
/ulava enable other
Node: unlimitedlava.enable.other
Description: Enables the other source
/unlimitedlava enable big
/ulava enable other
Node: unlimitedlava.enable.big
Description: Enables the big source
/unlimitedlava enable plus
/ulava enable plus
Node: unlimitedlava.enable.plus
Description: enables the plus sources
/unlimitedlava enable T
/ulava enable T
Node: unlimitedlava.enable.T
Description: enables the T sources
/unlimitedlava enable ring
/ulava enable ring
Node: unlimitedlava.enable.ring
Description: enables the ring sources
/unlimitedlava enable permissions
/ulava enable permissions
Node: unlimitedlava.enable.permissions
Description: Enables the permissions! (Only OPs or player with the permission can use a specific command)
/unlimitedlava enable messages
/ulava enable messages
Node: unlimitedlava.enable.messages
Description: Enables the messages!
/unlimitedlava enable furnace
/ulava enable furnace
Node: unlimitedlava.enable.furnace
Description: Enables the (custom) furnace!
/unlimitedlava enable lava_fall
/ulava enable lava_fall
Node: unlimitedlava.enable.lava_fall
Description: Enables the lava_fall
/unlimitedlava enable water_fall
/ulava enable water_fall
Node: unlimitedlava.enable.water_fall
Description: Enables the water_fall
/unlimitedlava disable all
/ulava disable all
Node: unlimitedlava.disable.all
Description: Disables all sources
/unlimitedlava disable three
/ulava disable three
Node: unlimitedlava.disable.three
Description: Disables the 3x3 source
/unlimitedlava disable two
/ulava disable two
Node: unlimitedlava.disable.two
Description: Disables the 2x2 source
/unlimitedlava disable other
/ulava disable other
Node: unlimitedlava.disable.other
Description: Disables the other source
/unlimitedlava disable big
/ulava disable big
Node: unlimitedlava.disable.big
Description: Disables the big sources
/unlimitedlava disable plus
/ulava disable plus
Node: unlimitedlava.disable.plus
Description: Disables the plus sources
/unlimitedlava disable T
/ulava disable T
Node: unlimitedlava.disable.T
Description: Disables the T sources
/unlimitedlava disable ring
/ulava disable ring
Node: unlimitedlava.disable.ring
Description: Disables the ring sources
/unlimitedlava disable permissions
/ulava disable permissions
Node: unlimitedlava.disable.permissions
Description: Disables the permissions! ALL players can use the commands!
/unlimitedlava disable messages
/ulava disable messages
Node: unlimitedlava.disable.messages
Description: Disables the messages!
/unlimitedlava disable furnace
/ulava disable furnace
Node: unlimitedlava.disable.furnace
Description: Disables the (custom) furnace!
/unlimitedlava disable lava_fall
/ulava disable lava_fall
Node: unlimitedlava.disable.lava_fall
Description: Disables the lava_fall
/unlimitedlava disable water_fall
/ulava disable water_fall
Node: unlimitedlava.disable.water_fall
Description: Disables the water_fall
Of course you can use nodes like, unlimitedlava.enable.* unlimitedlava.* etc.
Unlimited sources
Just set any value to true or false
X means, this block is unlimited! L means lava and A any solid block
Two means, you can take unlimited lava from any block of a 2x2 pool
X X X X
Three means, you can take unlimited lava from the middle block of a 3x3 pool
L L L L X L L L L
Plus means, you can take unlimited lava from the middle block of a plus shape
L L X L L
Ring means, you can take unlimited lava from the ring blocks of a ring shape
X X X X A X X X X
T means, you can take unlimited lava from the middle block of a T shape
L X L L
or
L L X L
or
L L X L
or
L X L L
Other means, you can take unlimited lava from the classic 3 block unlimited water fields!
L X L
or
L X L
or
L X L
or
L L X
or
X L L
or
L X L
Big means, you can get infinite lava from pools bigger than 3x3 (4x4, 5x5, etc.) from any block inside!
Border blocks won't work!
Falls mean, you can get infinite lava or water from a fall. Just let it flow into a hole and pick it up!
Downloads/Source Code/Dev Builds
Development builds of this project can be acquired at the provided continuous integration server. These builds have not been approved by the BukkitDev staff. Use them at your own risk.
(Latest dev builds/bleeding edge builds) - - Dev builds from Jenkins
(Source code hosted on GitHub) - - Source Code
Future Plans (a.k.a. ToDo):
- Nothing planned currently
Known Bugs
- None
Changelog
Version 2.1.1
- updates bStats
- small code improvements
Version 2.1.0
- Re-adds name support to enabled_worlds (UUIDs and names are now possible)
- Small code refactorings and performance improvements
Credits
@Edward Hand for the original plugin
@loganwm for the help with the chunk bug and high CPU usage! BIG THANKS!
@ferrybig for the help with the falls! :)
@Xastabus for the re-write of the checks! A big thanks, too, for the testers, @cuco @rockyct @cyberdude @IronWill1991
To some other guys, for helping me in the forums or on the IRC channel.
Banner
Feel free to use this banner!! :)
Statistics (from bStats)
Donations
I worked really hard on this plugin and I'm very happy about any donation.
Support me & buy me some beer, this makes me happy and keeps me interested in this plugin.
Donation chain: -> I receive some money -> Buy coffee -> Work longer -> Faster Updates -> Your benefit!
I'm accepting bitcoins, too! :)
1NnrRgdy7CfiYN63vKHiypSi3MSctCP55C
License
This plugin is released under the MIT license!
Information about the data usage collection bStats
Disabling bStats
The file ./plugins/bStats/config.yml
contains an option to opt-out.
The following data is read and sent to https://bstats.org and can be seen under https://bstats.org/plugin/bukkit/UnlimitedLava
- Your server's randomly generated UUID
- The amount of players on your server
- The online mode of your server
- The bukkit version of your server
- The java version of your system (e.g. Java 8)
- The name of your OS (e.g. Windows)
- The version of your OS
- The architecture of your OS (e.g. amd64)
- The system cores of your OS (e.g. 8)
- bStats-supported plugins
- Plugin version of bStats-supported plugins
@Xastabus
A combination of the other shapes. The other shapes should simply be changed so that they can all activate simultaneously in that shape, or simply have the shape made itself.
I do suppose requiring the other 7 blocks to be filled before filling the one you take from would be a reasonable way to go about it, but I was thinking more along the lines that water flows like that, and there are already shapes that look like each side/corner of it, so I didn't see why it wouldn't exist and work correctly.
@xGhOsTkiLLeRx: I downloaded the source again and I see the problem. Sending a correction in email. (Edit: Actually, the problem is a bit more complex than I first thought. I will try to get a correction to you by Friday unless you already have it figured out.)
@mcprotect: I'm curious about the ring shape. Do you want to require 7 blocks of lava before the 8th one fills or are you just wanting to use a combination of the "other" shapes?
@mcprotect
I'll look into it, thx!
Needs a ring shape. It's quite efficient for water, and you can't accidentally draw the wrong block to make it stop working.
O = Terrain or block of any type
L = Lava
X = Unlimited Block
X X X which is also L L L
X O X L O L
X X X L L L
Each of the lava blocks (with 1 solid block in the center) will flow into eachother and create an impossible to break (unless you're really trying to) unlimited lava flow. This is true unlimited lava.
I'm suggesting this because I tried this, and apparently you aren't able to combine L-shaped lava with line-shaped lava. Each corner acts as an L-shaped unlimited lava source, and each side acts as a line-shaped unlimited lava source.
So I could make
L X and L X L
O L
but not
L L L
L O L
L L L
Perhaps that's an error, or maybe it could be considered a new shape for the unlimited lava flows. Either way, this needs to exist!
@xGh0sTkiLLeRx
Naw It's fine, you need tekkit to come on, I just needed it for a machine that runs on lava.
@Dodongodinger
If you provide me your server IP, I could take a look.
@xGh0sTkiLLeRx
Yeah, it is in there. I guess It's the mods im trying to run it with. Thanks for the help anyways :P
@Dodongodinger
I can only imagine that the world isn't listed in the enabled words section.
For example you want to enable in in the world 'test', the config would have an entry like:
Hi, I love your plugin and your work, but just today, it just stopped working. I can pick up sources with lava, but it will not replenish the lava back. I have tried deleting the file and re-installing it, but it hasn't helped. I have checked the config and put the right world in where I want the source, and I have tried doing the /ulava enable all command and nothing is working. Any ideas what is going on? Thanks.
Also: I am on a private server where only my friends can come on, so I do not currently have any permissions plugin except for the Essentials one, which I hardly use.
@Xastabus
Sorry, for the delay!
Normally UL shouldn't care about multi-world...
Looks good what you've done so far.
Just send me a mail (don't worry my spam address, too ;P)
xghostkillerx[at]gulli[dot]com
So I've had a go at the source code. I've added the ability to use "plus" shaped trenches.
I have streamlined the detection process into 4 new methods that return the number of adjacent full lava blocks (used to refill "other" and "plus" trenches and blocks in the middle of "big" sources), the number of 3 block corners of full lava (used to refill 2x2 and 3x3 pools), a check to determine if a block is part of a lake, and a check to determine if a block is on the border of a lake. The first two methods are reusable so you could easily add detection of "T" shaped trenches requiring 3 lava sources or oddly shaped pools requiring 6 lava source blocks if anyone wanted. The latter two methods are only useful for evaluating "big" sources to prevent borders from filling.
The values from the 4 new UnlimitedLavaCheck methods are returned back to UnlimitedLavaBlockListener where I have rebuilt the logic to evaluate "SpreadValidity" based on the these values and returns if the block has been filled to prevent redundantly testing the block if multiple source types are enabled.
I also corrected a typo in UnlimitedLavaCommand where it said "ensable" instead of "enable".
I have tested each source enabled individually and with all sources enabled and my changes seem to be working correctly.
I still can't get it to work with more than one world in MultiVerse2.4, but I'll work on that later.
I would like to share these changes back to you. What would be the best way for me to do that?
@xGh0sTkiLLeRx
That would be awesome!
Also, I have discovered that UnlimitedLava is only working in one of my Multiverse-Core 2.4-AB worlds. I have a creative world in which I test new plugins before using them in my survival worlds. UnlimitedLava appears to only work in this test world. Any ideas?
@Xastabus
Would be easy to implement. I can check for the environment - normal, nether or end. I could extend the config that you can define each source in each environment. If necessary I can even allow it for specific worlds only.
@xGh0sTkiLLeRx
I may have misinterpreted the default Minecraft behavior of placing a liquid block on a liquid block as a bug. I'm a little confused by the MinecraftWiki text about Water, "Placing a block in the same space as water will replace the water. Entire lakes can be filled this way." I fail to see how one can fill a lake with stationary liquid blocks if, by my observations, it is impossible to place a liquid block in empty space that is not directly adjacent to a solid block without "replacing" the liquid blocks that are adjacent to solid blocks.
Additional suggestion: It would be interesting to optionally limit lava spring duplication to The Nether, making it even more difficult yet still possible to generate lava sources.
I may take a look at the source and see if I can help out, if you would be interested.
@Xastabus
I had no bugs so far with destroying other lava source blocks.
To the shape: Maybe, if I find enough time. The whole code which blocks should be unlimited needs to be redone...
There appears to be a bug somewhere outside UnlimitedLava that causes lava source blocks to be destroyed when placed on other lava source blocks. This makes filling a 3x3 pool somewhat frustrating.
I want to add this to my server but I don't want lava source blocks to evaporate while trying to produce more. I also do not want it to be too easy to make lava so I don't want to enable "two", "other", or "big".
Could you provide an option to make lava in a plus shaped trench?
Example:
L
L X L
L
Thanks!
@bluehasia
Can you test it without other plugins?
I wouldn't know a conflict, but who knows...
ok i double checked my height and still no work this is my config
# For help please refer to this topic: http://bit.ly/n1Wex2 or http://bit.ly/pCj7v3
configuration:
permissions: false
messages: true
furnace: false
height: 80
sources:
three: true
two: true
other: false
big: false
lava_fall: true
water_fall: false
furnace:
item: BUCKET
@bluehasia
@burgerga
It's working.
At which height (Y value) are you trying to use UnlimitedLava?
Remember the new height check, to be more resource friendly.
Normally the unlimited sources work only above block 60. Adjust it to your needs.
@bluehasia
I'll re-check that.