- Katılım
- 22 Temmuz 2014
- Mesajlar
- 187
- Elmaslar
- 100
- Puanlar
- 13.775
- Minecraft
- HaktanOzkan
Herkese merhaba. Bir çok sunucuda Vault eklentisini görmekteyiz. Hemen hemen herkes bu eklentinin ne işe yaradığını bilir bu yüzden açıklama gereği duymuyorum. Bu konuda bir eklenti geliştirirken Vault un bize sunduğu API'ı nasıl kullanacağınızı göstereceğim.
IDE : Eclipse Java
Sürüm : 1.8.8
Konuya başlamadan önce belirtmek istiyorum. Bu anlatım sıfır seviyede bir geliştiriciye göre bir anlatım şekli olmayacaktır. Temel bilgileri bilmeniz gerekir.
Şimdi geçelim işimize.
Öncelikle Vault eklentisini kendi eklentinizin içine import etmeniz gerekiyor.
Hemen nasıl yapılacağına bakalım.
Açılan pencereden Vault eklentisini seçiyoruz ve aç tuşuna tıklıyoruz.
Artık Vault eklentisini kendi eklentimiz içine import ettik. Şimdi sıra kod kısmına geldi. Bu kodlara Vault'un github linkindende ulaşabilirsiniz.
Öncelikle kendi class dosyamızın içine Vault eklentisinin içindeki bazı paketleri import etmemiz gerekiyor.
Hemen yapalım.
IDE : Eclipse Java
Sürüm : 1.8.8
Konuya başlamadan önce belirtmek istiyorum. Bu anlatım sıfır seviyede bir geliştiriciye göre bir anlatım şekli olmayacaktır. Temel bilgileri bilmeniz gerekir.
Şimdi geçelim işimize.
Öncelikle Vault eklentisini kendi eklentinizin içine import etmeniz gerekiyor.
Hemen nasıl yapılacağına bakalım.
Açılan pencereden Vault eklentisini seçiyoruz ve aç tuşuna tıklıyoruz.
Artık Vault eklentisini kendi eklentimiz içine import ettik. Şimdi sıra kod kısmına geldi. Bu kodlara Vault'un github linkindende ulaşabilirsiniz.
Öncelikle kendi class dosyamızın içine Vault eklentisinin içindeki bazı paketleri import etmemiz gerekiyor.
Hemen yapalım.
Java:
import java.util.logging.Logger;
import net.milkbowl.vault.chat.Chat;
import net.milkbowl.vault.economy.Economy;
import net.milkbowl.vault.economy.EconomyResponse;
import net.milkbowl.vault.permission.Permission;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.plugin.RegisteredServiceProvider;
import org.bukkit.plugin.java.JavaPlugin;
Bu paketler kendi eklentimiz içinde Vault eklentisinin paketlerini kullanmamızı sağlayan import kodlarıdır.
Sıra geldi genel kod kısmına. Aşağıdaki kodu direkt olarak kendi eklentinizin ana class dosyasına yapıştırıyorsunuz. Ek olarak bir şeyler değiştirmenize gerek yok.
Sıra geldi genel kod kısmına. Aşağıdaki kodu direkt olarak kendi eklentinizin ana class dosyasına yapıştırıyorsunuz. Ek olarak bir şeyler değiştirmenize gerek yok.
Java:
public class ExamplePlugin extends JavaPlugin {
private static final Logger log = Logger.getLogger("Minecraft");
private static Economy econ = null;
private static Permission perms = null;
private static Chat chat = null;
@Override
public void onDisable() {
log.info(String.format("[%s] Disabled Version %s", getDescription().getName(), getDescription().getVersion()));
}
@Override
public void onEnable() {
if (!setupEconomy() ) {
log.severe(String.format("[%s] - Disabled due to no Vault dependency found!", getDescription().getName()));
getServer().getPluginManager().disablePlugin(this);
return;
}
setupPermissions();
setupChat();
}
private boolean setupEconomy() {
if (getServer().getPluginManager().getPlugin("Vault") == null) {
return false;
}
RegisteredServiceProvider<Economy> rsp = getServer().getServicesManager().getRegistration(Economy.class);
if (rsp == null) {
return false;
}
econ = rsp.getProvider();
return econ != null;
}
private boolean setupChat() {
RegisteredServiceProvider<Chat> rsp = getServer().getServicesManager().getRegistration(Chat.class);
chat = rsp.getProvider();
return chat != null;
}
private boolean setupPermissions() {
RegisteredServiceProvider<Permission> rsp = getServer().getServicesManager().getRegistration(Permission.class);
perms = rsp.getProvider();
return perms != null;
}
public boolean onCommand(CommandSender sender, Command command, String commandLabel, String[] args) {
if(!(sender instanceof Player)) {
log.info("Only players are supported for this Example Plugin, but you should not do this!!!");
return true;
}
Player player = (Player) sender;
if(command.getLabel().equals("test-economy")) {
// Lets give the player 1.05 currency (note that SOME economic plugins require rounding!)
sender.sendMessage(String.format("You have %s", econ.format(econ.getBalance(player.getName()))));
EconomyResponse r = econ.depositPlayer(player, 1.05);
if(r.transactionSuccess()) {
sender.sendMessage(String.format("You were given %s and now have %s", econ.format(r.amount), econ.format(r.balance)));
} else {
sender.sendMessage(String.format("An error occured: %s", r.errorMessage));
}
return true;
} else if(command.getLabel().equals("test-permission")) {
// Lets test if user has the node "example.plugin.awesome" to determine if they are awesome or just suck
if(perms.has(player, "example.plugin.awesome")) {
sender.sendMessage("You are awesome!");
} else {
sender.sendMessage("You suck!");
}
return true;
} else {
return false;
}
}
public static Economy getEconomy() {
return econ;
}
public static Permission getPermissions() {
return perms;
}
public static Chat getChat() {
return chat;
}
}
Vault eklentisinin Github adresi:
Peki bunu nasıl kullanacağız ?
GitHub - MilkBowl/VaultAPI: API Component of Vault
API Component of Vault. Contribute to MilkBowl/VaultAPI development by creating an account on GitHub.
github.com
Peki bunu nasıl kullanacağız ?
Java:
getEconomy().bankBalance(String name);
//Bankanın sahip olduğu tutarı verir
getEconomy().bankDeposit(String name, double amount);
//Bir banka hesabına para yatırır
//Negatif bir değer yazılırsa hata verecektir !
getEconomy().bankHas(String name, double amount);
//Bankada belirtilen tutara sahip olup olmadığına bakılmaksızın doğru veya yanlış döndürür
//Negatif bir değer yazılırsa hata verecektir !
getEconomy().bankWithdraw(String name, double amount);
//Bir banka hesabından para çekme
//Negatif bir değer yazılırsa hata verecektir !
getEconomy().createBank(String name, org.bukkit.OfflinePlayer player);
//Belirtilen adla ve oyuncunun sahibi olarak bir banka hesabı oluşturur
getEconomy().createPlayerAccount(org.bukkit.OfflinePlayer player);
//Bir oyuncu için bir banka hesabı açar
getEconomy().currencyNamePlural();
//Para biriminin adını çoğul biçimde verir
getEconomy().currencyNameSingular();
//Para biriminin adını tekil biçimde döndürür
getEconomy().deleteBank(String name);
//Bir banka hesabını siler
getEconomy().depositPlayer(org.bukkit.OfflinePlayer player, double amount);
//Belirtilen oyuncuya istenilen miktarda para yatırmanızı sağlar
getEconomy().getBalance(org.bukkit.OfflinePlayer player);
//Oyuncunun para miktarını döndürür
getEconomy().getBanks();
//Tüm bankaların listesini alır
getEconomy().getName();
//Ekonomi yönteminin adını alır
getEconomy().has(org.bukkit.OfflinePlayer player, double amount);
//Belirtilen oyuncunun hesabında belirtilen miktarın olup olmadığını döndürür
//Negatif bir değer yazılırsa hata verecektir !
getEconomy().hasAccount(org.bukkit.OfflinePlayer player);
//Bu oyuncunun sunucuda henüz bir hesabı olup olmadığını kontrol eder
//oyuncu sunucuya en az bir kez katılmışsa her zaman doğru olacaktır
//çünkü tüm önemli ekonomi eklentileri
//oyuncu sunucuya katıldığında otomatik olarak bir oyuncu hesabı oluşturur.
getEconomy().hasBankSupport();
//Verilen uygulama bankaları destekliyorsa doğru döndürür
getEconomy().isBankMember(String name, org.bukkit.OfflinePlayer player);
//Oyuncunun banka hesabına üye olup olmadığını kontrol eder
getEconomy().isBankOwner(String name, org.bukkit.OfflinePlayer player);
//Bir oyuncunun belirtilen isimde banka hesabı sahibi olup olmadığını kontrol edin
getEconomy().isEnabled();
//Ekonomi yönteminin etkin olup olmadığını kontrol eder
getEconomy().withdrawPlayer(org.bukkit.OfflinePlayer player, double amount);
//Bir oyuncudan belirtilen miktar kadar para çeker
//Negatif bir değer yazılırsa hata verecektir !
Umarım işinize yaramıştır. Herkese iyi geceler...