1.0.0 • Published 5 months ago

@dimulcu/discordlobby v1.0.0

Weekly downloads
-
License
MIT
Repository
-
Last release
5 months ago

DiscordLobby

DiscordLobby is a Node.Js package designed to interface with Discord voice channels. It provides a simple and efficient way to interact with voice channel data and events in Discord. This package is particularly useful for creating games or applications.

Use-case

You can use this to create lobbies in games based on user's voice channel.

Features

  • Retrieve and manage voice channel data.
  • Listen to various voice channel events like speaking start/stop, user join/leave.
  • Easy to use with modern JavaScript async/await patterns.

Installation

Before you begin, ensure you have Node.js installed on your system. Then, you can install the package using npm:

npm install discordlobby

Or using yarn:

yarn add discordlobby

Usage

Here's a basic example to get you started:

import { DiscordLobby } from "discordlobby";

async function main() {
  try {
    const lobby = await DiscordLobby.get();
    console.log("Connected to voice channel:", lobby.channelData.name);

    lobby.on("speak", (userId) => {
      console.log(`User ${userId} started speaking.`);
    });

    lobby.on("nospeak", (userId) => {
      console.log(`User ${userId} stopped speaking.`);
    });

    lobby.on("join", (user) => {
      console.log(`User ${user.id} joined the channel.`);
    });

    lobby.on("leave", (user) => {
      console.log(`User ${user.id} left the channel.`);
    });

    lobby.on("destroy", () => {
      console.log("Lobby destroyed, you left.");
    });
  } catch (error) {
    console.error("Error:", error.message);
  }
}

main();

API Reference

DiscordLobby

  • constructor(rpc: RPC, channelData: ChannelData)
    • Initializes a new instance of DiscordLobby.
  • static async get()
    • Static method to create a new instance of DiscordLobby.
  • channelData: ChannelData
    • Contains data about the current voice channel.
  • me: RPCUser
    • Information about the current user.
  • users: Map<string, RPCUser>
    • A map of users in the voice channel, it auto-updates when someone joins or leaves.

Events

  • speak
    • Emitted when a user starts speaking.
  • nospeak
    • Emitted when a user stops speaking.
  • join
    • Emitted when a new user joins the voice channel.
  • leave
    • Emitted when a user leaves the voice channel.
  • destroy
    • Emitted when the lobby is destroyed.

Contributing

Contributions to the DiscordLobby package are welcome.

License

This project is licensed under the MIT License.

1.0.0

5 months ago