Denizen/0.7/Interact Scripts/Interact Requirements: Difference between revisions

From Citizens Wiki
(Created page with "===== Requirements ===== <div style="margin-right:2.0em; padding:10px; font-family:museo-sans; font-size:110%;"> Note: Requirements are due for a re-code to make them extensib...")
 
No edit summary
 
(18 intermediate revisions by 4 users not shown)
Line 1: Line 1:
===== Requirements =====
 
For more up-to-date information and full details on specific features (individual commands or tags, for example), check the [https://meta.denizenscript.com/ Meta Documentation].
 
If you want a full tutorial to help get you set up, check out the [https://guide.denizenscript.com/ Beginner's Guide] text website.
 
If you need quick help, visit our [https://discord.gg/Q6pZGSR Discord group].
 
<br><br><br>
 
<span style="font-family:natalya-alternate-one; font-size:300%; margin-right:-7px; margin-left:-10px;">This wiki is outdated, please view the tutorial videos/guide, meta documentation, or Discord group (all linked above) for up-to-date information!</span>
 
<br><br><br>
 
 
 
 
 
 
 
 
 
== Requirements ==
<div style="margin-right:2.0em; padding:10px; font-family:museo-sans; font-size:110%;">
<div style="margin-right:2.0em; padding:10px; font-family:museo-sans; font-size:110%;">
Note: Requirements are due for a re-code to make them extensible like Commands. This will improve tolerence and allow for better debugging, as well as make it easy for other plugin programmers to extend Denizen. What this means to you is that it will probably change up some syntax formatting in future updates.
Requirements set criteria for your scripts to check against. They provide a powerful way to have a variety of interaction possibilities with Denizen NPCs. Imagine NPCs that will offer you some fish when hungry, or a shopkeeper that can sell you goods. These are two of many things made possible with the use of Requirements.
 
Note: Requirements from 0.6 are in-tact for 0.7, but will now be referred to as 'Legacy Requirements'. They will be slowly replaced with new commands that will override functionality. The new systems allows for improved tolerence better debugging, as well as make it easy for other plugin programmers to extend Denizen. Just a heads up. This page will keep you informed of any changes.


<code>[] indicates required field, () indicates an optional field, | indicates alternative usage.</code>
<code>[] indicates required field, () indicates an optional field, | indicates alternative usage.</code>
Line 8: Line 31:
</div>
</div>


''' Player Requirements '''
===Player===
<div style="margin-right:2.0em; padding:10px; font-family:museo-sans; font-size:110%;">
<div style="margin-right:2.0em; padding:10px; font-family:museo-sans; font-size:110%;">
{{Denizen Requiremnt Type Color|ivory|
 
[[Interact_Script_Requirements#Name|NAME]]
{{Denizen Requirement Type Color|ivory|
| &nbsp;&nbsp;<nowiki>[Player Name]&nbsp;&nbsp;(Player Name)&nbsp;&nbsp;(Player Name) ...</nowiki>
[[Interact_Script_Requirements#Durability|DURABILITY]]
| &nbsp;&nbsp;<nowiki>[> or < or =] [# or %]</nowiki>
}}
}}
{{Denizen Requiremnt Type Color|ivory|
 
[[Interact_Script_Requirements#Item|ITEM]]
{{Denizen Requirement Type Color|ivory|
| &nbsp;&nbsp;<nowiki>[[ITEM_NAME]|[#]:[#]]&nbsp;&nbsp;(Quantity)</nowiki>
}}
{{Denizen Requiremnt Type Color|ivory|
[[Interact_Script_Requirements#Holding|HOLDING]]
[[Interact_Script_Requirements#Holding|HOLDING]]
| &nbsp;&nbsp;<nowiki>[[ITEM_NAME]|[#]:[#]]&nbsp;&nbsp;(Quantity)</nowiki>
| &nbsp;&nbsp;<nowiki>[ITEM_NAME or #:#] (Quantity)</nowiki>
}}
}}
{{Denizen Requiremnt Type Color|ivory|
 
[[Interact_Script_Requirements#Wearing|WEARING]]
{{Denizen Requirement Type Color|ivory|
| &nbsp;&nbsp;<nowiki>[[ITEM_NAME]|[#]:[#]]</nowiki>
[[Interact_Script_Requirements#Hunger|HUNGER]]
| &nbsp;&nbsp;<nowiki>[Full or Hungry or Starving]</nowiki>
}}
}}
{{Denizen Requiremnt Type Color|ivory|
 
[[Interact_Script_Requirements#Hunger|HUNGER]]
{{Denizen Requirement Type Color|ivory|
| &nbsp;&nbsp;<nowiki>[Full|Hungry|Starving]</nowiki>
[[Interact_Script_Requirements#Item|ITEM]]
| &nbsp;&nbsp;<nowiki>[ITEM_NAME or #:#] (Quantity)</nowiki>
}}
}}
{{Denizen Requiremnt Type Color|ivory|
 
[[Interact_Script_Requirements#Wearing|LEVEL]]
{{Denizen Requirement Type Color|ivory|
[[Interact_Script_Requirements#Level|LEVEL]]
| &nbsp;&nbsp;<nowiki>[# or higher]&nbsp;&nbsp;OR&nbsp;&nbsp;LEVEL&nbsp;&nbsp;[At least this Level #]&nbsp;&nbsp;[No more than this Level #]</nowiki>
| &nbsp;&nbsp;<nowiki>[# or higher]&nbsp;&nbsp;OR&nbsp;&nbsp;LEVEL&nbsp;&nbsp;[At least this Level #]&nbsp;&nbsp;[No more than this Level #]</nowiki>
}}
}}
{{Denizen Requiremnt Type Color|ivory|
 
[[Interact_Script_Requirements#Wearing|POTIONEFFECT]]
{{Denizen Requirement Type Color|ivory|
[[Interact_Script_Requirements#Name|NAME]]
| &nbsp;&nbsp;<nowiki>[Player Name]&nbsp;&nbsp;(Player Name)&nbsp;&nbsp;(Player Name) ...</nowiki>
}}
 
{{Denizen Requirement Type Color|ivory|
[[Interact_Script_Requirements#Owner|OWNER]]
| &nbsp;&nbsp;
}}
 
{{Denizen Requirement Type Color|ivory|
[[Interact_Script_Requirements#Potioneffect|POTIONEFFECT]]
| &nbsp;&nbsp;<nowiki>[POTION_TYPE]</nowiki>
| &nbsp;&nbsp;<nowiki>[POTION_TYPE]</nowiki>
}}
}}
{{Denizen Requiremnt Type Color|ivory|
 
[[Interact_Script_Requirements#Wearing|DURABILITY]]
{{Denizen Requirement Type Color|ivory|
| &nbsp;&nbsp;<nowiki>[>,<,=] [#|#%]</nowiki>
[[Interact_Script_Requirements#Sneaking|SNEAKING]]
| &nbsp;&nbsp;
}}
 
{{Denizen Requirement Type Color|ivory|
[[Interact_Script_Requirements#Wearing|WEARING]]
| &nbsp;&nbsp;<nowiki>[ITEM_NAME or #:#]</nowiki>
}}
}}
</div>
</div>


''' WORLD REQUIREMENTS '''
===World===
<div style="margin-right:2.0em; padding:10px; font-family:museo-sans; font-size:110%;">
<div style="margin-right:2.0em; padding:10px; font-family:museo-sans; font-size:110%;">
{{Denizen Requiremnt Type Color|aliceblue|
{{Denizen Requirement Type Color|aliceblue|
[[Interact_Script_Requirements#Name|WORLD]]
[[Interact_Script_Requirements#Isliquid|ISLIQUID]]
| &nbsp;&nbsp;<nowiki>[World Name]&nbsp;&nbsp;(World Name)&nbsp;&nbsp;(World Name) ...</nowiki>
| &nbsp;&nbsp;<nowiki>[BOOKMARK:Block Bookmark]</nowiki>
}}
}}
{{Denizen Requiremnt Type Color|aliceblue|
 
[[Interact_Script_Requirements#Time|TIME]]
{{Denizen Requirement Type Color|aliceblue|
| &nbsp;&nbsp;<nowiki>[Day|Night|Dusk|Dawn]  OR  TIME [0-23999] [1-24000]</nowiki>
[[Interact_Script_Requirements#Ispowered|ISPOWERED]]
| &nbsp;&nbsp;<nowiki>[BOOKMARK:Block Bookmark]</nowiki>
}}
}}
{{Denizen Requiremnt Type Color|aliceblue|
 
[[Interact_Script_Requirements#Time|POWERED]]
{{Denizen Requirement Type Color|aliceblue|
| &nbsp;&nbsp;<nowiki>[Block Bookmark]</nowiki>
[[Interact_Script_Requirements#Precipitating|PRECIPITATING]]
| &nbsp;&nbsp;
}}
}}
{{Denizen Requiremnt Type Color|aliceblue|
 
{{Denizen Requirement Type Color|aliceblue|
[[Interact_Script_Requirements#Stormy|STORMY]]
| &nbsp;&nbsp;
}}
 
{{Denizen Requirement Type Color|aliceblue|
[[Interact_Script_Requirements#Sunny|SUNNY]]
[[Interact_Script_Requirements#Sunny|SUNNY]]
| &nbsp;&nbsp;
| &nbsp;&nbsp;
}}
}}
{{Denizen Requiremnt Type Color|aliceblue|
 
[[Interact_Script_Requirements#Sunny|PRECIPITATING]]
{{Denizen Requirement Type Color|aliceblue|
| &nbsp;&nbsp;
[[Interact_Script_Requirements#Time|TIME]]
| &nbsp;&nbsp;<nowiki>[Day or Night or Dusk or Dawn or TIME 0-23999] </nowiki>
}}
}}
{{Denizen Requiremnt Type Color|aliceblue|
 
[[Interact_Script_Requirements#Storming|STORMY]]
{{Denizen Requirement Type Color|aliceblue|
| &nbsp;&nbsp;
[[Interact_Script_Requirements#World|WORLD]]
| &nbsp;&nbsp;<nowiki>[World Name]&nbsp;&nbsp;(World Name)&nbsp;&nbsp;(World Name) ...</nowiki>
}}
}}
</div>
</div>


''' SCRIPT REQUIREMENTS
===Script===
<div style="margin-right:2.0em; padding:10px; font-family:museo-sans; font-size:110%;">
<div style="margin-right:2.0em; padding:10px; font-family:museo-sans; font-size:110%;">
{{Denizen Requiremnt Type Color|mintcream|
{{Denizen Requirement Type Color|mintcream|
[[Interact_Script_Requirements#Finished|FINISHED]]
[[Interact_Script_Requirements#Activity|ACTIVITY]]
| &nbsp;&nbsp;[Name of Activity]
}}
 
{{Denizen Requirement Type Color|mintcream|
[[Interact_Script_Requirements#Failed|FAILED]]
| &nbsp;&nbsp;<nowiki>(# of times)&nbsp;&nbsp;[Script Name]</nowiki>
| &nbsp;&nbsp;<nowiki>(# of times)&nbsp;&nbsp;[Script Name]</nowiki>
}}
}}
{{Denizen Requiremnt Type Color|mintcream|
 
[[Interact_Script_Requirements#Failed|FAILED]]
{{Denizen Requirement Type Color|mintcream|
[[Interact_Script_Requirements#Finished|FINISHED]]
| &nbsp;&nbsp;<nowiki>(# of times)&nbsp;&nbsp;[Script Name]</nowiki>
| &nbsp;&nbsp;<nowiki>(# of times)&nbsp;&nbsp;[Script Name]</nowiki>
}}
}}
{{Denizen Requiremnt Type Color|mintcream|
 
[[Interact_Script_Requirements#Sunny|ACTIVITY]]
{{Denizen Requirement Type Color|mintcream|
| &nbsp;&nbsp;[Name of Activity]
[[Interact_Script_Requirements#Flagged|FLAGGED]]
| &nbsp;&nbsp; [FlagName:FlagValue or FlagName] (EXACTLY) (PLAYER or DENIZEN or GLOBAL)
}}
}}
{{Denizen Requiremnt Type Color|mintcream|
 
[[Interact_Script_Requirements#Sunny|FLAGGED]]
{{Denizen Requirement Type Color|mintcream|
| &nbsp;&nbsp;(FlagName:Value OR FlagName #)
[[Interact_Script_Requirements#Script|SCRIPT]]
| &nbsp;&nbsp; [FINISHED or FAILED or STEP] (STEP:#) (QTY:#) (EXACTLY) [SCRIPT:scriptname]
}}
}}
</div>
</div>


'''VAULT REQUIREMENTS'''
===Permission/Economy===
<div style="margin-right:2.0em; padding:10px; font-family:museo-sans; font-size:110%;">
<div style="margin-right:2.0em; padding:10px; font-family:museo-sans; font-size:110%;">
These requirements only work if you have Vault installed and a compatible permissions/economy plugin.
These requirements only work if you have Vault installed and a compatible permissions/economy plugin.


{{Denizen Requiremnt Type Color|whitesmoke|
{{Denizen Requirement Type Color|whitesmoke|
[[Interact_Script_Requirements#Permission|PERMISSION]]
[[Interact_Script_Requirements#Group|GROUP]]
| &nbsp;&nbsp;[permission.node]
}}
{{Denizen Requiremnt Type Color|whitesmoke|
[[Interact_Script_Requirements#Sunny|GROUP]]
| &nbsp;&nbsp;<nowiki>[Group Name]&nbsp;&nbsp;(Group Name)&nbsp;&nbsp;(Group Name) ...</nowiki>
| &nbsp;&nbsp;<nowiki>[Group Name]&nbsp;&nbsp;(Group Name)&nbsp;&nbsp;(Group Name) ...</nowiki>
}}
}}
{{Denizen Requiremnt Type Color|whitesmoke|
 
{{Denizen Requirement Type Color|whitesmoke|
[[Interact_Script_Requirements#Money|MONEY]]
[[Interact_Script_Requirements#Money|MONEY]]
| &nbsp;&nbsp;[Quantity]
| &nbsp;&nbsp;[Quantity]
}}
{{Denizen Requirement Type Color|whitesmoke|
[[Interact_Script_Requirements#Permission|PERMISSION]]
| &nbsp;&nbsp;[permission.node]
}}
}}
</div>
</div>


'''Negative Requirements  
===Negative Requirements ===
<div style="margin-right:2.0em; padding:10px; font-family:museo-sans; font-size:110%;">
<div style="margin-right:2.0em; padding:10px; font-family:museo-sans; font-size:110%;">
Requirements can also be 'negative' requirements. In the Requirements List, just place a '-' in front of the requirement to inverse its logic. For example, 'HOLDING IRON_SWORD' would require the player to be holding an Iron Sword. '-HOLDING IRON_SWORD' would require the player to NOT be holding an Iron Sword. All requirements have a negative alternative, even ones whose function may overlap, such as '-WEATHER Precipitating' and 'WEATHER Sunny', which technically do the same thing. If anything, it can add to script readability. The negative requirement '-' should not be confused with the 'list item -' with a trailing space in front of each Requirement in the List, as that is standard YAML list format. See below:
Requirements can also be 'negative' requirements. In the Requirements List, just place a '-' in front of the requirement to inverse its logic. For example, 'HOLDING IRON_SWORD' would require the player to be holding an Iron Sword. '-HOLDING IRON_SWORD' would require the player to NOT be holding an Iron Sword. All requirements have a negative alternative, even ones whose function may overlap, such as '-WEATHER Precipitating' and 'WEATHER Sunny', which technically do the same thing. If anything, it can add to script readability. The negative requirement '-' should not be confused with the 'list item -' with a trailing space in front of each Requirement in the List, as that is standard YAML list format. See below:
Line 125: Line 186:
Negative requirements can completely change the original example around. In this 'revised' example, for this script to trigger, time needs to be day, the weather in the current world must NOT be storming, and the player have less than 1000000 units of currency on them.
Negative requirements can completely change the original example around. In this 'revised' example, for this script to trigger, time needs to be day, the weather in the current world must NOT be storming, and the player have less than 1000000 units of currency on them.
</div>
</div>
[[Category:Denizen 0.7]]

Latest revision as of 18:56, 3 September 2021

For more up-to-date information and full details on specific features (individual commands or tags, for example), check the Meta Documentation.

If you want a full tutorial to help get you set up, check out the Beginner's Guide text website.

If you need quick help, visit our Discord group.




This wiki is outdated, please view the tutorial videos/guide, meta documentation, or Discord group (all linked above) for up-to-date information!








Requirements

Requirements set criteria for your scripts to check against. They provide a powerful way to have a variety of interaction possibilities with Denizen NPCs. Imagine NPCs that will offer you some fish when hungry, or a shopkeeper that can sell you goods. These are two of many things made possible with the use of Requirements.

Note: Requirements from 0.6 are in-tact for 0.7, but will now be referred to as 'Legacy Requirements'. They will be slowly replaced with new commands that will override functionality. The new systems allows for improved tolerence better debugging, as well as make it easy for other plugin programmers to extend Denizen. Just a heads up. This page will keep you informed of any changes.

[] indicates required field, () indicates an optional field, | indicates alternative usage.

Click on any requirement to get more information and example usages.

Player

  [> or < or =] [# or %]
  [ITEM_NAME or #:#] (Quantity)
  [Full or Hungry or Starving]
  [ITEM_NAME or #:#] (Quantity)
  [# or higher]  OR  LEVEL  [At least this Level #]  [No more than this Level #]
  [Player Name]  (Player Name)  (Player Name) ...
  
  [POTION_TYPE]
  
  [ITEM_NAME or #:#]

World

  [BOOKMARK:Block Bookmark]
  [BOOKMARK:Block Bookmark]
  
  
  [Day or Night or Dusk or Dawn or TIME 0-23999]
  [World Name]  (World Name)  (World Name) ...

Script

  [Name of Activity]
  (# of times)  [Script Name]
  (# of times)  [Script Name]
   [FlagName:FlagValue or FlagName] (EXACTLY) (PLAYER or DENIZEN or GLOBAL)
   [FINISHED or FAILED or STEP] (STEP:#) (QTY:#) (EXACTLY) [SCRIPT:scriptname]

Permission/Economy

These requirements only work if you have Vault installed and a compatible permissions/economy plugin.

  [Group Name]  (Group Name)  (Group Name) ...
  [Quantity]
  [permission.node]

Negative Requirements

Requirements can also be 'negative' requirements. In the Requirements List, just place a '-' in front of the requirement to inverse its logic. For example, 'HOLDING IRON_SWORD' would require the player to be holding an Iron Sword. '-HOLDING IRON_SWORD' would require the player to NOT be holding an Iron Sword. All requirements have a negative alternative, even ones whose function may overlap, such as '-WEATHER Precipitating' and 'WEATHER Sunny', which technically do the same thing. If anything, it can add to script readability. The negative requirement '-' should not be confused with the 'list item -' with a trailing space in front of each Requirement in the List, as that is standard YAML list format. See below:

 Requirements:
   Mode: All
   List:
   - -TIME Night
   - -MONEY 1000000
   - -STORMY

Negative requirements can completely change the original example around. In this 'revised' example, for this script to trigger, time needs to be day, the weather in the current world must NOT be storming, and the player have less than 1000000 units of currency on them.