Pumpkin-Docs/docs/tr_TR/plugin-dev/migrating-from-bukkit/inventories.md
Alexander Medvedev 5c23b676ed feat: d binding
2026-09-17 09:23:24 +02:00

73 lines
2.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Bukkit'ten Envanterleri ve GUI'leri Taşıma
Envanter GUI'leri (sandık menüleri, mağaza arayüzleri veya özel oyuncu pencereleri gibi) oluşturmak, Minecraft eklenti geliştirmede yaygın bir görevdir.
Bukkit'te özel GUI'ler `Bukkit.createInventory()` kullanılarak oluşturulur ve `InventoryClickEvent` aracılığıyla işlenir. Pumpkin'da ise envanter pencereleri **Pencere API'leri (Window APIs)** ve konteyner tıklama paketleri aracılığıyla yönetilir.
---
## Temel Farklar
| Özellik | Bukkit / Spigot | Pumpkin |
| :--- | :--- | :--- |
| **Envanter Oluşturma** | `Bukkit.createInventory(owner, size, title)` | Pencere konteyner tanımları (`WindowType`) |
| **Pencereleri Açma** | `player.openInventory(inv)` | `player.open_window(window)` |
| **Tıklamaları Yakalama** | `InventoryClickEvent` işleme | Pencere tıklama geri çağırma (callback) işleyicileri |
| **Eşya Verisi** | `ItemMeta` içeren `ItemStack` | Bileşenler / NBT içeren `ItemStack` |
---
## Kod Karşılaştırması: Özel Menü GUI'si Açma
### 1. Bukkit Uygulaması (Java)
```java [MenuGUI.java]
public class MenuGUI implements Listener {
public void openMenu(Player player) {
Inventory inv = Bukkit.createInventory(null, 9, Component.text("Custom Menu"));
ItemStack item = new ItemStack(Material.DIAMOND);
ItemMeta meta = item.getItemMeta();
meta.displayName(Component.text("Click Me!"));
item.setItemMeta(meta);
inv.setItem(4, item);
player.openInventory(inv);
}
@EventHandler
public void onInventoryClick(InventoryClickEvent event) {
if (event.getView().getTitle().equals("Custom Menu")) {
event.setCancelled(true);
if (event.getSlot() == 4) {
event.getWhoClicked().sendMessage("Diamond clicked!");
}
}
}
}
```
### 2. Pumpkin Uygulaması (Rust)
```rust [gui.rs]
use pumpkin_plugin_api::{
player::Player,
item::ItemStack,
window::{Window, WindowType},
text::TextComponent,
};
pub fn open_custom_menu(player: &Player) {
// 1. Create a 9-slot chest window
let mut window = Window::new(WindowType::Generic9x1, TextComponent::text("Custom Menu"));
// 2. Set item in slot 4
let item = ItemStack::new("minecraft:diamond", 1);
window.set_item(4, Some(item));
// 3. Open window for player
player.open_window(window);
}
```