Discord ボットのプレミアムを、1 キーにつき 1 サーバーで。
ギルドごとのプレミアム。サブスクリプションが終われば、プレミアムも終了。
- discord.js
- discord.py
JDA
- Discord
- Stripe
- Gumroad
- Lemon Squeezy
- Ko-fi
- BuiltByBit
あなたの売り方に合わせて。
ギルドごとのプレミアム
ギルド ID をマシンとしてカウント。
host: guildIdサブスクリプションは期限どおりに終了
Stripe、Gumroad、Lemon Squeezy で終了したものを一時停止。
キー共有のアラート
一時停止ボタン付きの赤いアラート。
プレミアムロール
購入者は購入時のメールアドレスで引き換え。
プレミアムの移動も自分で
購入者がサーバー枠を自分で解除。チケット不要。
セルフホスト版、購入者ごとに 1 つ
テンプレートは起動時と 6 時間ごとに検証します。
午後のうちにプレミアムを公開。
- 1無料アカウントを作成
- 2Stripe または Gumroad を接続
- 3/premium コマンドを追加
import { MessageFlags } from "discord.js";
import { SunLicense } from "sunlicense";
const sl = new SunLicense({ baseUrl: "https://api.sunlicense.com",
token: process.env.SUNLICENSE_API_KEY });
// /premium activate key:AX8P-XXXX-XXXX-XXXX
export async function activate(interaction) {
const key = interaction.options.getString("key", true);
// the guild is the "machine": a 1-server policy stops sharing
const r = await sl.validate(key, { host: interaction.guildId });
if (r.valid) await premiumGuilds.save(interaction.guildId, key);
await interaction.reply({ flags: MessageFlags.Ephemeral, content: r.valid
? "✓ Premium active in this server"
: `This server has no premium license (${r.data?.code})` });
}よくある質問。
ユーザーではなく 1 つの Discord サーバーにプレミアムを付与するには?
キーを検証するときに、ギルド ID をマシン ID として渡します。するとポリシーのマシン上限がサーバー数を数えるようになります:1 サーバー向けのプランなら 1、複数サーバー向けならそれ以上。キーはギルドと一緒に保存し、数時間ごとに再検証すると、返金やサブスクリプション終了がボットに反映されます。
Patreon で使えますか?
現在 Patreon との連携はありません。Stripe Checkout、Gumroad のメンバーシップ、Lemon Squeezy のサブスクリプションは、サブスクリプション終了時にキーを自動で一時停止します。Ko-fi Shop の注文でもキーが発行されます。Patreon の支援者には、ダッシュボードや Discord の /license issue でキーを発行し、手動で失効させることができます。
プレミアムの検証でプランの枠を使い切りませんか?
キーのアクティベーション時に検証して結果をキャッシュし、コマンドごとではなく数時間ごとに再検証してください。Free プランには月 10,000 回の検証が含まれ、上限を超えても検証が拒否されたり遅くなったりすることはありません。Owner には 80 % と 100 % の時点でメールが届きます。
ボットのセルフホスト版を販売できますか?
はい。GitHub にある discord.js と JDA のテンプレートは、ボットの起動時に購入者のキーを検証し、6 時間ごとに再検証し、SunLicense に接続できない場合は署名済みのオフラインライセンスファイルに切り替え、キーが失効するとログアウトします。各キーはポリシーで許可された台数のマシンで動作します。discord.py では Python SDK で同じ検証ができます。
SunLicense