Plugin Nedir?

Minecraft sunucu pluginleri, sunucunuza yeni özellikler ekleyen JAR (Java Archive) dosyalarıdır. Bukkit/Spigot/Paper API kullanılarak geliştirilirler ve sunucunuzun plugins/ klasörüne yerleştirilirler.

Plugin sistemi, Minecraft sunucunuzu vanillanın ötesine taşır: yetki yönetimi, ekonomi, bölge koruması, chat formatı, mini oyunlar ve daha fazlası pluginler aracılığıyla eklenir.

  • Bukkit API — Orijinal plugin API'si, CraftBukkit ile çalışır
  • Spigot API — Bukkit'in genişletilmiş versiyonu, daha fazla event ve özellik sunar
  • Paper API — Spigot üzerine inşa edilmiş modern API, async chunk loading gibi gelişmiş özellikler
  • Folia API — Paper'ın çoklu iş parçacığı destekli versiyonu, yüksek oyuncu sayısı için

Her plugin sunucu başlatıldığında yüklenir, onEnable() metodu çağrılır ve sunucu kapandığında onDisable() ile temizlenir. Pluginler birbirleriyle depend ve softdepend ilişkileri kurabilir.

Plugin Nasıl Kurulur?

Plugin kurulumu üç adımdan oluşur: indirme, yükleme ve yeniden başlatma. Güvenilir kaynaklardan indirilen .jar dosyası plugins/ klasörüne yerleştirilir ve sunucu tamamen yeniden başlatılır.

Güvenilir İndirme Kaynakları

PlatformURLAçıklama
SpigotMCspigotmc.orgEn büyük plugin marketplace'i, premium ve ücretsiz pluginler
Modrinthmodrinth.comAçık kaynağa öncelik veren modern platform
Hangarhangar.papermc.ioPaperMC'nin resmi plugin deposu
GitHub Releasesgithub.comAçık kaynak pluginlerin resmi dağıtımları
Bukkit Devdev.bukkit.orgEski ama hâlâ kullanılan CurseForge kaynağı

Kurulum Adımları

# 1. Plugin JAR dosyasını indir
cd ~/server/plugins
wget https://download.luckperms.net/1556/bukkit/loader/LuckPerms-Bukkit-5.4.141.jar

# 2. Sunucuyu tamamen durdur
screen -r minecraft
stop

# 3. Sunucuyu yeniden başlat
screen -S minecraft
java -Xms4G -Xmx4G -jar paper.jar nogui

Plugin Dosya Yapısı

Her plugin ilk çalıştırıldığında plugins/PluginAdı/ klasörü altında yapılandırma dosyalarını oluşturur. Bu dosya yapısını anlamak, pluginleri doğru yapılandırmak için zorunludur.

text
plugins/
├── LuckPerms/
│   ├── config.yml            # Ana yapılandırma
│   ├── luckperms-bukkit.jar  # Loader dosyası
│   └── translations/         # Dil dosyaları
├── Essentials/
│   ├── config.yml            # Ana yapılandırma (600+ satır)
│   ├── kits.yml              # Kit tanımları
│   ├── worth.yml             # Item fiyatları
│   └── userdata/             # Oyuncu verileri
├── WorldGuard/
│   ├── config.yml
│   └── worlds/
│       └── world/
│           └── regions.yml   # Bölge tanımları
└── CoreProtect/
    ├── config.yml
    └── database.db           # SQLite veritabanı

config.yml Temelleri

Çoğu plugin YAML formatında yapılandırma dosyası kullanır. YAML dosyalarında girinti (indentation) kritik öneme sahiptir — her zaman boşluk (space) kullanın, asla tab kullanmayın.

yaml
# Örnek config.yml yapısı
settings:
  debug: false
  locale: tr_TR
  auto-save: true
  auto-save-interval: 300

database:
  type: sqlite            # sqlite, mysql, h2
  host: localhost
  port: 3306
  name: plugin_db

Yetki Düğümü (Permission Node)

Her plugin, komutlarına erişimi kontrol eden yetki düğümleri (permission nodes) tanımlar. Bu düğümler genellikle plugin.komut formatındadır.

yaml
# plugin.yml içerisinden örnek yetki tanımları
permissions:
  essentials.home:
    description: Home komutunu kullanma yetkisi
    default: true
  essentials.ban:
    description: Oyuncu banlama yetkisi
    default: op
  essentials.*:
    description: Tüm EssentialsX yetkileri
    children:
      essentials.home: true
      essentials.ban: true

