UltraItems
<font color="red" size="5">UltraItems is going to be merged with SpoutBlocks into SpoutMaterials.</font>
UltraItems creates custom items (with custom title and texture). You can also set crafting recipe and left / right mouse button click action. Action is something to post in chat (eg. command or some message), so you need another plugin to handle this. It is recommended to have commandhelper installed to do advanced commands (command chaining). This plugin requires Spout to be installed, otherwise items will have default texture. You can get item via command /ultraitems (alias /ui).
What you can do with this: wands, food, <s>tools</s>, <s>change stackability</s>
What you can't do (for now): armor, blocks, entities, change durability
<font color="red" size="5">Warning: This plugin requires development version of spoutcraft (check 'use latest dev build' in spoutcraft options) because of bug where items.png is in inventory instead of texture.</font>
Frequently Asked Questions
- Why ain't my permissionbypass working?
- You have to use some permission manger using SuperPerms (like PermissionsBukkit or PemissionsEx or bPermissions)
- How can i set healing staff?
- You can set negative damage.entity option to achieve that
- Will you add maxstacksize soon?
- I have asked Olloth (he's working on custom item api in spout) and he said that method for changing stackability isn't something that can be done easily.
- Will you add crafting with different data values soon?
- See IRC log
- What about furnace crafting from custom items?
- See Spout issue #800
- Will you add custom blocks soon? What will be possible to set?
- Yep. Luminescence, opacity, drop, friction, hardness, whether is powered, explosion resistance. I also like the idea it would act like tree block. And some events like place.
- Why i can't change id of base item?
- Not a preferred way of creating item with spout api anymore.
- How can i set mob drops?
- Use one of following plugins: CookieMonster, EcoCreature or MoneyDrop
- How do i convert old items (pre 0.8) to new spout compatible items?
- Follow this info.
- How can i find out id and data value of item?
- It is shown in console on start-up or after performing /ui reload.
- What does 'Config is unproperly formated?' mean?
- You either don't have UltraItems as root node or you have BOM signature in your config.
Example configuration
Following example should be working with dev version. If you can't use something, download dev version first.
UltraItems: # main container
flashwand: # item name (used when obtaining item via command)
title: Lightning wand # title shown when cursor moved on item in inventory
url: http://ogion.cz/files/items/flash.png # url of image to set to inventory item (it is currently only in inventory and in-hand)
lclick: # left click section
action: |
/zap # command sent when left clicking with item in-hand
let them burn! #you can specify more action as same as multiple permissions to bypass just add multi-line notation (pipe, vertical bar or whatever you call |)
#also you can use variables $player, $coords, $world
permissionbypass: flashplugin.zap # temporarily adds specified permission (removed after performing of action), not recommended to use (if you leave item in chest everybody can use it).
rclick: # right click section
action: /zap multi# command sent when right clicking with item in-hand
cracker:
title: Notch crackers
url: http://ogion.cz/files/items/notch.png
rclick:
health: 20 # 2 = 1 hearth, you can use negative values too
hunger: 20 # 2 = 1 hunger unit (chicken leg), you can use negative values too
consume: true # whether or not is item consumed after clicking
sound: http://ogion.cz/files/items/crunch.ogg
<s>maxstacksize: 6 # maximal size of stack</s>
recipes:
- type: shaped
amount: 2 # amount of items gained by crafting
ingredients: |
0 266
266 357 266
0 266
osword:
title: Obsidian sword
url: http://dl.dropbox.com/u/1189439/osword.png
instantbreak: true # instantly breaks the block being destroyed
damage:
entity: 80 # damage caused to entity (2 = 1 hearth)
recipes:
- type: furnace # you can use furnace, shaped or shapeless
ingredients: "49" # ingredient id:data
- type: shaped
ingredients: |
0 49
0 49
0 cracker
# note you can use item names in recipes (item has to be specified before used in recipe)
Permissions
- ultraitems.* - All UltraItems' commands
- ultraitems.reload - Reload config (default: op)
- ultraitems.list - Show list of items (default: true)
- ultraitems.give - Give item (default: true)
- ultraitems.give.* - Give all items (default: true)
- ultraitems.craft.* - Craft all items (default: true)
Commands
- /ultraitems <itemname> [amount] - gives player item itemname
- /ultraitems list - shows list of items
- /ultraitems reload - reloads configuration file (this works quite weird if you updated recipes so rather use /reload)
- /ultraitems replace - replaces items before new spout item api with new ones
Future releases
- Support for mana plugins
- Complex scripting language for more customisable items
- Block enemy attack (like right click with weapon in mc)
- Integration into give command (General plugin)
- More food properties (poison) and animation
- More events (blockplace, drop, pick, destroyed, walkedon, walkedoff)
- Explosions
- Custom blocks
- Config generator
- Delay option
- Advanced consumption (another items, replacing item)
- Entity shooting (arrows, fireballs)
Changelog
0.9
- Added crafting permissions
- Added amount for give command
- Some crafting fixes (you can use custom item names in recipes)
- Added basic api
- Added instantbreak option
0.8.1
- New bukkit config api
- /ui replace command for replacing old items with new ones
- Info about added items
0.8
- Compatible with new spout api
- Entity damage multiplier changed to absolute number
- Removed multiple spaces bug, data values can be now separated with :,;-
0.7.1
- Fixed data values in recipes
0.7
- Disabled consume for left click action
- Added crafting recipes
- Added health and hunger options
- Colored messages
- Prevented stacking of items with different data values
- Added maxstacksize option
- Added permissionbypass option
0.6
- Added entity damage multiplier
- Enabled data value 0 for click action
0.5
- Better error handling
- Enabled data value 0
- Blocking all right click actions
0.4
- Moved action, consume into l/rclick section
- Action not required for other settings
- Sound setting supported
0.3
- Added consume option
- Enhanced exception handling (incorrect spout)
- Fixed onPlayerInteract without item causing NPE
0.2
- Working reload command
- No errors in console mode
- Restructured returns
- Removed dev messages
0.1
- Initial release
- SuperPerms support
Known bugs
New features are tested before being released but it can miss some bug. If you find any, please report it to the comments or issues section.
- Sound sometimes isn't played (Spout's bug?)
- Reloading config doesn't reset item titles and textures if removed from config (you can use /reload command from bukkit)
- Consume on left click not working correctly (had to disable it because it caused internal server error - bukkit's issue?)
- Maxstacksize isn't working correctly
Download
You can find it in files section. Source is in repository
You can get latest dev version on DropBox.
-
View User Profile
-
Send Message
Posted Oct 6, 2011@Astaen
Only SuperPerms are supported as they are current standard for permission handling. There should be bridge for Permissions. I used Yeti's permissions too but since it is dead i use PermissionsBukkit (SuperPerms manager).
-
View User Profile
-
Send Message
Posted Oct 6, 2011@Lisured
I'm using Yeti's Permissions 3.x.x
:/
-
View User Profile
-
Send Message
Posted Oct 6, 2011@Flenix1
More than java it's NBT specification.
Yeah i didn't realized it. I will edit it to use spout events if possible.
I will add placeblock option into config.
I am not sure what form should api functions have.
-
View User Profile
-
Send Message
Posted Oct 6, 2011@Lisured
I'm not quite good enough in Java for that yet :P I'm not sure if there is a way to give durability right now unless you can somehow add a second data value (like 280:7:15)
Also, stacksize affects all items under that item ID, so if we set 280:4 to not stack, then normal sticks also wont stack. I'm using bones for weapons now, doesn't matter if they don't stack :)
I did come up with another idea though: Various triggers you can assign as left or right click, that are normal in-game events. For example, you could add a block stance with right click then, or maybe set an entity on fire with left click. That should be a bit easier, you just assign a string to one of those events, and then people use that string in their config in order to trigger the event. With some clever stuff you might even get custom arrows using that?
(Speaking of which, again when your API is done another thing I might do is manipulate NathanWolf's wand from his Magic plugin, to let people cycle custom arrow types with the bow... I'll look into it anyway.)
-
View User Profile
-
Send Message
Posted Oct 6, 2011@Flenix1
Just post some function headers you would use.
-
View User Profile
-
Send Message
Posted Oct 6, 2011@Lisured The first one: Tools and weapons use a data value for durability, which is also why you're getting that bug when using a tool or weapon as the basis for a new item. If you spawn an item such as "278:100" for example it will be a diamond pickaxe with a little damage on. (So when they use a custom item based off a tool, the tool changes the data value on use and therefore changes the texture) -What do you mean by an interface?
Second one: Thats what I thought, I was pointing it out to the other guy who is doing the custom arrows.
-
View User Profile
-
Send Message
Posted Oct 6, 2011@Qismyname
The damage value for arrows would only worked if you punch someone with them. @Flenix1 I don't know relation between data value and durability in minecraft. I will have to study it.
Just send me interface you would like to see and will implement it.
@Flenix1
If you shoot arrow it will shoot entity which is destroyed and arrow is added to your when you come near it stucked in the ground. I think arrow entity has no info about the arrow from inventory.
-
View User Profile
-
Send Message
Posted Oct 6, 2011@Qismyname
The only reason I could see for damage not working, is an arrows pull strength - if anything, no matter what pull you'd always get the same damage (which is OK - you could use pull just for distance) - it'd be good if you could set a variable damage though :) If it doesn't seem to be working, hit a mob with the arrow (just left click them with it) - I get a feeling that would kill em without using the arrow.
For bows, I'm just retexturing bows for the Archers plugin. Although, it would be nice to also make an arrow of each metal type, but bear in mind arrows also have a seperate entity texture for once fired so not sure what would happen then. Do you pick them up the same type as fired or just as normal arrows?
And yeah, I thought 130 would take a long time, but I've been going about an hour and a half so far and got about 30 down as far as textures are concerned, mostly new types of metal and now swords. For a lot of my stuff though I need the API, custom blocks and a few more hooks of what the items can do (for example, a poisoned sword dealing poison damage)
-
View User Profile
-
Send Message
Posted Oct 6, 2011@Flenix1
Wow 130 new items thats a lot of time.
I don't know if the Damage value works but this is what i have used for the arrows:
-
View User Profile
-
Send Message
Posted Oct 6, 2011@Qismyname Where did you hear about and what are the config and bonuses of the new arrows?
@Lisured Is there any chance of adding a durability to items somehow? I know they already use a data value to determine they're an item but wondering if there is another way? I've started work on a list of about 130 new items using this, including about 25 swords. The Obsidian sword I have is designed with infinate durability, but the rest need to break at some point :P
Last thing: How long until you have an API sorted? I want to be able to add special attacks and so on in a hooked plugin (ideally that use either a special/mana bar, or drain from the above durability, or both)
-
View User Profile
-
Send Message
Posted Oct 5, 2011Arrows do work, you can make the with arrow id:new data you can shot then, i dont know if damage works (with new bow & arrow system) but it sure looks nice :)
-
View User Profile
-
Send Message
Posted Oct 5, 2011Will test out arrows now :)
-
View User Profile
-
Send Message
Posted Oct 5, 2011@Astaen
Is essentials.spawn correct permission node?
EDIT: do you use SuperPerms (PermissionsBukkit, bPermissions, DroxPerms or some SuperPerms-Essentials Group Manager bridge)?
-
View User Profile
-
Send Message
Posted Oct 5, 2011It works for me 'cause i'm admin, for players it only say: You do not have access to that command. No permission.
-
View User Profile
-
Send Message
Posted Oct 5, 2011@Astaen
do you have some error in console or something? What does it say in chat?
-
View User Profile
-
Send Message
Posted Oct 5, 2011@Lisured
There's text version:
-
View User Profile
-
Send Message
Posted Oct 5, 2011@Astaen
Could you send me text version of config? Do you have correct permission node?
-
View User Profile
-
Send Message
Posted Oct 5, 2011THank u :D
Coz i use it to make my money :p
-
View User Profile
-
Send Message
Posted Oct 5, 2011@Lisured
K, thanks i will play with it a bit more.
-
View User Profile
-
Send Message
Posted Oct 5, 2011@Lisured
What about my problem ? :'(
@Astaen