Skip to main content

MZscript

Improved BDFD interpreter in Python

PyPi

Documentation

Docs site

Repository

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)

Source distribution for MZscript 1.0.3
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

Release history Release notifications | RSS feed

This release

1.0.3 This release

1 release file

1.0.2

1 release file

1.0.1

1 release file

1.0.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page