Giter VIP home page Giter VIP logo

bukkit-otherblocks's People

Contributors

baeen avatar celticminstrel avatar raws avatar sargant avatar sehrgut avatar zarius avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

bukkit-otherblocks's Issues

logblock: NORECORD option?

For special drops like compressed coal/iron (chance of dropping multiple coal or iron from ore) - in order to reduce chances of players repeated placing & destroying the ore blocks to gain extra resources perhaps allow drops to only occur if there is no logblock record for that location (if the logblock API allows us to check this).

This will not avoid those that place/destroy in a different location each time but would slow down players that don't know about this option and keep trying on the same place.

Low priority - can be avoided by not dropping multiple ore blocks from an ore block (alternatively drop ingots from ore?) or minimised by causing much greater damage to pickaxe when dropping the multiple blocks

allow an "EXCEPT" condition for tools

eg. "-tool: [ANY_PICKAXE, ANY_AXE] EXCEPT [GOLD_PICKAXE, DIAMOND_AXE]" or just "-tool: ALL EXCEPT [blah]".

or

  • tool: [ANY_PICKAXE, ANY_AXE]
    except: [GOLD_PICKAXE, DIAMOND_AXE]

allow drop: DENY

This differs from NOTHING - whereas NOTHING cancels the dropped item this will cause the block to not be mined at all and still not drop anything (of course you could still have a separate drop also occuring).

quantity 1-2 only ever drops 1 item

This is due to a bug in OtherBlocks.performDrop where the Double random value is converted to an Integer but the decimal value is discarded rather than rounded.

tool: EXPLODE (onEntityExplode)

EntityListener.onEntityExplode(EntityExplodeEvent event)
Useful for allow creepers to drop something after an explosion (diamonds, zombies, tree, etc)

add support for lightlevel condition

Allow for lightlevel conditions similar to height (<6, =5, >3, etc) so for example dirt in a dark area might have a higher chance of dropping a mushroom.

allow BLOCK name or DROP name to be integer value (eg. new blocks)

New blocks (eg. itemCraft) do not use enums. Allowing block and drop to contain integer values checked against getTypeId() should allow these blocks/items to be used.

I've already coded in support for the integer but this gets handled and compared internally as an enum. Need to change the compare routines in OtherBlocksContainer and the synonym stuff in CommonMaterial needs to work internally with type id's.

allow for MONEY-STEAL as a drop

Instead of just gaining or losing money when killing another player the MONEY-STEAL would also remove or add money to the other player.

tool: ONDAMAGE_ & effect: KILL_VICTIM

CREATURE_ZOMBIE:
- tool: ONDAMAGE_LIGHTNING
drop: CREATURE_SKELETON
quantity: 3
effect: [KILL_VICTIM, EXPLODE]

ONDAMAGE will take effect when creature gets hurt in someway, effect: KILL_VICTIM will instantly kill the entity

event: FORCETREE(@BIRCH,REDWOOD, etc)

Checks for block below that being destroyed - if something unimportant like stone, gravel, water, lava, cobble, wood then replace with dirt and grow the tree (main blocks we want to avoid are ores, chests, pistons, etc).

Give an error message on unknown key names (eg. quanity)

A forum member didn't realise he was using the mispelt quanity tag as the plugin currently ignores tags it doesn't recognize and quantity defaults to 1.

In order to help users we could simple log a warning to the console stating key name not recognized.

Sheep don't correctly drop wool?

Reported on Bukkit forum:
RugRats said: โ†‘

@Zarius

CREATURE_SHEEP:
- tool: ALL
drop: WOOL
quantity: 0-3
chance: 100
It doesn't drop 0-3 wool anymore it drops the default?

Test, confirm and fix - or close as working.

compatibility with "Autoplant" - drop: SAPLING@PLANTED

Autoplant is meant to plant a new sapling whenever you chop down the tree. If you have modified the block with otherblocks however and replace the default drop then the "blockbreak" event is cancelled and the block is changed to air by the time that Autoplant gets it.

This applies to other plugins that rely on checking blockbreak events (eg. LogBlock) and I can't see any way around this other than using a specific API to inform the particular plugin of the intended event (as done with LogBlock) or completely disabling the ability to stop the default drop (which defaults a large part of the purpose of this plugin).

tool: EXPLOSION

Change drops from exploded blocks (idea from cyklo's issues page)

Additional to this idea: (onEntityExplode)
EntityListener.onEntityExplode(EntityExplodeEvent event)
Useful for allow creepers to drop something after an explosion (diamonds, zombies, tree, etc)

drop: CHEST@[item1,item2,item3] or drop: CHEST@[DEFAULT]

option to drop a chest full of items

drop: CHEST@[DEFAULT] for players could act as a simple "tombstone" (will include in example config along with a comment that the "Tombstone" plugin is more fully featured)

additional: expiry time? (this might require timers which could make our plugin a little "heavier" - so maybe not)

grouped drops

allow for drops to occur in groups eg: I want sand to have a rare chance of dropping a compass and map but together with only one custom message

tool: lightning?

does lightning still make a pig zombie if drop is modified?

can we hook into the lightning event and make it change objects that it hits?

This could go hand in hand with the blocks drop blocks possible feature.

Any drop on PLAYER death cancels inventory drop (and tombstones)

Determined the issue - player drops replace default drop as you would expect with any other creature. As people may not expect version 1.0 will default to including player drops by default and allowing a drop: NODROP if you really don't want to drop an inventory.

Refactor - store drops & dropgroups in a hashmap

By storing these in a hashmap keyed with the integer typeId of each block (or special negative numbers, eg. for leaf decay) we can simply get a list of drops relevant to the block being broken and loop through just those rather than the whole configuration file's list of drops.

With a large config file this can mean the different between hundreds of loops of OB_Drop.compareTo() and just a few.

creatures drop blocks rather than items (or blocks drop blocks)

Don't know if this would be useful but shouldn't be too hard to do or cause any performance issues.

Examples: You kill a spider and it drops a noteblock placed on the ground that it was on. You kill a creature and it "freezes" into a stone block. You mine a stone block and 5% of the time it turns in a gravel block.

Dangerous if users set this at 100% stone to stone, you'd never be able to mine it but possibly useful to if tool is set to "AIR" to stop harvesting of stone with your hands.

include_config option to load additional configs

Handy for permission groups or separate config files per world.

extra option for included configs:

"default" - allows for setting up values that apply to all entries in that file (eg. default world, default groups, etc)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.