※ 작성자가 작성한 내용이 일부 틀릴 수도 있음 주의
※ 직접 하면서 알게된 것을 모두 써서 사족이 많음
※ 리빙 포인트) 리팩토링을 하니까 여기에 코드를 직접 올리기가 어렵다.
친구가 구글 클라우드로 마인크래프트 서버를 돌릴 수가 있다더라
조금 전에 디스코드 봇을 24시간 돌릴 수 있는 서버 호스팅 사이트(가급적 무료)를 찾아나섰는데
친구가 구글 클라우드로 마인크래프트 서버를 무료로 돌릴 수가 있다더라고 했다.
무료는 항상 옳기 때문에 바로 실행에 옮기기 시작했다.
검색을 해보니 가장 눈에 띄는 사이트는
https://namu.wiki/w/Discord/%EB%B4%87/%ED%98%B8%EC%8A%A4%ED%8C%85
킹-무 갓-키
더럽고 추하게 나무위키를 보고 테스트 겸으로 그대로 다 따라했는데
너무나도 완벽하게 잘 돌아간다.
나무위키랑 링크로 들어가는 블로그에 설명이 너무 잘 되었어서
굳이 여기에 중복되는 내용을 적지는 않으려고 한다.
그리고 새벽 3시(햄버거 먹을 시간)가 넘어서 빨리 글을 남기고 자고 싶어서이기도 하다.
조금만 추가할 내용만 적당히 적고 넘어가려고 한다.
봇 파일을 깃허브 말고 바로 업로드하는 방법도 된다.
깃허브를 통하는 방법은 실수로 public에서 디스코드 토큰을 노출시키는 위험도 있고
gitignore로 혹시나 필요한 파일을 포함하지 않고 github에 올린 경우가 있을 수 있다.
개인적으로 한다면 상관없지만, 나는 현재 공개를 염두에 두고 있다보니
깃허브 말고 바로 업로드하는 방식으로 하였다.
인스턴스 콘솔을 브라우저에서 열면 상단에 파일을 업로드할 수 있다.
디스코드 봇 파일(폴더)를 압축해서(원하는 형식으로) 업로드를 한 후에...
아마도 대부분 windows에 익숙해서 zip 파일로 압축해서 옮겼을 것 같은데,
물론 컴퓨터에 windows를 깔고 가상으로 ubuntu를 쓰거나 wsl을 쓰는 나도 마찬가지라
zip 파일로 파일을 업로드해서 압축 해제를 못?할 것이다. (tar 로 되는지 확인 안 해봄)
이를 해결하기 위해서는 unzip을 이용해주면 된다.
sudo apt-get install unzip
인스턴스 콘솔에 이것을 입력해주고 unzip이 깔리면
unzip XXX.zip
이 명령어로 해제가 가능하다.
따로 폴더를 만들지 않고 바로 흩뿌려질텐데
어차피 디스코드 봇 용으로만 쓰려고 한거니까 상관없다.
그렇게 하고 나서 나무위키에 나온대로 봇을 실행해주면 된다.
주사위 기능
알다시피 기존에 만든 봇은 한 파일에 모든 기능을 다 때려부은
정말 naive한 상태의 야생 코드라고 볼 수 있다.
회사 인턴을 하면서 좀 깨달은 것으로 리팩토링을 했는데...
간단하게 말하자면 UI, util, 로직 코드를 각 파일로 구분하고 dependency를 적당히 했다보니
여기에 다 올리기에는 매우 귀찮은 형태가 되었다.
물론 개발하기에는 매우 좋은 형태이지만 말이다.
class diagram 또는 module view 라도 올릴까 생각했는데
빨리 글 남기고 자야지가 30분이 넘어서 거의 4시를 바라보고 있다.
결과 형태를 캡쳐로 남기고 자야겠다.
간단하게 구조를 잡는 형태로 기본 기능만 넣었고,
다른 기능 리팩토링 이후에 좀 더 꾸미거나 추가할 것이 있으면 추가해보려고 한다.
이모티콘 사용
별 내용 아니라서 이것까지만 넣어야겠다.
아래는 주사위 UI 코드의 일부다.
def diceEmbedFactory(contents):
embed = discord.Embed(title=":game_die: 주사위 결과", description=contents, color=color.DEFAULT_VALID_COLOR)
return embed
중간의 :game_die: 가 주사위 이모티콘이다.
이렇게 string에 해당 이모티콘의 string 값을 넣어주면
디스코드에서 자동으로 변환된 형태로 들어간다.
여담
아 개강 싫어
졸립다 자야지
'개발일지 > 디스코드 봇' 카테고리의 다른 글
디스코드 봇 개발 일지 2024-03-04 - load_extension, add_command (0) | 2024.03.04 |
---|---|
디스코드 봇 개발 일지 2024-02-25 - 코드 리팩토링 + command aliases (0) | 2024.02.25 |
디스코드 봇 개발 일지 2024-01-19 - 로컬에서 LLM 돌려보기 대실패 (0) | 2024.01.19 |
디스코드 봇 개발 일지(아님) 2023-07-19 - 학습한 AI 모델한테 노래 부르게 하기 (0) | 2023.07.19 |
디스코드 봇 개발 일지 2023-07-12 - TTS 봇 - 갑자기 깨달음 (계획 변경) (0) | 2023.07.12 |