# sharpen

> Efficient, highly customisable framework for creating powerful Discord bots based on discord.js

Latest version **0.0.4** (published 2018-04-26) · Apache-2.0 license · 0 weekly downloads

> **Deprecated.** This package is deprecated.

## Install

```sh
npm install sharpen
pnpm add sharpen
yarn add sharpen
bun add sharpen
```

## Health

**Score 10/100 (F)** — status: deprecated.

Negative: deprecated.

## Facts

| | |
|---|---|
| Version | 0.0.4 |
| Published | 2018-04-26 |
| First published | 2018-04-26 |
| Weekly downloads | 0 |
| License | Apache-2.0 |
| TypeScript types | bundled |
| Module format | CommonJS |
| Dependencies | 9 |
| Unpacked size | 261.5 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | Brinkflew |
| Maintainers | brinkflew |
| Keywords | discord.js, nodejs, framework, bot, discord |

## Links

- npm: https://www.npmjs.com/package/sharpen
- Repository: https://github.com/brinkflew/sharpen
- Homepage: https://github.com/brinkflew/sharpen#readme
- Issues: https://github.com/brinkflew/sharpen/issues
- npm.io page: https://npm.io/package/sharpen

## Dependencies (9)

- [sqlite](https://npm.io/package/sqlite.md) ^2.9.1
- [erlpack](https://npm.io/package/erlpack.md) github:discordapp/erlpack
- [node-opus](https://npm.io/package/node-opus.md) ^0.2.7
- [zlib-sync](https://npm.io/package/zlib-sync.md) ^0.1.4
- [bufferutil](https://npm.io/package/bufferutil.md) ^3.0.4
- [discord.js](https://npm.io/package/discord.js.md) github:discordjs/discord.js
- [common-tags](https://npm.io/package/common-tags.md) ^1.7.2
- [require-all](https://npm.io/package/require-all.md) ^2.2.0
- [libsodium-wrappers](https://npm.io/package/libsodium-wrappers.md) ^0.7.3

## Alternatives

- [@sveltejs/kit](https://npm.io/package/@sveltejs/kit.md) — 2.2M weekly downloads
- [@atlaskit/theme](https://npm.io/package/@atlaskit/theme.md) — 402.0K weekly downloads
- [@tangle-network/brand](https://npm.io/package/@tangle-network/brand.md) — 10.0K weekly downloads
- [seneca](https://npm.io/package/seneca.md) — 7.4K weekly downloads
- [@bsb/base](https://npm.io/package/@bsb/base.md) — 7.2K weekly downloads

## Recent versions

- 0.0.4 (latest) — 2018-04-26
- 0.0.3 — 2018-04-26

## README

<div align="center">
	<br />
	<p>
		<a href="https://github.com/brinkflew/sharpen/tree/master#readme"><img src="" width="546" alt="Sharpen" /></a>
	</p>
	<br />
	<p>
		<!-- <a href="https://discord.gg/WJa8u5g"><img src="https://discordapp.com/api/guilds/399609103137112078/embed.png" alt="Discord server" /></a> -->
		<!-- <a href="https://www.npmjs.com/package/discord.js"><img src="https://img.shields.io/npm/v/discord.js.svg?maxAge=3600" alt="NPM version" /></a> -->
		<!-- <a href="https://www.npmjs.com/package/discord.js"><img src="https://img.shields.io/npm/dt/discord.js.svg?maxAge=3600" alt="NPM downloads" /></a> -->
		<a href="https://travis-ci.org/brinkflew/sharpen"><img src="https://travis-ci.com/brinkflew/sharpen.svg?token=SqT9VpUPQCroPxFPU2Yz&branch=master" alt="Build status" /></a>
		<!-- <a href="https://david-dm.org/hydrabolt/discord.js"><img src="https://img.shields.io/david/hydrabolt/discord.js.svg?maxAge=3600" alt="Dependencies" /></a> -->
		<!-- <a href="https://www.patreon.com/discordjs"><img src="https://img.shields.io/badge/donate-patreon-F96854.svg" alt="Patreon" /></a> -->
	</p>
	<!-- <p>
		<a href="https://nodei.co/npm/discord.js/"><img src="https://nodei.co/npm/discord.js.png?downloads=true&stars=true" alt="NPM info" /></a>
	</p> -->
</div>

# About
Sharpen is a framework for creating Discord bots which purpose is to respond to
commands issued in the Discord chatrooms. Sharpen has been developed in
[NodeJS](https://nodejs.org/en/), based on the [Discord.js](https://github.com/discordjs/discord.js)
interface and highly inspired from the [Commando](https://github.com/discordjs/Commando)
and the [Akaïro](https://github.com/1Computer1/discord-akairo) frameworks while
adding a bunch of new features.

## Main Features
- Customizable prefixes per-guild
	(manage different settings per guild or globally, including command prefixes)
- Highly customizable framework
	(YOU decide how your bot will behave)
- Persistent storage of settings in database
	(shipped with built-in SQLite support)
- Almost-automatic translation of messages sent to the chat
	(talk to your bot in French or in English, and switch language anytime with a single command)
- Automatic prompting for invalid command arguments
	(rule #1: never trust the end users)

# Usage
Once deployed and running, the bot will parse messages to find commands to execute.
For the bot to recognized a command, a message should start with the current command
prefix or with a mention to the bot, followed by the command itself.

The `help` command is available to provide more information about the commands the
bot can respond to.

## Examples
Assuming the command prefix is `!`, typing `!ping` in the Discord channel will
trigger the ping command.

Since the prefix is customizable per-guild, it might as well be several characters
long. In that case, the prefix and the command should be separated by a space: `sharp ping`
(assuming the prefix would be `sharp`).

It is also possible to totally disable the prefix, meaning the bot will only respond
if mentioned at the start of the message (that method would always be available,
even if a prefix is set). For instance, `@Sharpbot#1234 ping` will trigger the ping
command.

Last but not least, the bot is also capable of handling direct messages (DMs).
While called in a DM, the bot will automatically try to parse the command even if there
is no prefix and if it's not been mentioned.

## Built-in Commands
A few commands have been pre-registered to speed up your bot's development. However,
your are totally free not to use them or overwrite them in your own project.

### Administration Commands

| Commands | Description                         |
| -------- | ----------------------------------- |
| disable  | Disables a command or command group |
| enable   | Enables a command or command group  |
| groups   | Lists all command groups            |
| load     | Loads a new command                 |
| reload   | Reloads a command or command group  |
| unload   | Unloads a command                   |

### Util Commands

| Commands | Description                                                                            |
| -------- | -------------------------------------------------------------------------------------- |
| eval     | Executes JavaScript code                                                               |
| help     | Displays a list of available commands, or detailed information for a specified command |
| lang     | Shows or sets the current language                                                     |
| ping     | Checks the bot's ping to the Discord server                                            |
| prefix   | Shows or sets the command prefix                                                       |

# Installation
// TODO

---
_Source: https://npm.io/package/sharpen · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
