atbrauc uz manu māju, paskaties man acīs un tad uzbrūc D:
laikam jaunu par discord botiem. kāpēc gan ne?
atbrauc uz manu māju, paskaties man acīs un tad uzbrūc D:
laikam jaunu par discord botiem. kāpēc gan ne?
Eamu atvērts konkrētākiem ieteikumiem, varam doties super specifiski, vai vaļīgāk. Skatos tādu jau pastāvošu discord tematu nav. Ir iespēja izpausties, uzcept pēc savas patikas voenu, un es šo diskusiju pārcelšu tur
“Discord botu programmēšana” I guess.
Lai gan izskatās, ka dižas jēgas nav, jo kāds par kaut ko apvainojās, un topiks ir dead.
? haha
es tikai negribēju vilkt vēl sarunu garumā jo pagaidām nedaudz atkal iesprūdu un fokusējos uz to
neatbildēju tev, jo sakaunējos, ka sajaucu lietas
nu gan, nu gan
Neko nesaprotu…
ok, reku ašu uzmetīšu, kā es tiku pie ļoti lobotomizēta bota, ar kuru es tagad smagi cīnos. šo info var atrast arī jebkur citur internetā, bet man nācās paraustīt matus, lai piedabūtu savējo pie dzīvības :[
!!!neuzņemos atbildību par problēmām!!!
ko es izmantoju: notepad++, cmd, node.js, savu privāto discord serveri priekš testēšanas
dodies uz discord developer portal, ielogojies ar savu discord, ja tas jau nav automātiski noticis, un uztaisi jaunu application. vari pievienot bildi, aprakstu, tagus, utt. bet tas nav svarīgi bota funkcionalitātei
dodoties uz tabu Bot nospied Reset Token un saglabā šo kodu un nerādi nevienam citam.grrr. arī neliec šo kodu galvenajā failā, ko radīsi. + šo kodu atkārtoti pēc lapas aizvēršanas vairs nedabūsi, tādēļ pieraksti kaut vai uz lapiņas (hehe)
dodies uz oauth2 > url generator un atzīmē, ka tā scope ir ‘bot’. parādīsies vēl viens lodziņš kurā vari atzīmēt ko vien vēlies, bet man vajadzēja tikai lasīt ziņas/rakstīt ziņas. tad izmantojot saiti, ko redzi apakšā ielūdz botu uz savu serveri
uzinstalē node.js
ieraksti npm init -y
lai dzemdētu papildus failus, kas būs nepieciešami botam
npm install dotenv
npm install discord.js
es izmantoju discord.js. viņu website ar vairāk pamācībām un labākiem paskaidrojumiem bet šis ir quick & dirty daļēji tutoriālis daļēji pieraksts man, lai es atceros, ko darīju.
module.exports = {
token: "liecsavutokenute"
}
// inicializē visu
const { Client, Events, GatewayIntentBits } = require('discord.js');
const { token } = require('./config.js'); //ar šo tu norādi, ka tokenu meklē citā failā
const client = new Client({ intents: [GatewayIntentBits.Guilds, GatewayIntentBits.GuildMessages, GatewayIntentBits.MessageContent
] }); // dod nolādētās atļaujas - redzēt serveri/redzēt servera ziņas/lasīt servera ziņas
client.once(Events.ClientReady, readyClient => {
console.log(`Sveiki, ${readyClient.user.tag}`); //kad bots būs veiksmīgi nokļuvis tiešsaistē, terminālī parādīsies šī ziņa
});
//ar šo tu klausies sūtītās ziņas un atbildi uz tām
client.on('messageCreate', message => {
console.log(`Received message: ${message.content}`); //parāda, vai vispār bots saņem/saprot ziņas.
if (message.content.toLowerCase() === 'hi') {
message.channel.send('owo');
}
});
client.login(token); //šeit atsaucies uz tokenu, ko iecepi config.js
node index.js
un, ja viss notika veiksmīgi un es neaizmirsu iekļaut kādu soli, tavā discord serverī bots iedegsies ar zaļu gaismiņu, terminālis tev teiks ‘Sveiks, botanosaukums#1234
’ un tu varēsi teikt botam hi un viņš tevi agresēs un teiks owo.beigās tavai bota mapei jāizskatās šādi
un tad rocies cauri pats visai dokumentācijai un mācies, kā panākt botam darīt to, ko tu gribi. pēc katras koda maiņas gan bots jāizslēdz ar ctrl+c, jāsagaida, kad tas izies offline un tad jāieslēdz atkal ar to pašu node index.js
. Varbūt nav jāgaida, kad tas izies offline, bet es tā daru jo man ir daudz laika.
Javascript gan nav mana iecienītākā valoda, tādēļ neuzņemos atbildību par shit kodu, bet ja tev sanāca šo izveidot, tad apsveicu. Tālāk pēc bota izveidošanas un pieprogrammēšanas vari to laist pasaulē, bet tur ir jāmeklē hosti utt… Es šo personīgi izmantošu tikai privāti (jo es to taisu, lai automatizētu šīs spēles darbību), un tādam nolūkam man pilnīgi pietiek ar lokāli palaistu un tā pie dzīvības uzturētu botu.
daži soļi ir ļoti vague jo rakstot svārstījos starp mērķauditoriju. ja kaut kas nav skaidrs, varu papildināt vēl. taisām savu botu armiju! tie, protams, varēst pateikt tikai ‘owo’ bet arī tas nav zemē metams panākums.
FYI, Node projektus parasti sāk ar npm init
, un tikai pēc tam instalē dependencies ar npm install ...
.
Tas pats arī ir teikts discord.js tutoriālī: Installing Node.js and discord.js | discord.js Guide
hehe tagad zināšu. pirmā reize strādājot ar to! tūlīt pielabošu, lai būtu korektāk :D
Also, silti iesaku izmantot Git (un kaut kādu Git klientu, kaut vai to pašu Git GUI) versiju kontrolei.
Strādā tas ļoti vienkārši:
git init
, bez parametriem)git add *
, git commit -m "Added proper response to this or that event."
- izmantojot Git klientu, var izvēlēties, kurus failus kommito, caur konsoli tor ir baigais gemorojs darīt, neiesaku);git status
- saraksts ar izmainītajiem failiem, git diff
konkrēti izmaiņām) - šis ļoti noder, kad piemirstās, kas jau ir izdarīts, un kas vēl palicis.git branch type/name-here
, git checkout type/name-here
; type/
prefikss ir vnk for convenience, e.g. feature/new-response-format
, bugfix/this-shit-doesnt-work
, maintenance/this-crap-again
, etc. Tipiski tos sauc par feature branchiem, un pamatbranchu, ar kuru viss sākās - par main branch. Kad tiek uztaisīts jauns branch, visi kommiti iet tikai tajā feature branch, bet ne main branch. Tādējādi var strādāt pie vairākām lietām paralēli un pārslēgties starp tām ar git checkout branch-name
, tikai jāatceras vispirms iekommitot izmaiņas, jo ja mēģinās pārslēgties no iesākta brancha ar nepabeigtām izmaiņām uz jebkuru citu branchu, tad izmetīs kļūdu (vai vismaz vajadzētu izmest, baigi sen neesmu termināli izmantojis priekš Git, neatceros). Un, kad feature branch ir pabeigts un viss strādā, tad git checkout main
, git merge feature/blabla
← šī komanda ievilks visus kommitus no feature brancha main branchā. Un te ir visjautrākā lieta - var rasties konflikti. Tāpēc optional, jo ar tiem konfliktiem ir jāmāk apieties, un man bieži ir sanācis palīdzēt jaunākiem kolēģiem ar šo.man no git ir meeeeega alerģija kopš es pastrādāju 2gadus kā sistēmu analītiķis un mani tas traumēja kad es uztaisīju megaupsi un commitoju kaut ko production branchā, jo man, izrādās, bija tāda privilēģija to darīt.
bet git gadījumā tad jāatzīmē, ka config.js jāliek .gitignore, lai tavs tokens netiek nekur triekts ārpus tava skatuloka
git ir ļoti forša fīča. bet es mmmmmmmmnemākujoprojām. nepieņemu jautājumus unvai kritiku par šo. programmēšana nav mans maizes darbs :D
Uiiiii…
Vai arī varbūt config.js
var iebarot, lai nolasa to tokenu no .env
faila, un tad .gitignore
, ofc, jāliek .env
failu. Jo config.js
var saturēt citu projektam svarīgu konfigurāciju, kura nav secret, un kurai vajadzētu būt Gitā.
Bet vienkāršāk ir vnk uztaisīt config.js.dist
ar placeholder vērtībām, un iemest config.js
@ .gitignore
, ofc.
Pamēģini bez branchiem, tikai tupa pliekani kommiti main branchā. Vienkārši pašu ideju par katra uzdevuma skaidru atdalīšanu no citiem uzdevumiem papraktizēt. Jo es esmu ievērojis, ka ļoti daudziem cilvēkiem ar šo ir problēmas, patīk visu bāzt vienā maisā, un tad ir baigā problēma atšķetināt, kas ir kas.
Man git ar traumi iedzina, kad kautkas aiziet uz production. Pat ja negr8bēju to branch.
Bļin, a kurš tev deva prod push pieeju? Pull requests ONLY when it comes to prod.
tu man tagad mēģini iebarot sīpolus! bet nu varbūt beidzot iemācīšos gitu. somethingsomethinglaba prasme priekš CVsomething
Sīpoli ir veselīgi!
Git pašam atvieglos dzīvi, varēsi vismaz revertot atpakaļ uz vecāku versiju kad invitabley kaut ko salaidīsi grīstē
Beet īstais jautājums ir vai es Tevi pareizi sapratu un Tu kā ide izmanto notepad++?
If so, why do you hate yourself? Esi cilvēks un izmanto VSCode
Yeah, es to pašu gribēju teikt par Notepad++, bet nepateicu
Vispār, man iepriekšējā darbā team leads “programmēja” Notepad++… visu projektu 3 gadu garumā bija tā uzcepis, un dievs vien zin, ko vēl pirms tam. Needless to say, his code was not great, to say the least. Pielauzu pāriet uz PhpStorm, bet hz, vai viņš turpina to lietot pēc manas aiziešanas, gan jau ka par spīti nelieto.
^_^ esmu tas cilvēks, uz kuru rāda ar pirkstu un saka ‘nedari tā’. ikdienā kodu nerakstu, tādēļ man nav nepieciešamības pēc dedicated ide kas appelētu uz cietā, jo es to atvērtu varbūt reizi gadā, kad man paliek nelabi ap apziņu un es izdomāju kaut ko mēģināt uzcept (kā šoreiz).
atkāpieties, nelabie (es pārmetu krustu, bet jūs to neredzat)
VS Code nav IDE, tas ir ļoti advanced text editors.