IntellCreatio (Discord 봇 아키텍처)

이 게시물을 읽기로 결정한 모든 분들께 인사드립니다. 이 게시물에서 문자 그대로 얼마 전에 쓰기 시작한 아키텍처에 대해 조금 이야기하고 이 프로젝트를 함께 개발할 같은 생각을 가진 사람들을 찾고 있습니다!

이것이 정확히 무엇입니까?
이것은 대중적인 라이브러리discord.js를 기반으로 디스코드 봇의 개발을 단순화하고 보다 효율적으로 만드는 것을 목표로 하는 아키텍처입니다.

설명
최근 몇 년 동안 Discord API는 매우 발전했으며 점점 더 기능적으로 성장하여 이미 관리하기 어려워지고 있습니다(인기 있는 러시아어 discord 서버용 봇을 만든 사람으로서 말씀드립니다).

채팅에 무언가를 쓰거나 특정 규칙을 위반한 참가자를 절단하고 추방하는 간단한 봇을 만드는 것은 어렵지 않습니다.

그리고 특정 서버에서 경제를 담당할 봇, 이 경제를 중심으로 구축된 미니 게임, 역할에 대한 금지 및 음소거 형태의 중재자를 위한 편의성이 필요한 경우 해야 할 일입니다.

이것에 대해 무심코 생각하기 시작하면 간단하지만 해결하기가 매우 어려운 문제가 있습니다. 시간이 지남에 따라 코드 기반이 잉여가되거나 별도의 패키지에 넣을 수있는 유틸리티 세트 또는 모두 제거, 데이터베이스 작업, 시간이 지남에 따라 작업-이 모든 것이 매우 어렵습니다.

현재 아키텍처를 지원하는 것은 무엇입니까?


  • 환경 변수(.env)
  • 데이터베이스(TypeORM)
  • 전체 TypeScript(ts-node)
  • 유연한 구성 파일
  • 핫 리로드
  • 상호작용 라우터
  • 로케일(i18n)

  • 상호작용 라우터
    명령이나 상황에 맞는 메뉴를 자동으로 로드하는 스크립트를 만드는 대신 특정 스크립트를 로드하는 더 나은 방법을 만들기로 결정했습니다.
    interactions.json라는 파일이 있습니다. 이 파일에는 일부 스크립트에 대한 전체 링크가 있습니다.

    {
        "commands": {
            "example": "~/interactions/commands/example.ts"
        },
        "user_context_menu": {
            "Log in Console": "~/interactions/context_menus/example.ts"
        },
        "message_context_menu": {},
        "buttons": {
            "delete": "~/interactions/buttons/delete.ts"
        },
        "select_menus": {}
    }
    
    ~ - 이것은 프로젝트 루트 디렉토리의 경로입니다.

    따라서 스크립트는 어디에나 있을 수 있으며 언제든지 끌 수 있습니다.

    이 프로젝트에 기여하세요 <3 (도와주세요!)


    인텔리크리에이션 / 인텔리크리에이션


    Discord Bot용 아키텍처





    IntellCreatio


    편리한 작동을 위한 Discord 봇용 아키텍처.
    봇을 구성하려면 이 프로젝트의 두 파일, 즉 config.ts.env.example 를 참조해야 합니다.
    .env.example - 파일 이름을 .env로 바꾸고 파일을 구성합니다.
    config.ts - 이 파일은 봇을 완전히 구성하는 데 필요합니다. 원하는 필드를 추가할 수도 있지만 이미 존재하는 필드에 주의하십시오.

    로케일


    폴더의 로케일 저장소locales에서 변경할 수 있습니다src/consts.ts 값 constLOCALES_FOLDER_NAME를 자신에게 변경

    데이터베이스 구성(TypeORM)

    database.config.ts에 위치

    엔티티

    entities 폴더의 프로젝트 루트에 있으며, 여기에서 데이터베이스용 모델을 생성한 다음 database.config.ts에서 이러한 엔터티를 연결합니다.


    View on GitHub

    좋은 웹페이지 즐겨찾기