C3C

discord size code-version github-version commits github code checking

A bot that can be customized using plugins. Currently supports Facebook Messenger (using fca-unofficial, a repo forked from facebook-chat-api and maintained by me) and Discord (using discord.js)

Before you install

Make sure you have Administrator/root permission on your terminal, otherwise you can't start bot. (reason: process priority). Also you need to install (first => last):

  1. Node.JS 12+ (of course because this thing was writen in JS) (download link here)
  2. Xcode Command Line Tools (if you are using macOS)
  3. Python 2/3 (Windows users can install this using npm i windows-build-tools, macOS doesn't need this because Xcode installed it)
  4. Visual C++ Build Tools (Windows users only, use npm i windows-build-tools to install this)
  5. make, gcc (Linux/Ubuntu only)

List of supported/tested OS:

  • Windows 7+ (x86/x64)
  • macOS 10.9+ (Works best under macOS Sierra 10.12.6 to macOS Big Sur 11)
  • Ubuntu 18+ (x86/x64)
  • Other Linux distro (x86/x64/ARM/... as long as both Node.JS and node-gyp support that architecture and OS)

Notice for Ubuntu/Linux & macOS users: Please add sudo before every commands.

Install

Download latest version (version 0.3.12, as of 20/03/2020) by clicking this, and then extract it. Go to the directory where it extracted (assuming you already opened a terminal), then type:

npm install

and you are ready to go.

Usage

npm start

If this is the first time you execute this command, it'll generate config.json file. Close that command and then configure config.json file.

After that, you can run that command again and bot will go live.

Plugins

  • SimSimi (/plugins/SimSimi.z3p) => Allow users to chat with SimSimi.
  • Economy (/plugins/Economy.z3p) => Create an economy.
  • Economy-Income (/plugin/Economy-Income.z3p) => Add a way to earn money. Extends Economy
  • Economy-Gambling (/plugins/Economy-Gambling.z3p) => Add some gambling games to bot. Extends Economy
  • YT2MP3 (/plugins/YT2MP3.z3p) => Convert youtube links to MP3.
  • DenyCommand (/plugins/DenyCommand.z3p) => Allow admins (operators) to disable some commands.
  • eXPerienceChat (/plugins/eXPerienceChat.z3p) => Add XP ranking system.

Libraries (as plugins)

  • LibBetterRandom (/plugins/LibBetterRandom.z3p) => Implent Mersenne Twister random algorithim for other plugins to be used. Currently used by Economy-Income and Economy-Gambling

Localize

This bot currently supporting 2 language: en_US (English) and vi_VN (Tiếng Việt). You can change languages in config.json.

Facebook test accounts

A Facebook test account is an account just like normal accounts, however it can't contract with normal accounts. This account can be used to test and config the bot before going live.

You can create one in here.

Example config

If you don't want the bot create a config.json file for you, then here is the content that bot will write into config.json file:

{
  "testmode": false,
  "baseprefix": "[Bot]",
  "botname": "C3CBot",
  "enablefb": false,
  "usefbappstate": true,
  "fbemail": "",
  "fbpassword": "",
  "fb2fasecret": "BASE32OFSECRETKEY",
  "fbuseragent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.116 Safari/537.36",
  "fblistenwhitelist": false,
  "fblisten": [
    "0"
  ],
  "facebookAutoRestartLoggedOut": true,
  "facebookProxy": null,
  "facebookProxyUseSOCKS": false,
  "portSOCK2HTTP": 0,
  "addressSOCK2HTTP": "127.0.0.1",
  "enablediscord": false,
  "discordtoken": "",
  "discordlistenwhitelist": false,
  "discordlisten": [
    "0"
  ],
  "admins": [
    "FB-0", 
    "DC-0" 
  ],
  "blacklistedUsers": [
    "FB-0", 
    "DC-0"
  ],
  "allowAdminUseRestartCommand": true,
  "allowAdminUseShutdownCommand": false,
  "allowUserUsePluginsCommand": true,
  "allowUserUseReloadCommand": false,
  "language": "en_US",
  "enableThanosTimeGems": true, 
  "allowEveryoneTagEvenBlacklisted": true,
  "DEBUG_FCA_LOGLEVEL": "error",
  "enableSSHRemoteConsole": false,
  "sshRemoteConsoleIP": "0.0.0.0",
  "sshRemoteConsolePort": 2004,
  "sshUsername": "admin",
  "sshPassword": "c3cbot@ADMIN",
  "nsfwjsSmallModel": true,
  "commandPrefix": "/",
  "autoRestartTimerMinutes": 50,
  "autoUpdate": true,
  "configVersion": 1,
  "enableMetric": true,
  "metricHideBotAccountLink": true
}

Metric

This program will send these things to Metric server (https://c3c-metric.lequanglam.cf) (closed source):

  • Your external IPv4 or IPv6 address
  • The version you currently running
  • Your system info (amount of RAM, OS type, OS version, CPU arch, CPU load)
  • ID of Facebook/Discord account currently running at (will not shown to everyone by default)

If you really want to completely disable Metric, set enableMetric in config.json to false.

Node.JS 12 & 13 download link:

Donation

Bitcoin:  1TTCLqLHSNegudfS7Ub7dUEGxUurGs8uH
Litecoin: LQLTTCLUG9g7EfnpanwPH5MFjr7jdQRzfs
Dogecoin: DTTCLQLeCGDmKmwyy2Nn2SYgbLAyE662ua
Ethereum: 0x11C1014fA416c585DE0BA41900056fB9407D57a2