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

tsumi

v0.0.18

Published

Fast, easy-to-use, reliable, feature-rich Lava/NodeLink compatible client.

Downloads

12

Readme

TsumiLink

Fast, easy-to-use, reliable, feature-rich Lava/NodeLink compatible client.

Document released, check it out with the link in the description. STILL NOT WELL-DOCUMENTED, BE CAREFUL WHEN YOU USE THIS CLIENT. YOU MIGHT NEED TO LOOK THE CODE TO REALIZE WHAT THE CODE IS DOING.

For help, you should go to this Discord Channel (offical LavaLink guild) and seek help.

How to install

npm install tsumi

or, if you prefer the latest feature, please directly install it with

npm install https://github.com/Fyphen1223/TsumiLink

Docs

See GitHub Webpages for documentation.

Example

const discord = require('discord.js');

const { TsumiInstance, handleRaw } = require('tsumi');

const Tsumi = new TsumiInstance({
	botId: 'Your bot ID goes here',
	sendPayload: (guildId, payload) => {
		client.guilds.cache.get(guildId).shard.send(payload);
	},
	userAgent: 'Tsumi/0.0.2', //userAgent can be anything, but should be in this format: CLIENTNAME/VERSION
});

Tsumi.on('ready', () => {
	console.log('Tsumi is ready');
});

Tsumi.on('error', (e) => {
	console.log('Tsumi error');
});

/*
These avobe should be called before adding node
*/

Tsumi.addNode({
	serverName: 'Tsumi',
	secure: false,
	host: 'localhost',
	pass: 'youshallnotpass',
	port: 2333,
});

const client = new discord.Client({
	intents: [
		discord.GatewayIntentBits.GuildMembers,
		discord.GatewayIntentBits.GuildMessages,
		discord.GatewayIntentBits.GuildPresences,
		discord.GatewayIntentBits.Guilds,
		discord.IntentsBitField.Flags.MessageContent,
		discord.IntentsBitField.Flags.GuildVoiceStates, //You MUST ENABLE this
	],
	partials: [
		discord.Partials.Channel,
		discord.Partials.GuildMember
		discord.Partials.Message,
		discord.Partials.User,
	],
});

client.on('raw', async (data) => {
	handleRaw(data);
});
/*
This is very important, please write this code. If there's no code like this above, the entire Tsumi won't work at all!
*/

client.on('ready', async () => {
	console.log('Ready');
	const node = Tsumi.getIdealNode();
	await wait(1000); //This is just for delay, but deleting this might let Tsumi to send request too early to the server so I do not recommend deleting this line.
	//But for comman implementation, you DON'T NEED to write this kind of dumb code
	const player = await node.joinVoiceChannel({
		guildId: '919809544648020008',
		channelId: '919809544648020012',
	});
	const data = await node.loadTracks('ytsearch:Alan Walker The Spectre');
	await player.play({
		track: {
			encoded: data.data[0].encoded,
		}
	});

	//Also 'start' event is available
	player.on('trackStart', async (data) => {
		await wait(2000);
		await player.pause();
		await wait(2000);
		await player.resume();
		await player.seek(20000);
		const record = await player.startListen();
		console.log('Start Speaking');
		record.on('endSpeaking', (voice) => {
			const base64Voice = voice.data;
			//Do your own stuff here, or wait until I create this part of code
			//See /test/test.js for more information
		});
		await node.leaveVoiceChannel('919809544648020008');
	});
});
client.login('Yout Bot token goes here');