Discord js kullanılarak yazılmış bir bilgi komutu. Komutu kullanarak belirtilen şehir için hava durumu öğrenin. Kurulum için aşağıdaki talimatları izleyin.
⚠ Botunuza hangisi uygunsa o kodu kullanın.
Kurulum için aşağıdaki adımları izleyin:
- Bu kod projenizdeki
komutlar
ya da commands
adındaki klasöre atılmalıdır. Eğer eklemeyi bilmiyorsanız buraya tıklayın.
- Komut içerisindeki gerekli yerleri kendinize göre düzenleyebilirsiniz.
- Gerekli modüller:
Discord.js
, node-fetch
- Bir API anahtarı almak için OpenWeatherMap sitesine kaydolun.
Discord.js v13 için;
// Komutlar klasörüne atılmalıdır.
// Bu komut Staup tarafından hazırlanmıştır.
const fetch = require('node-fetch');
const Discord = require('discord.js');
const apiKey = 'YOUR_OPENWEATHERMAP_API_KEY';
exports.run = async (client, message, args) => {
if (!args[0]) {
return message.channel.send('Lütfen bir şehir adı giriniz.');
}
const city = args.join(' ');
const url = `http://api.openweathermap.org/data/2.5/weather?q=${city}&appid=${apiKey}&units=metric&lang=tr`;
try {
const response = await fetch(url);
const weatherData = await response.json();
if (weatherData.cod === '404') {
return message.channel.send('Şehir bulunamadı, lütfen geçerli bir şehir adı giriniz.');
}
const embed = new Discord.MessageEmbed()
.setTitle(`${weatherData.name} için Hava Durumu`)
.addField('Sıcaklık', `${weatherData.main.temp}°C`, true)
.addField('Hissedilen Sıcaklık', `${weatherData.main.feels_like}°C`, true)
.addField('Hava Durumu', weatherData.weather[0].description, true)
.addField('Nem', `${weatherData.main.humidity}%`, true)
.addField('Rüzgar Hızı', `${weatherData.wind.speed} m/s`, true)
.setColor('#00aaff')
.setFooter('Hava durumu bilgisi OpenWeatherMap tarafından sağlanmaktadır.', client.user.displayAvatarURL());
message.channel.send({ embeds: [embed] });
} catch (error) {
console.error(error);
message.channel.send('Hava durumu bilgisi alınırken bir hata oluştu.');
}
};
exports.conf = {
enabled: true,
guildOnly: true,
aliases: ['hava', 'weather'],
permLevel: 0
};
exports.help = {
name: 'havadurumu',
description: 'Belirtilen şehir için hava durumu bilgisini getirir.',
usage: 'havadurumu [şehir adı]'
};
Discord.js v14 için;
// Komutlar klasörüne atılmalıdır.
// Bu komut Staup tarafından hazırlanmıştır.
const { EmbedBuilder } = require('discord.js');
const fetch = require('node-fetch');
const apiKey = 'YOUR_OPENWEATHERMAP_API_KEY';
module.exports = {
name: 'havadurumu',
description: 'Belirtilen şehir için hava durumu bilgisini getirir.',
usage: 'havadurumu [şehir adı]',
execute: async (message, args) => {
if (!args[0]) {
return message.channel.send('Lütfen bir şehir adı giriniz.');
}
const city = args.join(' ');
const url = `http://api.openweathermap.org/data/2.5/weather?q=${city}&appid=${apiKey}&units=metric&lang=tr`;
try {
const response = await fetch(url);
const weatherData = await response.json();
if (weatherData.cod === '404') {
return message.channel.send('Şehir bulunamadı, lütfen geçerli bir şehir adı giriniz.');
}
const embed = new EmbedBuilder()
.setTitle(`${weatherData.name} için Hava Durumu`)
.addFields(
{ name: 'Sıcaklık', value: `${weatherData.main.temp}°C`, inline: true },
{ name: 'Hissedilen Sıcaklık', value: `${weatherData.main.feels_like}°C`, inline: true },
{ name: 'Hava Durumu', value: weatherData.weather[0].description, inline: true },
{ name: 'Nem', value: `${weatherData.main.humidity}%`, inline: true },
{ name: 'Rüzgar Hızı', value: `${weatherData.wind.speed} m/s`, inline: true }
)
.setColor('#00aaff')
.setFooter({ text: 'Hava durumu bilgisi OpenWeatherMap tarafından sağlanmaktadır.', iconURL: message.client.user.displayAvatarURL() });
message.channel.send({ embeds: [embed] });
} catch (error) {
console.error(error);
message.channel.send('Hava durumu bilgisi alınırken bir hata oluştu.');
}
},
};