Hướng dẫn cổng javascript

React là một thư viện JavaScript mã nguồn mở để phát triển giao diện người dùng (UI) trong ứng dụng web. React được phát triển và phát hành bởi Facebook. Facebook liên tục làm việc trên thư viện React và nâng cao nó bằng cách sửa lỗi và giới thiệu các tính năng mới. Hướng dẫn này bắt đầu với kiến ​​trúc của React, hướng dẫn cách thiết lập dự án, tạo thành phần, JSX và sau đó đi qua các khái niệm nâng cao như quản lý trạng thái, lập trình biểu mẫu, định tuyến và cuối cùng kết thúc bằng ví dụ hoạt động từng bước

Hướng dẫn này được chuẩn bị cho các chuyên gia đang khao khát tạo dựng sự nghiệp trong lĩnh vực phát triển ứng dụng web giao diện người dùng. Hướng dẫn này nhằm mục đích giúp bạn thoải mái khi bắt đầu với các khái niệm React bằng các ví dụ

Trước khi tiếp tục với các loại khái niệm khác nhau được đưa ra trong hướng dẫn này, chúng tôi giả định rằng người đọc đã có kiến ​​thức cơ bản về các khái niệm HTML, CSS và OOPS. Ngoài ra, nó sẽ rất hữu ích nếu người đọc có kiến ​​thức vững chắc về JavaScript

Nếu bạn đang đọc điều này, điều đó có thể có nghĩa là bạn muốn tìm hiểu cách tạo bot bất hòa. js. Đáng kinh ngạc. Bạn đã đến đúng nơi. Hướng dẫn này sẽ dạy cho bạn những điều như

Hướng dẫn này cũng sẽ bao gồm các chủ đề như các lỗi phổ biến và cách giải quyết chúng, giữ mã của bạn sạch sẽ, thiết lập môi trường phát triển phù hợp, v.v. Âm thanh tốt? . Hãy bắt đầu, sau đó

Trước khi bắt đầu

Được rồi, tạo một bot thật tuyệt và tất cả, nhưng có một số điều kiện tiên quyết đối với nó. Để tạo một bot với sự bất hòa. js, bạn nên nắm khá rõ về JavaScript. Mặc dù bạn có thể tạo bot với rất ít kiến ​​thức lập trình và JavaScript, nhưng cố gắng làm điều đó mà không hiểu ngôn ngữ trước sẽ chỉ cản trở bạn. Bạn có thể bị mắc kẹt trong nhiều vấn đề không phức tạp, đấu tranh với các giải pháp cho những vấn đề cực kỳ dễ dàng và cuối cùng là thất vọng. Nghe khá khó chịu

Nếu bạn không biết JavaScript nhưng muốn tìm hiểu về nó, đây là một vài liên kết để giúp bạn bắt đầu

Hãy lựa chọn, tìm hiểu một số JavaScript và khi bạn cảm thấy mình đủ tự tin để tạo bot, hãy quay lại và bắt đầu

Ý định cổng được Discord giới thiệu để các nhà phát triển bot có thể chọn những sự kiện mà bot của họ nhận được dựa trên dữ liệu nào nó cần để hoạt động. Ý định được đặt tên theo nhóm các sự kiện WebSocket được xác định trước, mà sự bất hòa. js khách hàng sẽ nhận được. Ví dụ: nếu bạn bỏ qua DirectMessageTyping, bạn sẽ không còn nhận được sự kiện nhập liệu từ tin nhắn trực tiếp nữa. Nếu bạn không chỉ định ý định, bất hòa. js sẽ báo lỗi

Thay vì kích hoạt tất cả các ý định một cách mù quáng, hãy xem xét thông tin nào bạn thực sự cần. Giảm số lượng sự kiện không cần thiết mà bot của bạn nhận được sẽ cải thiện hiệu suất và giảm mức sử dụng băng thông cũng như bộ nhớ

Ý định đặc quyền

Discord định nghĩa một số ý định là "đặc quyền" do tính chất nhạy cảm của dữ liệu. Tại thời điểm viết bài này, các ý định đặc quyền là GuildPresences, MessageContentGuildMembers. Nếu bot của bạn chưa được xác minh và có ít hơn 100 bang hội, bạn có thể kích hoạt ý định cổng đặc quyền trong Cổng thông tin dành cho nhà phát triển Discordmở ở cửa sổ mới trong "Ý định cổng đặc quyền" trong phần "Bot". Nếu bot của bạn đã được xác minh hoặc sắp yêu cầu xác minh mở trong cửa sổ mới, bạn cần yêu cầu ý định đặc quyền. Bạn có thể thực hiện việc này trong ứng dụng xác minh của mình hoặc bằng cách liên hệ với nhóm hỗ trợ của Discordopen in new window, bao gồm cả lý do bạn yêu cầu quyền truy cập vào từng mục đích đặc quyền

Trước khi bắt đầu và làm như vậy, bạn nên dừng lại và suy nghĩ cẩn thận xem bạn có cần những sự kiện này không. Discord khiến họ chọn tham gia để người dùng trên nền tảng có thể tận hưởng mức độ riêng tư cao hơnmở trong cửa sổ mới. Sự hiện diện có thể tiết lộ khá nhiều thông tin cá nhân, bao gồm các trò chơi đang được chơi và tổng thời gian trực tuyến. Bạn có thể thấy rằng bot của bạn không cần thiết phải luôn có mức thông tin này về tất cả các thành viên bang hội, vì bạn vẫn nhận được tác giả lệnh là Thành viên bang hội từ thông báo thực thi lệnh và có thể tìm nạp các mục tiêu khác một cách riêng biệt

