Custom beverage crafting, with large customizability on drinking effects.
Configuration
Updated for version 2.0.0-beta.0
config.yml
This configuration contains rudimentary comments, most of it should be able to understand purely from its above comment
modifiers.yml
This is where you define what statuses a player can have. A modifier can depend on other modifiers, and can also change when the player consumes something. it usually has a decreeement time.
Drunken modifiers
Name
is the unique name to identify this modifier everywhere else, note that there are possibilities of name conflicts with other configuration keys and you should keep the name alphanumeric including underscores. For example hello_my_modifier
is valid, but jag+känner+en+bot
would be invalid as ä
and +
is not alhpanumeric
min-value, max-value
This is how you define the range wherin the modifier is allowed to be, a normal min value would be 0, and a normal max value would be 100
decrement-time
You can define the decrement time for this modifier, a decrement time of 400 means that the modifier decreases 1 value every 400 ticks (20 seconds). An more complicated example would be:
decrement-time: "0.2 * sin(my_other_modifier)"
See https://www.objecthunter.net/exp4j/#Built-in_functions for more information about what functions are available for any expression
increment-dependency
Define how the modifier should change when a modifier is consumed for the player. An example:
increment-dependency: consumed_other_modifier * (110 - different_modifier) / 110
A modifier prefixed with consumed_
, is going to be the modifier change specified in the event. See https://www.objecthunter.net/exp4j/#Built-in_functions for more information about what functions are available for any expression
display-name
Define the name of the modifier, it will be shown in commands
Drunken displays
A drunken display will show for the player whenever a modifier changes, if no drunken display has been defined for the modifier, none will show.
message Define the message to show whenever this modifier changes, it includes 3 custom tags, skull, bars, stars that you can use to display amount.
filter
Define an expression to filter out when to display the message, the display will only show when the expression is larger than 0. See https://www.objecthunter.net/exp4j/#Built-in_functions for more information about what functions are available for any expression
display-value
The value that should be displayed to the user, this has to be normalized betwen 0 and 100 for the 3 different tags that can show the value. See https://www.objecthunter.net/exp4j/#Built-in_functions for more information about what functions are available for any expression
display-window
Define where to display this message, can be chat, action_bar, title
Drunken tooltips
Define how a modifier should be shown in a tooltip for all brew items
filter
Define an expression to filter out when add the tooltip to the brew, the tooltip will be added when the expression is larger than 0. See https://www.objecthunter.net/exp4j/#Built-in_functions for more information about what functions are available for any expression
brewing-tooltip
Define what should be displayed when the brew is in a brewing process, i.e barrel or distillery. Eevery modifier has a custom tag here
default-tooltip
Define what should be displayed when the brew is not in a brewing process, i.e barrel or distillery. Every modifier has a custom tag here
sealed-tooltip
Define what should be displayed when the brew is sealed. Every modifier has a custom tag here
Consumables
You can define items made outside of TheBrewingProject to apply modifiers to a player, for example bread
events.yml
This is a system for executing commands, applying potion effects, sending messages, and applying other events. All events configuration can be found in events.yml
Random drunken events
Which events should happen randomly whenever a player gets drunk enough, or has enough toxins.
enabled-random-events:
- puke
- memory_loss
- stumble
- chicken
- drunk_message
- nausea
Pass out time
How many minutes the player should be passed out whenever the pass_out
event gets triggered.
pass-out-time: 5
Teleport destinations
Where should the player teleport to to (chosen randomly) whenever the teleport event gets triggered.
teleport-destinations:
- world, x, y, z
Drunken messages
What messages should be sent from the player whenever the drunk_message event triggers.
messages:
- I love you <random_player_name>, you're my best friend.
- I could do one more.
- Who is she?
- Watch this!
- I'm not drunk. You're drunk.
Custom events
This is how you define your own custom event
custom-events:
memory_loss:
steps:
- named-event: pass_out
wait-condition: join
- named-event: teleport
consume:
alcohol: -30
toxins: -15
named-event
Run a predefined event.
Can have the values puke
, pass_out
, stumble
, chicken
, teleport
, drunk_message
, nausea
, fever
, hallucination
, kaboom
. List might expand.
wait-duration
Wait the specified duration until continuing to the next step, example duration is 10s 10t
, wait 10 seconds and 10 ticks.
wait-condition
Wait for condition until this step triggers here's how you define each condition:
steps:
- wait-condition: died
- wait-condition:
has-permission: my-permission
- wait-condition: joined-server
- wait-condition:
joined-world: my-world-name
- wait-condition: took-damage
consume
Consume the specified modifiers, an example is
steps:
- consume:
alcohol: 10
my_modifier: -20
event
Define another event with a event property (can be custom or predefined)
effect
Apply an effect to the player. Requires effect, amplifier, and duration property. An example is:
steps:
- effect: poison
amplifier: 1;2
duration: 20;100
Apply a poison effect on a player with a random amplifier within the range 1-2 and duration within the range 20-100
command
Execute a command. Requires the command property, command executor can be defined with the as
property
location
Set the location for the player (teleport). An example:
steps:
- location: worldname 1 2 3
Teleport the player to the world worldname
to position x=1, y=2, z=3