MZscript
Improved BDFD interpreter in Python
PyPi
Documentation
Docs site
Discord
for contact with @MZshnik (mzshnik/MZecker)
Contribution
Works on (tested) Python 3.10 and newer
Instaling💻
pip install MZscript
Updating📥
pip install --upgrade MZscript
First steps🎉
Create your first command:
from MZscript import MZClient
bot = MZClient()
bot.add_command(name="!help", code="""
$sendMessage[
Whats up?
!moderation
!info
!economy]
""")
bot.run("your bot token")
Try $if blocks:
bot.add_command(name="!help", code="""
$sendMessage[
Choose menu:
$if[$message[0]==mod]
You choose moderation
$elif[$message[0]==mod]
You choose info
$elif[$message[0]==mod]
You choose economy
$else
!help moderation
!help info
!help economy
$endif]
""")
Change prefix with variables:
# insert code in to on_ready is necessary
bot = MZClient(on_ready="""
$if[$getVar[prefix]==]
$setVar[prefix;!]
$endif
$console[Bot is ready]
""")
bot.add_command(name="$getVar[prefix]set-prefix", code="""
$if[$message[0]==]
$setVar[prefix;$message[0]]
$sendMessage[Prefix setted to "$message[0]"]
$updateCommands[] <-- update command names
$else
$sendMessage[Type some prefix, like: !, ?, #...]
$endif
""")
bot.add_command(name="$getVar[prefix]get-prefix", code="""
$if[$getVar[prefix]==]
$setVar[prefix;!] <-- default prefix
$endif
$sendMessage[Prefix is "$getVar[prefix]"]
""")
bot.add_command(name="$getVar[prefix]help", code="""
$sendMessage[
$getVar[prefix]help moderation
$getVar[prefix]help info
$getVar[prefix]help economy
]""")
Create buttons with events
bot.add_command(name="!button", code="""
$sendMessage[
Content;Title;Description;footer;;0058CF;;;;; <-- embed args
;#addButton[primary;Amogus;False;amogus] <-- embed tags
;#addField[Amogus;Click me] <-- another tag
]""")
bot.add_event(name="button", code="""
$defer <-- defer button response
$if[$customID==amogus]
$sendMessage[New amogus in $channelInfo[name]]
$else
$console[Button "$customID" dosnot set]
$endif
""")
Make lvl system:
bot.add_command(name="!lvl", code="""
$if[$getUserVar[lvl]==]
$setUserVar[lvl;1]
$endif
$sendMessage[Your lvl: $getUserVar[lvl]($getUserVar[exp]/100 xp to lvl up)]""")
bot.add_event(name="message", code="""
$if[$getUserVar[lvl]==]
$setUserVar[lvl;1]
$endif
$if[$getUserVar[exp]==]
$setUserVar[exp;0]
$endif
$setUserVar[exp;$calculate[$getUserVar[exp]+2]]
$if[$calculate[$getUserVar[exp]/100]==1]
$setUserVar[lvl;$calculate[$getUserVar[lvl]+1]]
$endif
""")
Content
List of all functions
| Function | Full support | No args | Can be no/with args |
|---|---|---|---|
| $if | + | - | - |
| $or | + | - | - |
| $and | + | - | - |
| $elif | + | - | - |
| $else | + | + | - |
| $endif | + | + | - |
| $stop | + | + | - |
| $eval | - | - | - |
| $pyeval | - | - | - |
| $botInfo | - | - | - |
| $channelInfo | + | - | - |
| $guildInfo | + | - | - |
| $messageInfo | + | - | - |
| $roleInfo | + | - | - |
| $userInfo | + | - | - |
| $hasPerms | - | - | - |
| $hasRole | + | - | - |
| $isAdmin | + | - | - |
| $isChannelExists | + | - | - |
| $isGuildExists | + | - | - |
| $isMemberExists | + | - | - |
| $isNumber | + | - | - |
| $isRoleExists | + | - | - |
| $isUserExists | + | - | - |
| $sendMessage | + | - | - |
| $editMessage | + | - | - |
| $message | + | - | - |
| $addReaction | + | - | - |
| $addRole | + | - | - |
| $removeRole | + | - | - |
| $ban | + | - | - |
| $clear | + | - | - |
| $kick | + | - | - |
| $unban | + | - | - |
| $text | + | - | - |
| $charCount | + | - | - |
| $lowerCase | + | - | - |
| $replaceText | + | - | - |
| $titleCase | + | - | - |
| $upperCase | + | - | - |
| $customID | + | + | - |
| $value | + | - | - |
| $options | - | - | - |
| $defer | + | + | - |
| $var | + | - | - |
| $getVar | + | - | - |
| $setVar | + | - | - |
| $delVar | + | - | - |
| $getMemberVar | + | - | - |
| $setMemberVar | + | - | - |
| $delMemberVar | + | - | - |
| $gelGuildVar | + | - | - |
| $setGuildVar | + | - | - |
| $delGuildVar | + | - | - |
| $getUserVar | + | - | - |
| $setUserVar | + | - | - |
| $delUserVar | + | - | - |
| $request | + | - | - |
| $botTyping | + | - | - |
| $random | + | - | - |
| $calculate | + | - | - |
| $getTimestamp | + | + | - |
| $wait | + | - | - |
| $loop | + | - | - |
| $for | + | - | - |
| $updateCommands | + | - | + |
| $uptime | + | - | + |
| $docs | + | - | - |
| $console | + | - | - |
Full support means is function 100% works/tested
List of functions tags:
| Function | Tags |
|---|---|
| $sendMessage | #addButton, #addMenu, #addOption, #addField, #addReaction |
List of events:
| Name | Description |
|---|---|
| message | Activated when anyone send message |
| button | Activated when anyone press button from bot |
| interaction | Activated when anyone use interaction from bot (button/menu/slashe) |
In Developing🔨
- More functions from BDFD
- More custom functions
- Documentation
- Сontributing
- Plugins (mods)
In the Future🚀
- More usefull $eval/$pyeval
- Compiled version or support for other langs
Repository and first lines of code by MZshnik
Metadata
Release files for MZscript 1.0.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| mzscript-1.0.3.tar.gz | 31.3 kB | Details |
Release files / mzscript-1.0.3.tar.gz
| Download URL | mzscript-1.0.3.tar.gz |
|---|---|
| Size | 31.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1609b673fb06ab64e7ec42891ed41bcc95d6c194acfe1f9f12b03d7cae823ef0
|
|
BLAKE2b-256 checksum How to use checksums |
c607261594ef377de7f01034e0d1a7ab6967a54702460d4de057dde5126db472
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.12.3
|