Olmazsa Olmaz Pluginler

Aşağıdaki tablo, hemen her Minecraft sunucusunda bulunması gereken temel pluginleri özetler. Her birinin görevi, birbirleriyle ilişkisi ve önceliği farklıdır.

PluginGörevBağımlılıkÖncelik
<strong>Vault</strong>Ekonomi ve yetki API köprüsüYokZorunlu
<strong>LuckPerms</strong>Yetki ve grup yönetimiYokZorunlu
<strong>EssentialsX</strong>Temel komutlar, ekonomi, tpVault (önerilen)Zorunlu
<strong>WorldEdit</strong>Dünya düzenleme araçlarıYokZorunlu
<strong>WorldGuard</strong>Bölge koruması, flag sistemiWorldEditZorunlu
<strong>CoreProtect</strong>Log, rollback, inspectYokZorunlu
<strong>TAB</strong>Tab listesi, nametag, scoreboardPlaceholderAPI (önerilen)Çok Önerilen
<strong>DiscordSRV</strong>MC-Discord chat senkronizasyonuYokÖnerilen
<strong>Spark</strong>Performans profilerYokÇok Önerilen
<strong>ViaVersion</strong>Çoklu sürüm desteğiYokDuruma Göre
<strong>Geyser</strong>Bedrock desteğiFloodgateDuruma Göre

Vault

Vault, Minecraft sunucularında ekonomi, yetki ve chat sistemleri için ortak bir API katmanı sağlayan bir köprü pluginidir. Kendisi doğrudan bir özellik sunmaz; diğer pluginlerin birbiriyle iletişim kurmasını sağlar.

Örneğin EssentialsX ekonomi sistemi sunar, LuckPerms yetki sistemi sunar — Vault bu ikisini birbirine bağlar. Chest shop pluginleri Vault üzerinden ekonomiye erişir, chat eklentileri Vault üzerinden prefix/suffix bilgisi alır.

  • Economy API: EssentialsX, CMI gibi ekonomi pluginlerini diğer pluginlerle bağlar
  • Permission API: LuckPerms gibi yetki pluginlerini diğer sistemlerle entegre eder
  • Chat API: Prefix, suffix ve chat formatı bilgilerini paylaştırır
# Vault kurulumu
cd ~/server/plugins
wget https://github.com/MilkBowl/Vault/releases/latest/download/Vault.jar

# Sunucuyu yeniden başlatın
# Vault otomatik olarak LuckPerms ve EssentialsX'i algılar

LuckPerms

LuckPerms, modern Minecraft sunucuları için sektör standardı yetki yönetim pluginidir. Grup sistemi, kalıtım (inheritance), prefix/suffix, web editörü ve çoklu platform desteği sunar. Eski PermissionsEx ve GroupManager'ın yerini almıştır.

LuckPerms hakkında detaylı bilgi için kapsamlı Türkçe rehberimize göz atın:

bash
# Hızlı başlangıç komutları
/lp editor                          # Web editörünü aç
/lp creategroup admin               # Grup oluştur
/lp group admin parent add default  # Kalıtım ayarla
/lp user Oyuncu parent set admin    # Oyuncuyu gruba ata

EssentialsX

EssentialsX, 100'den fazla komut içeren kapsamlı bir eklentidir: home/spawn/warp teleport sistemi, ekonomi, chat formatı, kit sistemi, özel mesajlaşma ve çok daha fazlası. Hemen her sunucunun temel taşıdır.

EssentialsX hakkında detaylı yapılandırma rehberimize göz atın:

yaml
# plugins/Essentials/config.yml önemli ayarlar
teleport-cooldown: 3
teleport-delay: 3
starting-balance: 1000
currency-symbol: '$'
max-homes: 3
spawn-on-join: true

WorldEdit

WorldEdit, Minecraft dünyasında büyük çaplı düzenleme yapmanızı sağlayan güçlü bir araçtır. Bölge seçme, blokları değiştirme, kopyala-yapıştır, şekil oluşturma ve schematic kaydetme gibi işlemleri komut satırından yapabilirsiniz.

