Minecraft için DiscordSRV Tam Kurulumu
Discord'u bir Minecraft sunucusuna bağlamak için DiscordSRV eklentisini sunucunuza (Spigot/Paper) yükleyin, Discord Geliştirici Portalında bir bot oluşturun, token'ını config.yml dosyasına yapıştırın ve sohbet senkronizasyonu için kanal ID'lerini belirtin. Rollerin bağlantısını kurmak için synchronization.yml dosyasını yapılandırarak oyun içi grupları (rütbeleri) Discord'daki rollerle eşleştirin. Bu, mesajların çift yönlü iletilmesini ve oyuncu yetkilerinin otomatik olarak yönetilmesini sağlar.
Aşağıda, eklentinin tüm işlevlerinin güvenli ve doğru şekilde yapılandırılmasına ilişkin ayrıntılı bir kılavuz yer almaktadır.
İçindekiler
Hazırlık: Bot oluşturma ve kurulum {#hazirlik}
Yapılandırma dosyalarını düzenlemeden önce altyapının hazırlanması gerekir.
1. Eklentinin kurulması
Güncel DiscordSRV sürümünü resmi web sitesinden veya SpigotMC'den indirin ve .jar dosyasını sunucunuzun plugins klasörüne yerleştirin. Yapılandırma dosyalarının oluşturulması için sunucuyu yeniden başlatın.
2. Discord'da uygulama oluşturma
- Discord Geliştirici Portalına gidin.
- New Application düğmesine tıklayın ve bir ad verin (örneğin, "MyServer Bot").
- Bot sekmesine geçin → Add Bot.
- Privileged Gateway Intents bölümünde şunları etkinleştirin:
- Server Members Intent (rol senkronizasyonu için gereklidir).
- Message Content Intent (sohbetteki mesajları okumak için gereklidir).
- Botun Token'ını kopyalayın. Yapılandırma dosyası için buna ihtiyacınız olacak.
Bot token'ınızı asla yayınlamayın veya üçüncü şahıslarla paylaşmayın. Token sızarsa, geliştirici panelindeki Reset Token düğmesine tıklayın.
3. Botu sunucuya ekleme
- OAuth2 → URL Generator sekmesinde
botveapplications.commandskapsamlarını seçin. - Bot Permissions bölümünde şunları işaretleyin:
- Manage Roles (rol atamak için).
- Send Messages, View Channels, Read Message History.
- Manage Nicknames (isteğe bağlı, takma adların senkronizasyonu için).
- Bağlantıyı oluşturun, bağlantıya gidin ve botu Discord sunucunuza ekleyin.
Sohbet kurulumu: Kanalları bağlama {#sohbet-kurulumu}
Eklentinin ana işlevi, mesajların oyun ve Discord arasında kopyalanmasıdır.
plugins/DiscordSRV/config.ymldosyasını açın.DiscordBotTokensatırını bulun ve hazırlık aşamasında aldığınız token'ı buraya yapıştırın.Channelsbölümünü bulun. Burada kanal eşleşmeleri belirtilir.
Ana sohbet için örnek yapılandırma:
Channels:
# Format: "oyun_kanali": "Discord_Kanal_ID"
# 'global' — Minecraft'taki standart sohbettir (genellikle ana sohbet)
global: "123456789012345678"
Discord'da Kanal ID'si nasıl öğrenilir? Kullanıcı ayarlarına gidin → Gelişmiş → Geliştirici Modunu etkinleştirin. Ardından Discord'da istediğiniz kanala sağ tıklayın ve «ID'yi Kopyala» seçeneğini belirleyin.
Ek sohbet ayarları
Aynı config.yml dosyasında görüntüleme ince ayarları yapılabilir:
DiscordChatChannelTruncateLength: Oyuna gönderilmeden önce Discord mesajının uzunluk sınırı (sohbeti spamlememek için).MinecraftChatToDiscordFormat: Discord'daki mesaj formatı (%displayname%,%message%gibi değişkenleri destekler).DiscordChatChannelToMinecraftFormat: Discord kullanıcılarından gelen mesajların oyundaki formatı.
Değişikliklerden sonra sunucu konsolunda veya oyunda (yönetici yetkileriyle) şu komutu çalıştırın:
/discordsrv reload
Rol ve hesap senkronizasyonu {#rol-senkronizasyonu}
Bu işlev, oyunda bağış alındığında veya rütbe yükseltildiğinde Discord'da otomatik olarak rol verilmesini ve tersinin de yapılmasını sağlar.
1. Hesapları bağlama (Linking)
Oyuncunun Minecraft adını Discord hesabıyla ilişkilendirmesi gerekir.
linking.ymldosyasındaEnabled: trueolduğundan emin olun.- Oyuncu oyunda
/discord linkkomutunu girer, bir kod alır ve bu kodu Discord'da botun özel mesajına girer. config.ymldosyasındakiRequireLinkedAccountToJoinseçeneği, bağlantılı olmayan oyuncuların sunucuya girişini engelleyebilir (dikkatli kullanın).
2. Rol senkronizasyonu ayarları
synchronization.yml dosyasını açın.
LuckPerms grup eklentisi için örnek ayar (en popüler seçenek):
Groups:
Enabled: true
# Eşleştirme: "Discord'daki Rol": "LuckPerms'deki Grup"
Roles:
"112233445566778899": "vip" # Discord Rol ID -> vip grubu
"998877665544332211": "admin" # Discord Rol ID -> admin grubu
# Oyuncu oyunda grubunu kaybederse roller silinsin mi?
RemoveRolesOnUnlink: true
Farklı yetki eklentileri (PermissionsEx, GroupManager) kullanıyorsanız mantık benzerdir, ancak anahtar adları eklenti sürümüne bağlı olarak farklılık gösterebilir. Her zaman synchronization.yml içindeki yorumları kontrol edin.
Senkronizasyon yalnızca doğru yapılandırıldığında çift yönlü çalışır. Varsayılan olarak çoğunlukla Minecraft'taki Değişiklik → Discord'da Güncelleme şeması kullanılır. Ters senkronizasyon (Discord rolü karşılığında oyunda yetki verme) daha karmaşık bir kurulum gerektirir ve güvenli olmayabilir.
Konsol ve ek işlevler {#konsol-ve-islevler}
DiscordSRV, sunucu konsolunu Discord'a aktarabilir; bu, yöneticiler için kullanışlıdır.
config.ymldosyasındaConsolebölümünü bulun.Enabled: trueolarak ayarlayın.- Günlüğün düşeceği metin kanalının ID'si olan
ChannelIddeğerini belirtin. - Gereksiz satırları (örneğin, sık koordinat güncellemeleri veya hata ayıklama bilgileri) gizlemek için
Filtersayarlarını yapılandırın.
Ayrıca Notifications bölümündeki seçenekler de faydalıdır:
PlayerJoinLeaveMessages: Oyuncuların giriş/çıkış bildirimlerini gönderir.DeathMessages: Oyuncu ölüm mesajlarını gönderir.
Sık karşılaşılan hatalar ve çözümleri {#hatalar}
| Sorun | Neden | Çözüm |
|---|---|---|
| Bot çevrimdışı veya yanıt vermiyor | Yanlış token veya Intents devre dışı | config.yml dosyasındaki token'ı kontrol edin. Geliştirici Portalında Server Members Intent ve Message Content Intent seçeneklerinin etkin olduğundan emin olun. |
| Mesajlar Discord'a gelmiyor | Yanlış kanal ID'si veya eksik izinler | config.yml dosyasındaki kanal ID'sini kontrol edin. Botun bu kanalda Send Messages iznine sahip olduğundan emin olun. |
| Roller atanmıyor | synchronization.yml hatası veya yanlış rol ID'si | Rol ID'sinin doğru kopyalandığını kontrol edin. Discord rol listesinde botun rolünün, atamaya çalıştığı rolden daha yüksek konumda olduğundan emin olun. |
| Mesajların yinelenmesi | Birden fazla sohbet eklentisi yüklü | Discord ile bağlantı kuran diğer eklentileri kaldırın (örneğin, OldDiscordSRV veya çakışan köprüler). |
| Sohbetteki renkler kod olarak görünüyor | Yanlış format | config.yml dosyasında MinecraftChatToDiscordFormat ayarını yaparak Minecraft renk kodları yerine Markdown veya emoji desteğini kullanın. |
SSS {#sss}
Bota Manage Roles izni vermek güvenli mi? Evet, bot size aitse güvenlidir. Ancak, Discord rol hiyerarşisinde botun rolünün, ataması gereken rollerden daha yüksek, ancak sunucu sahibi/ana yöneticilerin rolünden daha düşük konumda olduğundan emin olun.
Farklı dünyalar veya sohbetler (yerel/global) için farklı kanallar yapılabilir mi?
Evet. config.yml dosyasının Channels bölümünde birden fazla çift belirtilebilir. Örneğin:
Channels:
global: "111111111111111111"
local_nether: "222222222222222222"
staff_chat: "333333333333333333"
Yerel sohbetlerin çalışması için Minecraft'taki sohbet eklentinizin, DiscordSRV'nin anlayabileceği kanal ayrımını desteklediğinden emin olun.
Neden Discord'dan gelen mesajlar oyunda isim olmadan geliyor?
config.yml dosyasındaki DiscordChatChannelToMinecraftFormat ayarını kontrol edin. Varsayılan olarak sadece %message% olabilir. Yazarı görmek için bunu %username%: %message% olarak değiştirin.
Eklenti Fabric/Forge'u destekliyor mu? DiscordSRV başlangıçta Spigot/Paper/Bukkit için tasarlanmıştır. Fabric için portlar mevcuttur (örneğin, DiscordSRV-Fabric), ancak işlevsellikleri ve kararlılıkları farklılık gösterebilir. En iyi uyumluluk için Paper tabanlı sunucu çekirdeklerinin kullanılması önerilir.