npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

swyftdiscord-ts

v1.2.9

Published

New discord bot library in Javascript

Downloads

2

Readme

SwyftDiscord

Discord Bot Library in Javascript

Still in development (but basic commands work)

Currently added methods are:

login
onReady
on
setActivity
getMessages
sendMessage
editMessage
deleteMessages
collectMessages
displayAvatarURL
getUser
getMentionedUsers
getFirstMentionedUser
getLastMentionedUser
getMember
getMentionedMembers
getFirstMentionedMember
getLastMentionedMember
getBotUser
getGuildID
getGuild
getGuildChannels
getGuildMembers
getGuildRoles
getGuildEmojis
getGuildBans
getGuildInvites
getGuildIntegrations
getGuildWebhooks
getGuildAuditLogs
getGuildWidget
getGuildWidgetSettings
getGuildVanityURL
getGuildWidgetImage
getGuildWelcomeScreen
getGuildPreview
getChannel
getChannelMessages
getChannelMessage
getMentionedChannels
getFirstMentionedChannel
getLastMentionedChannel
createChannel
editChannel
deleteChannel
setChannelPermissions
getChannelPermissions
setChannelPosition
getChannelInvites
createChannelInvite
deleteChannelPermission
getChannelWebhooks
getEmoji
getRole
getMentionedRoles
getFirstMentionedRole
getLastMentionedRole
createRole
editRole
deleteRole
addRoleToMember
removeRoleFromMember
kickMember
banMember
unbanMember
modifyCurrentUser
sendDM
getSticker
getStickerPacks
listGuildStickers
getGuildSticker
createGuildSticker
modifyGuildSticker
deleteGuildSticker
modifyUserVoiceState
modifyCurrentUserVoiceState
modifyGuildWelcomeScreen
modifyGuildWidget
guildPrune
modifyGuildMFALevel
modifyGuildRolePositions
modifyCurrentMemberNick
modifyGuildMember
searchGuildMembers
listGuildMembers
listActiveGuildThreads
modifyGuildChannelPositions
modifyGuild
listGuildEmojis
getGuildEmoji
createGuildEmoji
modifyGuildEmoji
deleteGuildEmoji
listJoinedPrivateArchivedThreads
listPrivateArchivedThreads
listPublicArchivedThreads
listThreadMembers
getThreadMember
removeThreadMember
leaveThread
addThreadMember
joinThread
startThreadInForumChannel
startThreadWithoutMessage
startThreadFromMessage
unpinMessage
pinMessage
getPinnedMessages
triggerTypingIndicator
followAnnouncementChannel
deleteChannelPermission
deleteAllReactionsForEmoji
deleteAllReactions
getReactions
deleteUserReaction
deleteOwnReaction
createReaction
crosspostMessage
listAutoModerationRulesForGuild
getAutoModerationRule
createAutoModerationRule
modifyAutoModerationRule
deleteAutoModerationRule
createGlobalSlashCommands
createGuildSlashCommands
EmbedBuilder
ButtonBuilder,
SelectMenuBuilder,
ActionRowBuilder
TextInputBuilder,
ModalBuilder
deleteApplicationCommands
deleteGlobalApplicationCommands
Collection
Cooldown
SlashCommandBuilder
SlashCommandOptionBuilder
SlashCommandSubcommandBuilder
SlashCommandSubcommandGroupBuilder
permissions
intents
partials
events
messageTypes
messageActivityTypes
messageFlags
messageNotificationLevels
buttonStyles
replyToInteraction

Embeds and attachments are supported.

require("dotenv").config();
const { SwyftDiscord, ActivityType, EmbedBuilder } = require("swyftdiscord");
const fs = require("fs");
import * as dotenv from "dotenv";
dotenv.config();

const intents = {
  guilds: true,
  guildMembers: true,
  guildBans: true,
  guildPresences: true,
  guildMessages: true,
  guildMessageReactions: true,
  guildMessageTyping: true,
  directMessages: true,
  directMessageReactions: true,
  directMessageTyping: true,
};

const partials = {
  members: true,
  users: true,
  channels: true,
  emojis: true,
  guilds: true,
  invites: true,
  roles: true,
};

const client = new SwyftDiscord(intents, partials);

client.onReady(() => {
  console.log("Ready!");
  client.setActivity("online", ActivityType.WATCHING, "SwyftDiscord");
});

client.on("messageCreate", async (message) => {
  if (message.content === "!ping") {
    const embed = new EmbedBuilder();
    embed.setTitle("Pong!");
    // use displayAvatarURL(user) to get the avatar of the user
    const photo = fs.readFileSync("./test.jpeg");
    client.sendMessage(message.channel.id, "Pong", {
      embeds: [embed],
      attachments: [{ name: "test.jpeg", file: photo }],
    });
  }
});

client.on("interactionCreate", async (interaction) => {
  if (interaction.command.name === "ping") {
    client.replyToInteraction(interaction, "Pong!");
  }
});

client.login(process.env.TOKEN);

Plans:

  • Split methods into separate files for better readability
  • Cover the rest of Discord API
  • Add typescript typings (hopefully complete)

Discord:

join here