Comments (1)
I believe the Tokenizer
API proposed in #2762 should not just split on whitespaces and around quotes, but also collect more information for a particular instruction. Similar to what #2749 did, preprocess optional arguments. The issue with that PR was that without a set of requirements, it would take any key-value
argument as valid. (Ex. minecraft=diamond
)
Invalid instruction item minecraft:diamond
Valid instruction item 'minecraft:diamond'
To handle this and reduce the repeated use of key-value
string patterns or their raw instruction, I propose passing those requirements to the parser during initialization. Another API would be used to predefine its structure.
The requirements could include
# of required arguments
, or unlimited (fornotify
andvariable
events)- valid keys for
optional arguments
- set of predefined
flags
Proposal for setting flags
login events:welcome_message --flags:global,persistence
login events:welcome_message --f:global,persistence
This change would make it easier to parse and to enforce a particular order
<identifier> <required arguments>... <optional arguments> <flags>
It would also mean using a different syntax for handling run
events, as it does not work with nested conditions.
Another solution to this would be quoting each nested instruction.
run 'tag add beton' 'give emerald:5 condition:nested_condition' conditions:main_condition
from betonquest.
Related Issues (20)
- Bump mkdocs-material to new instant loading impl HOT 1
- Explicitly document static behaviour HOT 1
- Unclearness about Participate/Process/Create-a-new-Branch/
- External links Icon is displayed on internal links HOT 1
- Log missing IO on reload HOT 1
- Looking condition failing to parse when block is not specified HOT 1
- Could not pass event AsyncPlayerPreLoginEvent to BetonQuest v2.0.1 HOT 1
- ProSkillApi renamed to Fabled HOT 5
- Running `/bq event` in Command Block causes exception
- Folder event can switch context from Async to Sync
- Some events throw exceptions when adding conditions.
- Cannot measure distance between test and world
- Variable Condition wrong Docs
- Async condition task handling HOT 3
- MMOLib API change 1.6.2
- Error with getPlayerData for Players Using Offline UUIDs in BetonQuest HOT 12
- Planned API Breaking changes for BQ 3.0.0 HOT 1
- Occasional errors with the database HOT 5
- Rename `ComposedEvent` to `Event` HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from betonquest.