KomutAçıklamaÖrnek
<code>//wand</code>Seçim aracını verir (ahşap balta)Sol tık = pos1, Sağ tık = pos2
<code>//set &lt;blok&gt;</code>Seçili alanı belirtilen blokla doldurur<code>//set stone</code>
<code>//copy</code>Seçili alanı panoya kopyalarOyuncunun pozisyonuna göre
<code>//paste</code>Panodan yapıştırır<code>//paste -a</code> (havayı yok say)
<code>//undo</code>Son işlemi geri alır<code>//undo 5</code> (son 5 işlem)
<code>//replace &lt;eski&gt; &lt;yeni&gt;</code>Belirtilen blokları değiştirir<code>//replace dirt grass_block</code>
<code>//sphere &lt;blok&gt; &lt;yarıçap&gt;</code>Küre oluşturur<code>//sphere glass 10</code>
<code>//cyl &lt;blok&gt; &lt;yarıçap&gt; &lt;yükseklik&gt;</code>Silindir oluşturur<code>//cyl stone 5 10</code>
bash
# Sık kullanılan WorldEdit iş akışı
//wand                          # Seçim aracını al
# Sol tık ile 1. noktayı, sağ tık ile 2. noktayı seç
//set air                       # Seçili alanı temizle
//copy                          # Yapıyı kopyala
//paste                         # Başka yere yapıştır
//undo                          # Hata yaptıysanız geri alın

WorldGuard

WorldGuard, WorldEdit ile entegre çalışarak bölge tabanlı koruma sistemi sunar. Spawn koruması, PvP bölgeleri, mob spawn kontrolü, giriş/çıkış mesajları ve çok daha fazlasını destekler.

KomutAçıklama
<code>//wand</code> + seçimWorldEdit ile bölge sınırlarını belirle
<code>/rg define &lt;isim&gt;</code>Yeni bölge tanımla
<code>/rg flag &lt;bölge&gt; &lt;bayrak&gt; &lt;değer&gt;</code>Bölgeye bayrak ayarla
<code>/rg addowner &lt;bölge&gt; &lt;oyuncu&gt;</code>Bölgeye sahip ekle
<code>/rg addmember &lt;bölge&gt; &lt;oyuncu&gt;</code>Bölgeye üye ekle
<code>/rg info &lt;bölge&gt;</code>Bölge bilgilerini göster
<code>/rg list</code>Tüm bölgeleri listele
<code>/rg remove &lt;bölge&gt;</code>Bölgeyi sil
bash
# Örnek: Spawn bölgesi oluşturma
//wand
# 1. ve 2. noktayı seçin
//expand vert                   # Gökten yere genişlet
/rg define spawn
/rg flag spawn pvp deny
/rg flag spawn build deny
/rg flag spawn mob-spawning deny
/rg flag spawn greeting &aSpawn bölgesine hoş geldiniz!

WorldGuard hakkında detaylı rehberimize göz atın:

CoreProtect

CoreProtect, sunucunuzdaki tüm blok değişikliklerini, sandık erişimlerini, chat mesajlarını ve komutları kaydeden bir log/rollback pluginidir. Grief tespiti ve geri alma için vazgeçilmezdir.

Inspect Modu

Inspect modu ile herhangi bir bloğa tıklayarak kim tarafından, ne zaman değiştirildiğini görebilirsiniz:

/co inspect
# Artık herhangi bir bloğa tıklayın
# Kim koydu/kırdı, ne zaman, ne ile değiştirdi gösterilir
# Tekrar /co inspect ile modu kapatın

Rollback (Geri Alma)

Belirli bir oyuncunun veya zaman aralığının değişikliklerini geri alın:

# Belirli oyuncunun son 1 saatini geri al
/co rollback user:Griefer time:1h

# Belirli oyuncunun son 24 saatini 20 blok yarıçapta geri al
/co rollback user:Griefer time:24h radius:20

# Sadece blok kırmalarını geri al
/co rollback user:Griefer time:6h action:break

# TNT patlamalarını geri al
/co rollback time:1h action:tnt

Lookup (Arama)

Değişiklikleri geri almadan sadece log kayıtlarını görüntüleyebilirsiniz:

# Oyuncunun tüm blok kırmalarını ara
/co lookup user:Oyuncu action:break time:7d

# Belirli bir alanda yapılan tüm değişiklikleri göster
/co lookup radius:10 time:24h

# Sandık erişim loglarını kontrol et
/co lookup user:Oyuncu action:container time:3d

TAB Plugin