Lỗi. Ý định không được phép

Nếu bạn nhận được lỗi có tiền tố là [DisallowedIntents], vui lòng xem lại cài đặt bảng điều khiển dành cho nhà phát triển của bạn để biết tất cả các ý định đặc quyền mà bạn sử dụng. Kiểm tra tài liệu Discord API open in new window để biết thông tin cập nhật

kích hoạt ý định

Để chỉ định những sự kiện nào bạn muốn bot của mình nhận, trước tiên hãy nghĩ xem bot của bạn cần hoạt động với những sự kiện nào. Sau đó, chọn các ý định cần thiết và thêm chúng vào hàm tạo ứng dụng khách của bạn, như được hiển thị bên dưới

Tất cả ý định cổng và sự kiện thuộc về từng ý định được liệt kê trên tài liệu API của Discordopen in new window

  • Nếu bạn cần bot của mình nhận tin nhắn (_______6 - "messageCreate" bất hòa. js), bạn cần ý định GuildsGuildMessages, cộng với ý định đặc quyền MessageContent để nhận các trường DirectMessageTyping1, DirectMessageTyping2, DirectMessageTyping3 và DirectMessageTyping4 của thông báo
  • Nếu bạn muốn bot của mình đăng thông báo chào mừng thành viên mới (_______15 - DirectMessageTyping6 trong sự bất hòa. js), bạn cần mục đích đặc quyền của GuildMembers, v.v.

const { Client, GatewayIntentBits } = require('discord.js');

const client = new Client({
	intents: [
		GatewayIntentBits.Guilds,
		GatewayIntentBits.GuildMessages,
		GatewayIntentBits.MessageContent,
		GatewayIntentBits.GuildMembers,
	],
});

CẢNH BÁO

Lưu ý rằng bất hòa. js chủ yếu dựa vào bộ nhớ đệm để cung cấp chức năng của nó - điều này có nghĩa là sự phụ thuộc nội bộ vào một số sự kiện nhất định để đảm bảo bộ đệm được phổ biến và cập nhật

Một số phương pháp có vẻ không liên quan có thể ngừng hoạt động nếu một số sự kiện nhất định không đến. Ví dụ

  • Ý định Guilds điền và duy trì bộ nhớ cache DirectMessageTyping9, GuildPresences0 và GuildPresences1, cùng với các sự kiện liên quan đến luồng.
    Nếu mục đích này không được bật, dữ liệu cho các tương tác và tin nhắn sẽ chỉ bao gồm id kênh và bang hội và sẽ không phân giải thành toàn bộ lớp.
  • Mục đích của GuildMembers giúp các thành viên bang hội được lưu trong bộ nhớ cache luôn cập nhật, bao gồm các thay đổi đối với vai trò và quyền, biệt hiệu của họ, v.v.
    Xin lưu ý rằng bạn vẫn nhận được dữ liệu thành viên đầy đủ với các tương tác và tin nhắn mà không cần kích hoạt mục đích này.

Vui lòng đảm bảo cung cấp danh sách các ý định và thành phần của cổng mà bạn sử dụng trong hàm tạo Máy khách của mình khi yêu cầu hỗ trợ trên máy chủ Discord của chúng tôimở trong cửa sổ mới hoặc kho lưu trữ GitHubmở trong cửa sổ mới

Ý định Bitfield

bất hòa. js cung cấp cấu trúc tiện ích GuildPresences3open in new window để đơn giản hóa việc sửa đổi các trường bit ý định

Bạn có thể sử dụng các phương thức GuildPresences4 và GuildPresences5 để thêm hoặc xóa các cờ (Ý định chuỗi ký tự đại diện cho một bit nhất định) và sửa đổi trường bit. Bạn có thể cung cấp các cờ đơn lẻ cũng như một mảng hoặc trường bit. Để sử dụng một tập hợp các ý định làm mẫu, bạn có thể chuyển nó tới hàm tạo. Lưu ý rằng hàm tạo trống GuildPresences6 tạo một thể hiện Ý định trống, không đại diện cho ý định nào hoặc trường bit GuildPresences7

Nếu bạn muốn xem các cờ đã tạo, bạn có thể sử dụng các phương pháp ________ 28, ________ 29. Cái đầu tiên trả về một mảng các cờ được biểu diễn trong trường bit này, cái thứ hai là một đối tượng ánh xạ tất cả các giá trị cờ có thể có thành boolean, dựa trên biểu diễn của chúng trong trường bit này

Tìm hiểu thêm về Bitfield

Ý định và quyền của Discord được lưu trữ trong một số nguyên 53 bit và được tính bằng các phép toán bitwise. Nếu bạn muốn tìm hiểu sâu hơn về những gì đang xảy ra đằng sau bức màn, hãy xem các bài viết Mở trong cửa sổ mới của Wikipedia và MD mở trong cửa sổ mới về chủ đề này

bất hòa. Các trường bit js, Quyền và Ý định được biểu thị dưới dạng giá trị thập phân của trường bit đã nói hoặc các cờ được tham chiếu của nó. Mọi vị trí trong trường bit quyền đại diện cho một trong những cờ này và trạng thái của nó (được tham chiếu MessageContent0 hoặc không được tham chiếu GuildPresences7)