Golang Discord Bot

Golang Discord Bot
W tym samouczku dowiemy się, jak utworzyć bot niezbędny za pomocą języka programowania Go.

Utwórz serwer Discord

Aby utworzyć bota dla niezgody, będziesz potrzebować serwera niezgody, w którym jesteś administratorem. Możesz zrobić, otwierając przeglądarkę i nawigując na stronę Discord:

http: // niezgoda.com

Zaloguj się na swoje konto Discord i utwórz serwer do testowania. W naszym przykładzie tworzymy samouczek o nazwie „Linuxhint_Tuts Server”

Po uzyskaniu serwera testowego możesz przystąpić do utworzenia aplikacji dla swojego bota Discord. Otwórz portal programisty Discord:

https: // niezgoda.com/programistów/aplikacji

Kliknij przycisk nowego aplikacji, aby dodać nową aplikację Discord. Ustaw nazwę swojej aplikacji i kliknij Utwórz.

Po utworzeniu aplikacji kliknij, aby otworzyć ją z listy dostępnych aplikacji. Następnie wybierz opcję BOT w lewym menu.

Kliknij Dodaj bot, aby utworzyć nowy bot do swojej aplikacji. To stworzy nowy bot z nowym tokenem bota. Skopiuj i zapisz token bota.

Następnie przejdź do dołu strony i wybierz pozwolenie na bot.

Po uzyskaniu uprawnień zestawu bota otwórz przeglądarkę i przejdź do następującego zasobu:

https: // niezgoda.com/oAuth2/autoryzuj?client_id = [client_ide] & scope = bot, w którym identyfikator klienta jest identyfikatorem klienta dla Twojej aplikacji. Ten identyfikator można znaleźć w sekcji OAuth z aplikacji:

Powyższy zasób umożliwia dodanie bota do serwera.

Wybierz swój serwer i kliknij autoryzuj.

Budowanie bota niezgody

Po skonfigurowaniu aplikacji Discord i bota możemy kontynuować, aby utworzyć bot niezniszczany. W tym przewodniku użyjemy pakietu DiscordGO, który zapewnia funkcjonalność niskiego poziomu do pracy z API Discord.

Zacznij od utworzenia działającego katalogu do przechowywania kodu dla twojego bota niezgody.

Mkdir Discord-Bot

Przejdź do katalogu i zainicjuj menedżera modów dla swojego projektu:

CD Discord-Bot
idź mod init init discord-bot
Idź modnie

Następnym krokiem jest utworzenie struktury projektu. Zacznij od utworzenia katalogów konfiguracji i botów:

Mkdir Config Bot

Katalog konfiguracyjny będzie działał jak pakiet, który odczytuje konfigurację dla serwera Discord. Folder botowy przechowuje kod dla bota niezgody.

Następnie utwórz plik główny, którego użyjemy, aby uruchomić bot. Głównie.Go Plik, dodaj następujący kod:

Pakiet Main
import (
„Discord-Bot/Bot”
„Discord-Bot/Config”
"dziennik"
)
funcMain ()
err: = config.ReadConfig ()
Jeśli err != zero
dziennik.Fatalny (err)
powrót

nerw.Uruchomić()
<-make(chanstruct)
powrót

W powyższym przykładzie zaczynamy od zaimportowania kodu wyeksportowanego przez pakiety konfiguracji i botów. Dodamy kod tych pakietów w nadchodzących sekcjach.

Następnie wywołujemy metodę ReadConfig () z pakietu konfiguracyjnego. Na koniec uruchamiamy bot za pomocą metody run () z pakietu bota.

Następnym krokiem jest ustawienie konfiguracji dla twojego bota. W katalogu głównym utwórz konfigurację.plik JSON i dodaj następujące wpisy:


„Token”: „OTM3OTU0MDY1OTU3MTMWMJCW.Yfjpyw.gebrcbqzjgrvchtfbvCj2Ywuzl4 ",
"prefiks": "!"