TAB, oyuncu listesini (Tab tuşu), nametag'leri ve scoreboard'u özelleştirmenizi sağlayan kapsamlı bir eklentidir. PlaceholderAPI ile entegre çalışarak dinamik bilgiler gösterebilir.

Tab Listesi Yapılandırması

yaml
# plugins/TAB/config.yml
header-footer:
  enabled: true
  header:
    - '&b&lKEYDAL &fNetwork'
    - '&7Online: &a%online%/%maxplayers%'
  footer:
    - '&7keydal.com | &bDiscord: discord.gg/keydal'

Nametag Yapılandırması

yaml
# Nametag (oyuncu başı üzerindeki yazı)
nametags:
  enabled: true
  groups:
    admin:
      tagprefix: '&c[Admin] '
      tagsuffix: '
    moderator:
      tagprefix: '&6[Mod] '
      tagsuffix: '
    default:
      tagprefix: '&7'
      tagsuffix: '

Scoreboard Yapılandırması

yaml
# Scoreboard (ekranın sağındaki bilgi tablosu)
scoreboard:
  enabled: true
  title: '&b&lKEYDAL'
  lines:
    - '&7&m                    '
    - '&fOyuncu: &a%player%'
    - '&fPing: &a%ping%ms'
    - '&fTPS: &a%tps%'
    - '
    - '&fBakiye: &a%essentials_balance%'
    - '&fRütbe: &a%luckperms_prefix%'
    - '&7&m                    '
    - '&bkeydal.com'

DiscordSRV

DiscordSRV, Minecraft sunucunuz ile Discord sunucunuz arasında iki yönlü chat senkronizasyonu sağlar. Oyun içinden Discord'a, Discord'dan oyun içine mesaj gönderebilirsiniz.

Kurulum Adımları

  • Discord Developer Portal'dan yeni bot oluşturun
  • Bot Token'ı kopyalıyın
  • MESSAGE CONTENT INTENT ve SERVER MEMBERS INTENT izinlerini aktif edin
  • Botu sunucunuza davet edin
  • DiscordSRV JAR dosyasını plugins/ klasörüne atın
  • Sunucuyu yeniden başlatın
yaml
# plugins/DiscordSRV/config.yml
BotToken: 'BOT_TOKENINIZI_BURAYA_YAPISTIRIN'
Channels:
  global: '123456789012345678'    # Discord kanal ID'si

# Mesaj formatı (MC -> Discord)
MinecraftChatToDiscordMessageFormat: '**%displayname%** > %message%'

# Mesaj formatı (Discord -> MC)
DiscordToMinecraftChatMessageFormat: '&9[Discord] &f%name% &7> &f%message%'

ViaVersion ve Geyser

ViaVersion ve Geyser, sunucunuza farklı platformlardan ve sürümlerden bağlantı sağlar. ViaVersion farklı Java Edition sürümlerini, Geyser ise Bedrock Edition oyuncularını destekler.

ViaVersion

Sunucunuz 1.21.4'te olsa bile 1.20.x, 1.19.x gibi eski sürümlerden gelen oyuncuların bağlanmasına izin verir:

# ViaVersion kurulumu
cd ~/server/plugins
wget https://hangar.papermc.io/ViaVersion/ViaVersion/releases/latest/download/ViaVersion.jar

# Ek eklentiler
# ViaBackwards — eski sürümlerden bağlanma
# ViaRewind — 1.7/1.8 desteği

Geyser (Bedrock Desteği)

Geyser, Bedrock Edition (mobil, konsol, Windows 10) oyuncularının Java Edition sunucunuza bağlanmasını sağlar:

# Geyser + Floodgate kurulumu
cd ~/server/plugins
wget https://download.geysermc.org/v2/projects/geyser/versions/latest/builds/latest/downloads/spigot -O Geyser-Spigot.jar
wget https://download.geysermc.org/v2/projects/floodgate/versions/latest/builds/latest/downloads/spigot -O Floodgate-Spigot.jar

Performans Pluginleri

Sunucu performansını izlemek ve optimize etmek için kullanılan pluginler. Bu pluginler doğrudan TPS iyileştirmesi sağlar veya darboğazları tespit etmenize yardımcı olur.

Spark

Spark, sunucunuzun CPU ve bellek kullanımını profillemenizi sağlayan hafif bir performans aracı. TPS düşüşlerinin nedenini bulmak için vazgeçilmezdir:

