DtlTraders/patterns

From Citizens Wiki

< DtlTraders

Revision as of 21:38, 8 April 2013 by Dandielo (talk | contribs)

Overview

Every pattern is saved in the patterns.yml file located in the plugin's main folder. (plugins/DtlCitizensTrader)
You can change the directory in the configuration file.


There are 2 types of patterns:

- Pricing patterns
Sets item prices and pricing tiers.

- Item patterns
Will add certain items to the trader's stock, also has item tiers.


Incoming a third pattern type with 2.6 (long way to it):

- random patterns Those will allow to set maximum items a trader can have showd in stock (like 10 of 20), also set timeouts, "spawn chance", amount and price chances that will be used on each item when it's timeout passed.


All patterns are based on one syntax that is used to build item scripts. Those scripts are used by each pattern type, just each pattern type uses it in another way.


Item syntax

This sound horrible, I know, but it's best way to explain it in two words :D

Every item within a pattern is build up by some keywords and flags you may use, many options you can't achieve with a basic trader setup are here allowed, but you need to be careful.

Keywords

Item setting

Keyword

Price pattern

Item pattern

Example

ID and data

id[:data]

Looks for items with the given id and/or data, priority: 130

Sets the item id, and when set also the data default: required!

wool:14

Name

n

matches the item by the given name, priority: 300

Sets the item name, default: nothing

n:A Item

Item amount

a

Looks for items with the given amount, priority: 5

Sets one or more amounts for an item, default: 1

a:1,2,4

Durability

d

Looks for items with the given or higher durability, priority: 45

Sets the items durability, default: 0

d:22

Tier

t

Matches items only in the given item tier, priority: 25

not used

t:vip_tier

Color

c

matches by the given color, priority: 5, leather armor only

Sets the color for a leather armor item. Uses RGB values separated by ^, leather armor only

c:255^210^24

Enchants

e

Checks if the item has the same enchants, priority: 5

Sets enchantments for an item, default: none

e:smite/3

Stored enchants

se

Checks if the item has the same stored enchants, priority: 5

Sets enchantments for a enchanted book item, default: none, enchanted book only

se:smite/7

Price

p

Sets the price for each matching item, overriding lower priority matches

Sets the price for the given item, default: pattern price

p:12.22

Multiplier

m

Sets the multiplier for each matching item, overriding lower priority matches

Sets the multiplier for the given item, default: pattern multiplier

m:0.9

Firework

f

not used

Sets firework data for a firework item, firework only

---

Global limit

gl

not used

Sets a limit for this item, default: none

gl:limit/timeout

Player limit

pl

not used

Sets a limit for each player for this item, default: none

pl:limit/timeout

Slot

s

Not used

Sets the slot for the item, default: first empty

s:22

Flags

Item flag

flag

Item pattern

Item Lore

lore

This flag allows you to add lores to your item. It needs always to be set on the end of a item definition and needs to end with :. If used always supply a lore. How it should look like will be shown later.

Stack price

sp

The price calculated for this item, is always applied to the whole stack, not to each item. example: price = 3$ | amount = 2 | without sp: 2*3$ = 6$ | with sp: 3$, so 1.5$ for each

Pattern multiplier

pm or !pm

Forces to use or to ignore pattern multiplier matches

---

Basic syntax

Item patterns

Each entry in a pattern has the same syntax that looks like this and it should be always done like this:

id[:data] [keywords...] [flags...] [n:...] [lore:]

As in the example best way is to set after the ID all keywords then flags.

There are two exceptions in this rule.

The name keyword is best used on the end because you don't need to worry about that it will interpret any other keyword or flag as a item name part. But if you want you don't need to set it on the end just remember to always add two spaces after the item name. (the example shows that with the lore flag)

The lore flag needs always to be on the end, it's a YAML syntax requirement, that will allow us to add lores easily to the item.


A you can really simple add items to a pattern just by typing their name or ID, and data if needed, all other values got their default values or behavior, so you don't need to be afraid that you may forget to set something and it will break the pattern.

Example:

wool:14 - will add to the traders stock red wool block.



Navigation

DtlTraders
Configuration Commands | Permissions
Usage Patterns
Types