Rust Multiplayerpiano bot.
Find a file
2025-09-16 11:03:03 +03:00
.cargo first commit 2025-09-09 10:15:15 +03:00
.sqlx first commit 2025-09-09 10:15:15 +03:00
midiplayer_rs@48e91bc159 okay maybe this'll work 2025-09-09 10:20:46 +03:00
migrations feat: add dms, hieracthical arguments, permission and rank system 2025-09-14 14:59:16 +03:00
src feat: multi-client support. still missing lots more of the code, such as 2025-09-16 11:03:03 +03:00
.gitignore first commit 2025-09-09 10:15:15 +03:00
.gitmodules fix: do not use mirror 2025-09-09 10:21:21 +03:00
Cargo.lock feat: multi-client support. still missing lots more of the code, such as 2025-09-16 11:03:03 +03:00
Cargo.toml feat: multi-client support. still missing lots more of the code, such as 2025-09-16 11:03:03 +03:00
README.md feat: add suggestions, other minor bugfixes 2025-09-15 00:34:05 +03:00
rust-toolchain.toml first commit 2025-09-09 10:15:15 +03:00

copper

Copper is a smart MultiPlayerPiano bot written in Rust.

It features Austin's (nitsua) midi parser and player, which is meant for high-performance and to be able to parse black midis.

Warning

Clone this repository with git clone --recursive https://git.sad.ovh/sophie/copper.

Features

  • 2 billion note per second parser with all modern midi features supported
  • Full economy system written using sqlx and postgres
  • Lots of generic MPP bot features such as following, moving between rooms, et cetera
  • Suggestions via NTFY
  • Very good argument system

Todo

  • No todo :3

Running

  1. Requirements: Rust Nightly, should be automatically used when you do cargo run.
  2. cargo install
  3. Add config.hocon, example:
database {
    url: "postgres://user:pass@ip:port/database"
}

commands {
    prefix: "r"
    name: "Copper"

    copyparty: "https://files.sad.ovh/public/midis"

    playlists {
        chill_music: [
            "https://files.sad.ovh/public/midis/A/autumn_leaves2-G85.mid",
            "https://files.sad.ovh/public/midis/B/blue_bossa-kenny-dorham_dz.mid",
            "https://files.sad.ovh/public/midis/J/Jobim_Desafinado.mid",
            "https://files.sad.ovh/public/midis/J/Jobim_Wave.mid",
            "https://files.sad.ovh/public/midis/J/Jobim_corcovado.mid",
            "https://files.sad.ovh/public/midis/I/ipanema.mid",
            "https://files.sad.ovh/public/midis/J/Jobim_Meditacao2.mid",
            "https://files.sad.ovh/public/midis/S/so_what.mid",
            "https://files.sad.ovh/public/midis/T/take_five2-Gb176-davebrubeck.mid",
            "https://files.sad.ovh/public/midis/M/My_Funny_Valentine.mid",
            "https://files.sad.ovh/public/midis/A/all_the_things_you_are-2_dm.mid",
            "https://files.sad.ovh/public/midis/J/Johnny_Mathis_Misty.mid",
            "https://files.sad.ovh/public/midis/H/HOWARD.Fly me to the moon.mid",
            "https://files.sad.ovh/public/midis/R/Ray Charles - Georgia On My Mind.mid",
            "https://files.sad.ovh/public/midis/B/blue_in_green.mid",
            "https://files.sad.ovh/public/midis/S/Stella-By-Starlight-1.mid",
            "https://files.sad.ovh/public/midis/F/FITZGERALD.Summertime K.mid",
            "https://files.sad.ovh/public/midis/M/Moon River.mid",
            "https://files.sad.ovh/public/midis/A/autumn_in_new_york2-Bb84.mid",
            "https://files.sad.ovh/public/midis/J/Jobim_One_Note_Samba.mid",
        ]
    }
}

client {
    token: "token"
    ws: "wss://mppclone.com"
    room: "cheez"
}
  1. Simple as that, cargo run.