# CPU profiling başlat (30 saniye)
/spark profiler start
/spark profiler stop

# TPS ve tick süresi bilgisi
/spark tps

# Bellek kullanımını göster
/spark health

Chunky

Chunky, dünya chunk'larını önceden oluşturarak (pre-generation) oyun sırasındaki chunk üretim lagını ortadan kaldırır:

# 5000 blok yarıçapta pre-generation
/chunky radius 5000
/chunky start

# İlerlemeyi izle
/chunky progress

# Durdur
/chunky pause

ViewDistanceTweaks

ViewDistanceTweaks, sunucu performansına göre view distance'ı dinamik olarak ayarlar. TPS düştüğünde view distance azalır, TPS yüksekken artar.

yaml
# ViewDistanceTweaks config.yml
enabled: true
target-tps: 19.5
min-view-distance: 4
max-view-distance: 10
adjustment-mode: proactive

Plugin Uyumluluk

Plugin uyumluluk sorunları, sunucu yönetiminde en sık karşılaşılan problemlerdendir. Yanlış sürüm, API çatışması veya eksik bağımlılık sunucunuzu başlatamaz hale getirebilir.

Sürüm Kontrolü

Her plugin belirli Minecraft ve API sürümleriyle uyumludur. Kurmadan önce plugin sayfasındaki Supported Versions bölümünü kontrol edin.

  • Plugin sayfasında desteklenen MC sürümlerini kontrol edin
  • Paper/Spigot/Bukkit uyumluluğunu doğrulayın
  • plugins/PluginAdı/plugin.yml dosyasında api-version değerini kontrol edin
  • Eski pluginler yeni MC sürümlerinde çalışmayabilir

API Çatışmaları

Aynı işi yapan birden fazla plugin çatışmaya neden olabilir:

  • İki ekonomi plugini aynı anda kullanmayın (EssentialsX Eco + CMI Eco)
  • İki yetki plugini aynı anda kullanmayın (LuckPerms + PermissionsEx)
  • İki chat formatlama plugini çatışabilir
  • Aynı event'i dinleyen pluginler beklenmedik davranışlar oluşturabilir

Bağımlılık Sorunları

Bazı pluginler başka pluginlere bağımlıdır. Eksik bağımlılık pluginin yüklenmemesine neden olur:

PluginZorunlu BağımlılıkÖnerilen Bağımlılık
WorldGuardWorldEdit
EssentialsX ChatEssentialsXVault, LuckPerms
TABPlaceholderAPI
GeyserFloodgate
DeluxeChatVault, PlaceholderAPI

Plugin Güvenliği

Plugin güvenliği, sunucunuzun bütünlüğü için kritik öneme sahiptir. Kötü amaçlı pluginler sunucunuza backdoor açabilir, oyuncu verilerini çalabilir veya cryptominer çalıştırabilir.

Güvenilir Kaynaklar

  • Her zaman resmi kaynaklardan indirin: SpigotMC, Modrinth, Hangar, GitHub Releases
  • Premium pluginleri satın alın: Crackli/nulled pluginler neredeyse her zaman malware içerir
  • İndirme sayısı ve yorumları kontrol edin: Popüler pluginler genellikle daha güvenlidir
  • Açık kaynak pluginleri tercih edin: Kaynak kodunu inceleyebilirsiniz

Malware Riskleri

Kötü amaçlı pluginlerin yaygın davranışları:

  • Backdoor: Belirli oyuncu adlarına OP yetkisi verir
  • Cryptominer: Sunucunuzun CPU'sunu kripto madenciliğine kullanır
  • Data Stealer: Oyuncu IP adreslerini ve verilerini dışarıya gönderir
  • RAT (Remote Access Trojan): Sunucunuzun tam kontrolünü ele geçirir
  • Botnet: Sunucunuzu DDoS saldırılarında kullanır

Yetki Denetimi

Pluginlerin istediği yetkileri düzenli olarak denetleyin:

# LuckPerms ile verilen tüm yetkileri listele
/lp group default permission info
/lp group admin permission info

# Verbose mode ile hangi yetkilerin kontrol edildiğini izleyin
/lp verbose on

# Gereksiz yetkileri kaldırın
/lp group default permission unset gereksiz.yetki

Sonraki Adımlar

Plugin kurulumunu tamamladıktan sonra sunucunuzu daha da geliştirmek için aşağıdaki rehberlerimize göz atın: