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.
Use Spout #510, Spoutcraft #418 and UltraItems 0.9 or lasted dev version.
Spoutcraft -> Option - Clear Cache
My Config (Works for me with dev version of UI) :
ScreenShot : http://dl.dropbox.com/u/35934762/Sans%20titre.png
@Lisured
Heya, I've edited my config. Then I've used "/ui reload" and made a Server-restart. But i can't craft a ObsidianSword (new item) out of "Obsidian Ingot" (new Item) and "sticks".
http://triavolution.eu/TriaCraft/ultraitems.png
Ok thanks, guess i will just have to be patient then. (or maybe i'll drop a quick line over at the Spout section as a helpfull reminder :P )
New question: Is it possible to use Ultraitems in a different plugin? For example, i want to add a coin and then use Moneydrop to drop thát item as currency. I can list an item id in Moneydrop and i wonder if i could use 318:1089 for that.
@Lisured
Found my issue. I was attempting to use "/ui reload" to load from config, which caused it to be overwritten. With the aforementioned single line. A bukkit reload from console fixed the issue, but I'm not going to attempt to use the UI reload anytime soon. :) Maybe throw a caution in the overview? Thanks for trying to help. Going to figure out the intricacies of this beautiful plugin now. Good work.
@RealExa
Item name is internally converted to item id from which is derived bukkit material used in furnace recipe. And flint ignores data values in bukkit recipes and even if it accepted them it wouldn't work either because spout data value can't fit into byte.
Edit: It looks it doesn't even distinguish dyes' data values.
Isn't it possible to type in the item name instead like in the crafting recipies? So 'drtealeaves' instead of 'ingredients: "318:1085" ' Or is it completely a furnace issue?
@RealExa
Sorry it is a bug. There is no SpoutFurnaceRecipe class in spout yet so i had to use bukkit's one. Which ignores data values on flint. Spout authors said they will add it but they didn't specified when they will do so.
@Lisured: Thanks for the reply again!
Now i've been experimenting some more and the following is driving me crazy. I've added various recipes and 3 of those are crafted by use of a furnace. The first 2 furnace recipes have the same output as the lowest one on the list, no matter what i try.
Part of my config (with just 2 of the furnace recipes in it):
I've checked the item id's multiple times, i've tried them with the " and without... i've changed the names of the items... i can't get it to work. Every time i put my tealeaves in the furnace i get cup of tea (teacup) instead of dried tealeaves (drtealeaves). My coffeepot in the furnace which used to result in cups of coffee result in cups of tea aswell now :(
Is it a bug or did i make a mistake somewhere?
@MtheModulator This happens if there is no UltraItems section. It was removed in current beta.
@RealExa
1. You need some custom crafting plugin for this.
2. The ingredient format is actually itemid:data:amount but i haven't tested amount since data works weird.
3., 4. Great ideas.
@damfle Working fine for me on cb #1337, spout #510. What builds do you use exactly?
@ChrisX930 Multiple actions are great idea.
@Misteryan This is weird. Any errors?
@ChrisX930 First you don't need item and data nodes unless you still have old items (before spout custom items update) and want replace them via /ui replace command. Second try to use itemname instead of 318:xxx in recipe.
@ChrisX930
I don't think that you can use data values in recipes, so instead try using the custom item name, not the data value. Example:
0 obsingot
0 obsingot
0 280
no problem ;-)
I think that multiple Comments are a great Idea.
@LISURED: Please add this function, okay?
---
Now I've a question about the custom recipes.
I've created Obsidian-Ongot and a Obsidian-Sword for my server.
But the problem is, that the custom-recipe von't work.
Here's a Screenshot of all configurations:
http://forums.bukkit.org/attachments/won-t-work-png.7235/
And a thread to my problem:
http://forums.bukkit.org/threads/req-give-new-items-ultraitems-a-new-unused-item-id.43102/
I hope you can help me with it :-)
I tried, it seems that /ui skylander2 does not work with the item (the command works used alone)
It has an option to be added?!
LISURED ->
Ideas, Thanks @ChrisX930
- Ability to use multiple commands into a single item
- Possibility of using a command IU with an item
Sorry xD
I mean:
-----------------------------------------
skylander:
title: Skylander
url: http://triavolution.eu/TriaCraft/ingamedata/skyland.png
rclick:
sound: http://triavolution.eu/TriaCraft/ingamedata/warp.ogg
action: /sl go
action: /ultraitems skylander2
permissionbypass: sl.go
permissionbypass: ultraitems.*
consume: true
-----------------------------------------
skylander2:
title: Skylander
url: http://triavolution.eu/TriaCraft/ingamedata/skyland.png
rclick:
sound: http://triavolution.eu/TriaCraft/ingamedata/warp.ogg
action: /sl back
action: /ultraitems skylander
permissionbypass: sl.go
permissionbypass: ultraitems.*
consume: true
-----------------------------------------
Hummm /sl.go is command ??
Action = command, not permissions ;)
Exemples:
or
Heya, I want to create an Item, that use two actions in the same time
> consume: true> action: /sl.go-> action: /ultraitems skyland-backWon't work, the second action will work, but the first one... Help
I use the latest dev RB but i can't login because: "took too long too login" why?
Will do some testing with permissions. In meantime i got some other questions.
1. How can i craft an official item out of ultraitems? For example: i'm adding chainmail which can be made out of iron bars, i want to craft chainmail armor out of it which is in minecraft officially. (and make it so it can be worn) Second example containing no ultraitems: Make an ironbar out of a bukket.
2. How can i set a recipe to use multiple of one items? For example: 2 stacked coca beans and 1 cake becomes 1 chocolate cake.
3. How can i make a recipe which exports more then 1 type of item? For example: 1 bukket of hot water (new item) with a tea bag gives 1 cup of tea but returns an empty bukket.
4. How can i make an item which return an item when consumed? For example: When i drink a cup of coffee i want to return an empty cup in my inventory.
Not sure if its all possible, would like to know what is. Otherwise it might be good suggestions for a future build! :)
On reload/startup, config keeps being reset to:
Even when simply pasting the example config seen above. (Obviously after checking it with a YAML parser.) Maybe I'm missing something incredibly simple. I'm running Spout 510. edit: And Bukkit 1337 with UltraItems 0.9
@RealExa
Only explanation i can come up with is that spawning mob requires some additional permission or sth. Could you try to add spawnmob.pig or spawnmob.spawnmob.pig (the permissions help of spawnmob is quite confusing)? If it doesn't work you can try to add it to permissions file. If it works there permissionbypass is probably broken. I am sorry i don't have time to test it today. It is almost midnight and i still haven't finished my todays plan.
This is what is in my config.yml of PermissionsBukkit:
This is one of the items in my config.yml of Ultraitems using a permissionbypass: