Improved BDFD interpreter in Python
Project description
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
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
mzscript-1.0.3.tar.gz
(31.3 kB
view details)
File details
Details for the file mzscript-1.0.3.tar.gz
.
File metadata
- Download URL: mzscript-1.0.3.tar.gz
- Upload date:
- Size: 31.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1609b673fb06ab64e7ec42891ed41bcc95d6c194acfe1f9f12b03d7cae823ef0 |
|
MD5 | 4c935fc58a6e3481ec463e5279dc354a |
|
BLAKE2b-256 | c607261594ef377de7f01034e0d1a7ab6967a54702460d4de057dde5126db472 |