
Sopur's user bot library
Hello! This is a user bot library that allows
for a lot more things than Discord.js.
For example, this library allows you to access
to everything a legit client does:
like user notes, friend counts,
the default Discord tutorial,
and everything else.
This library is in an early state
and needs more work.
More functions will be added soon.
Installing
npm i discord-user-bots
Getting started
Here's a small example of this library:
const Discord = require("discord-user-bots");
const client = new Discord.Client("Token goes here.");
client.on.ready = function () {
console.log("Client online!");
};
client.on.message_create = function (message) {
console.log(message);
};
Practical examples
Mailing list
Pings other users when a victim of your choice sends a message
https://github.com/Sopur/Discord-user-bots/blob/main/examples/mailinglist.js
Un-sendable channel
Deletes every message that is sent on channels of your choice while avoiding message delete rate limits
https://github.com/Sopur/Discord-user-bots/blob/main/examples/unsendable-channel.js
Contributing
See the README file in the source folder for instructions for contributing and what each file does.
https://github.com/Sopur/Discord-user-bots/blob/main/src/README.md
Functions
const client = new Discord.Client(
"token",
{
api: "v9",
wsurl: "wss://gateway.discord.gg/?encoding=json&v=9",
os: "linux",
bd: "holy",
language: "en-US",
typinginterval: 1000,
}
);
client.fetch_messages(
100,
"794326789480120374",
"914533507890565221"
);
client.get_guild(
"794326789480120374"
);
client.join_guild(
"https://discord.gg/WADasB31"
);
client.get_invite_info(
"https://discord.gg/WADasB31"
);
client.leave_guild(
"794326789480120374"
);
client.delete_guild(
"794326789480120374"
);
client.send(
"794326789480120374",
{
content: "Hello Discord-user-bots!",
reply: "914533507890565221",
tts: false,
embeds: [],
allowed_mentions: {
allowUsers: true,
allowRoles: true,
allowEveryone: true,
allowRepliedUser: true,
},
components: [],
stickers: [],
attachments: [
"path/to/file",
{
path: "path/to/file",
name: "custom-file-name.jpg",
description: "File description",
},
],
}
);
client.edit(
"794339629553156116",
"794329000897806387",
"Edited!"
);
client.delete_message(
"794339629553156116",
"794329000897806387"
);
client.type(
"794326789480120374"
);
client.stop_type();
client.group(
["person-id", "you can have up to 10", "(Including you)"]
);
client.leave_group(
"785986028955500596"
);
client.remove_person_from_group(
"person-id",
"785986028955500596"
);
client.rename_group(
"Discord-user-bot's group",
"785986028955500596"
);
client.create_server(
"Discord-user-bot's server",
"2TffvPucqHkN"
);
client.create_thread_from_message(
"811442648677875722",
"753267478943105024",
"Discord-user-bot's thread from a message",
1440
);
client.create_thread(
"888825512510779414",
"Discord-user-bot's thread from a channel",
1440
);
client.delete_thread(
"888825512510779414"
);
client.join_thread(
"888825512510779414"
);
client.add_reaction(
"914533528245506068",
"753267478943105028",
"🤖"
);
client.remove_reaction(
"914533528245506068",
"753267478943105028",
"🤖"
);
client.change_status(
"online"
);
client.set_custom_status({
text: "This status was set by Discord-user-bots!",
emoji: "🤖",
expireAt: "2021-12-13T05:57:58.828Z",
});
client.create_invite(
"753267478943105028",
{
validate: null,
max_age: 0,
max_uses: 0,
target_user_id: null,
target_type: null,
temporary: false,
}
);
client.parse_invite_link(
"https://discord.gg/WADasB31"
);
client.set_config({
api: "v9",
wsurl: "wss://gateway.discord.gg/?encoding=json&v=9",
os: "linux",
bd: "holy",
language: "en-US",
typinginterval: 1000,
});
Event listeners
class DiscordEvents {
voice_server_update(message) {}
user_update(message) {}
application_command_create(message) {}
application_command_update(message) {}
application_command_delete(message) {}
interaction_create(message) {}
guild_create(message) {}
guild_delete(message) {}
guild_role_create(message) {}
guild_role_update(message) {}
guild_role_delete(message) {}
thread_create(message) {}
thread_join(message) {}
thread_update(message) {}
thread_delete(message) {}
thread_list_sync(message) {}
thread_member_update(message) {}
thread_members_update(message) {}
channel_create(message) {}
channel_update(message) {}
channel_delete(message) {}
channel_pins_update(message) {}
guild_member_add(message) {}
guild_member_update(message) {}
guild_member_remove(message) {}
guild_ban_add(message) {}
guild_ban_remove(message) {}
guild_emojis_update(message) {}
guild_stickers_update(message) {}
guild_integrations_update(message) {}
guild_webhooks_update(message) {}
invite_create(message) {}
invite_delete(message) {}
voice_state_update(message) {}
presence_update(message) {}
message_create(message) {}
message_update(message) {}
message_delete(message) {}
message_delete_bulk(message) {}
message_reaction_add(message) {}
message_reaction_remove(message) {}
message_reaction_remove_all(message) {}
message_reaction_remove_emoji(message) {}
typing_start(message) {}
discord_disconnect() {}
gateway() {}
heartbeat_sent() {}
heartbeat_received() {}
ready() {}
message_edit(message) {}
recipient_add(message) {}
recipient_remove(message) {}
call(message) {}
channel_name_change(message) {}
channel_icon_change(message) {}
channel_pinned_message(message) {}
user_join(message) {}
guild_boost(message) {}
guild_boost_tier_1(message) {}
guild_boost_tier_2(message) {}
guild_boost_tier_3(message) {}
channel_follow_add(message) {}
guild_discovery_disqualified(message) {}
guild_discovery_requalified(message) {}
guild_discovery_grace_period_initial_warning(message) {}
guild_discovery_grace_period_final_warning(message) {}
reply(message) {}
chat_input_command(message) {}
thread_starter_message(message) {}
guild_invite_reminder(message) {}
context_menu_command(message) {}
auto_moderation_action(message) {}
role_subscription_purchase(message) {}
interaction_premium_upsell(message) {}
guild_application_premium_subscription(message) {}
}
Properties
My library focuses on allowing you to access
absolutely everthing a normal Discord client can.
This means tons and tons of properties defining your client.
Here are some of them:
this.user.v = user.v;
this.user.users = user.users;
this.user.user_settings_proto = user.user_settings_proto;
this.user.user_settings = user.user_settings;
this.user.user_guild_settings = user.user_guild_settings;
this.user.user = user.user;
this.user.tutorial = user.tutorial;
this.user.sessions = user.sessions;
this.user.session_type = user.session_type;
this.user.session_id = user.session_id;
this.user.resume_gateway_url = user.resume_gateway_url;
this.user.relationships = user.relationships;
this.user.read_state = user.read_state;
this.user.private_channels = user.private_channels;
this.user.merged_members = user.merged_members;
this.user.guilds = user.guilds;
this.user.guild_join_requests = user.guild_join_requests;
this.user.guild_experiments = user.guild_experiments;
this.user.geo_ordered_rtc_regions = user.geo_ordered_rtc_regions;
this.user.friend_suggestion_count = user.friend_suggestion_count;
this.user.experiments = user.experiments;
this.user.country_code = user.country_code;
this.user.consents = user.consents;
this.user.connected_accounts = user.connected_accounts;
this.user.auth_session_id_hash = user.auth_session_id_hash;
this.user.api_code_version = user.api_code_version;
this.user.analytics_token = user.analytics_token;
this.user._trace = user._trace;
this.user.supplemental = user.supplemental;
What's new
- Added 27 new events because Discord is very misleading
- Added join_thread function
- Added client supplemental information
Special Thanks To
Github user Luthfi GearIntellix
- Added attachments to the send function
- Added the remove_reaction function
Github user Imraj
- Added close function
- Added terminate function
WARN
WHATEVER HAPPENS TO YOUR ACCOUNT AS A RESULT OF THIS LIBRARY IS WITHIN YOUR OWN LIABILITY. THIS LIBRARY IS MADE PURELY FOR TESTS AND FUN. USE AT YOUR OWN RISK.