You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python编写Discord机器人随机百分比回复命令?

How to Build a Discord Bot Shiprate Command with Random Percentage

Hey there! Let's break down exactly how to create that shiprate command for your Discord bot. I'll cover two popular libraries—discord.py (Python) and discord.js (JavaScript)—so you can pick whichever you're working with.

Using discord.py (Python)

First, make sure you have discord.py installed. If not, run this in your terminal:

pip install discord.py

Here's a complete, working example:

import discord
from discord.ext import commands
import random

# Initialize the bot with a command prefix (change to whatever you prefer)
bot = commands.Bot(command_prefix='!', intents=discord.Intents.default())

@bot.event
async def on_ready():
    print(f'Logged in as {bot.user.name}!')

# The core shiprate command
@bot.command(name='shiprate')
async def shiprate(ctx):
    # Generate a random integer percentage between 0 and 100
    random_percent = random.randint(0, 100)
    # Send the response to the channel
    await ctx.send(f'Your shiprate is {random_percent}%')

# Replace 'YOUR_BOT_TOKEN' with your actual token from the Discord Developer Portal
bot.run('YOUR_BOT_TOKEN')

Quick Notes:

  • Random Percentage: random.randint(0, 100) gives a whole number between 0 and 100 (inclusive)—perfect for a percentage value.
  • Command Prefix: I used ! here, but you can swap it for any prefix you like (e.g., $ or ?).
  • Intents: Don't forget to enable basic intents (like messages) in the Discord Developer Portal for your bot, otherwise it won't detect command triggers.

Using discord.js (JavaScript)

If you're working with JavaScript, here's a modern example using discord.js v14:

First, install dependencies:

npm install discord.js @discordjs/rest

Then the code:

const { Client, GatewayIntentBits, SlashCommandBuilder, Routes } = require('discord.js');
const { REST } = require('@discordjs/rest');
const client = new Client({ 
    intents: [
        GatewayIntentBits.Guilds, 
        GatewayIntentBits.GuildMessages, 
        GatewayIntentBits.MessageContent
    ] 
});

// Register the slash command (run this once to add it to your server)
const rest = new REST({ version: '10' }).setToken('YOUR_BOT_TOKEN');

async function registerCommands() {
    const commands = [
        new SlashCommandBuilder()
            .setName('shiprate')
            .setDescription('Get your random shiprate percentage!')
    ].map(command => command.toJSON());

    try {
        await rest.put(
            Routes.applicationGuildCommands('YOUR_CLIENT_ID', 'YOUR_GUILD_ID'),
            { body: commands },
        );
        console.log('Successfully registered slash commands.');
    } catch (error) {
        console.error(error);
    }
}

client.on('ready', () => {
    console.log(`Logged in as ${client.user.tag}!`);
    registerCommands(); // Run once to set up the command
});

// Handle the slash command trigger
client.on('interactionCreate', async interaction => {
    if (!interaction.isChatInputCommand()) return;

    if (interaction.commandName === 'shiprate') {
        // Generate random percentage (0-100 inclusive)
        const randomPercent = Math.floor(Math.random() * 101);
        await interaction.reply(`Your shiprate is ${randomPercent}%`);
    }
});

client.login('YOUR_BOT_TOKEN');

Quick Notes for discord.js:

  • Slash Commands: This uses Discord's modern slash command system (/shiprate)—the recommended approach for new bots.
  • Random Percentage: Math.floor(Math.random() * 101) works because Math.random() returns a value between 0 (inclusive) and 1 (exclusive); multiplying by 101 gives us up to 100.999..., which Math.floor rounds down to 100.
  • Command Registration: You only need to run registerCommands() once to add the command to your server. After that, you can comment it out if you want.

Final Tips

  • Ensure your bot has the Send Messages permission in any channels where you want it to respond.
  • If you prefer prefix commands in discord.js instead of slash commands, you can listen for message events directly—just make sure to enable the MessageContent intent.

内容的提问来源于stack exchange,提问作者Wild_Loli

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 07:42:47