Plik JSON zawiera token dla twojego bota, jak skopiowano w poprzednich krokach. Następny jest prefiks, który określa prefiks, który należy śledzić, aby wywołać polecenie BOT. Dowiedz się więcej o prefiksie BOT w poniższym zasobie:

https: // discordpy.ReadThedocs.io/en/stabil/ext/Commands/API.html#niezgoda.ext.polecenia.Nerw.Command_Prefix

Następnie przejdź do katalogu konfiguracji i utwórz konfigurację.Plik Go. W konfiguracji.Go Plik, dodaj kod, jak pokazano poniżej:

Konfiguracja pakietu
import (
„Kodowanie/JSON”
„IO/ioutil”
"dziennik"
)
var (
String tokena
Prefiks ciąg
config *configSstruct
)
Wpisz konfigurator struktur
Token String „JSON:„ Token ”''
Prefiks ciąg „JSON:„ PREFIX ”''

FUNCREADCONFIG () Błąd
Plik, err: = ioutil.Odczyt (”./Config.JSON ”)
Jeśli err != zero
dziennik.Fatalny (err)
powrót błędu

err = json.UnmarShal (plik i konfiguracja)
Jeśli err != zero
dziennik.Fatalny (err)
powrót błędu

Token = config.Znak
Prefix = config.Prefiks
powrót zero

W powyższym kodzie zaczynamy od zaimportowania naszych wymaganych pakietów. Obejmuje to kodowanie/JSON do marszu.

Następnie definiujemy strukturę do przechowywania wartości odczytanych z pliku JSON. Następnie kontynuujemy tworzenie funkcji ReadConfig. Ta funkcja wykorzystuje metodę IOUTIL do odczytania konfiguracji.plik JSON. Następnie korzystamy z danych JSON i Unmarshal za pomocą JSON.Metoda Unmarsal ().

Następnie przejdź do katalogu botów i stwórz bot.Plik Go. To pomieści kod źródłowy dla bota.

Dodaj kod źródłowy jako:

Bot pakietu
import (
„Discord-Bot/Config”
"dziennik"
„Github.com/bwmarrin/discordgo "
)
varbotidString
VARGOBOT *DISCORDGO.Sesja
funcrun ()
// Utwórz sesję botów
Gobot, err: = Discordgo.Nowy („bot” + config.Znak)
Jeśli err != zero
dziennik.Fatalny (err)
powrót

// uczyń bot użytkownikiem
użytkownik, err: = gobot.Użytkownik („@me”)
Jeśli err != zero
dziennik.Fatalny (err)
powrót

Botid = użytkownik.ID
Gobot.AddHandler (MessageHandler)
err = gobot.Otwarty()
Jeśli err != zero
powrót


FuncMessageHandler (S *Discordgo.Sesja, m *Discordgo.Mesagecreate)
// ignoruj ​​wszystkie wiadomości utworzone przez samego bota
Jeśli m.Autor.Id == botid
powrót

// Jeśli wiadomość brzmi „Cześć” Odpowiedz z „cześć z powrotem!!"
ifm.Content == "hi"
_, _ = s.ChannelMessagesend (m.ChannelId, „Cześć Back”)



Kod powyżej używa pakietu DiscordGO do zdefiniowania funkcjonalności bota. Możesz dowiedzieć się więcej w poniższym zasobie:

https: // github.com/bwmarrin/discordgo

Po zakończeniu uruchom plik jako:

Uruchom główny.Iść

To powinno rozpocząć bot niezgody. Przejdź do swojego serwera Discord i wpisz HI. Jeśli bot działa poprawnie, powinien cofnąć się.

Wniosek

Ten przewodnik obejmuje sposób utworzenia bota niezgody za pomocą pakietu Go i DiscordGo. Ten projekt jest inspirowany przykładem Ping Pong w pakiecie Discordgo:

https: // github.com/bwmarrin/discordgo/drzewa/master/przykłady/pingpong