Rehber >>THELEGEND<< - Kendi banka plugininizi yapın! - Videolu!

TheLegend

Onaylı Ticaret Üyeliği
  Satıcı
  Oyuncu
Merhaba arkadaşlar, plugin kodlama videosu talebi oldu ve örnek olarak basit bir banka plugini olmasını tercih ettiler.
Kaynak kodları konunun en altında.
Ayrıca sizinde yazarken çekmemi istediğiniz herhangi bir plugin olursa, lütfen belirtin.

(1/2)

(2/2)

Test

Kaynak kodları:
Ana.class:
JavaScript:
package tr.thelegend.basitbanka;

import java.io.File;
import java.util.logging.Level;
import java.util.logging.Logger;

import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.plugin.RegisteredServiceProvider;
import org.bukkit.plugin.java.JavaPlugin;

import net.milkbowl.vault.economy.Economy;
import tr.thelegend.basitbanka.cmds.BankaCmd;

public class Ana extends JavaPlugin {
    public static final Logger logcuamca=Logger.getLogger("Minecraft");
    public String yzr=">>TheLegend<<";
    public File d;
    public FileConfiguration c;
    public Economy econ=null;
    public File d2;
    public YamlConfiguration c2;
    public void a1() {
        c=getConfig();
        d=new File(getDataFolder(),"config.yml");
        saveDefaultConfig();
    }
    public void a2() {
        d2=new File(getDataFolder(),"bakiyeler.yml");
        c2=YamlConfiguration.loadConfiguration(d2);
    }
    public void l(String x) {
        logcuamca.log(Level.INFO,x);
    }
    private boolean ekonomiKur() {
        if (getServer().getPluginManager().getPlugin("Vault")==null) {
            return false;
        }
        RegisteredServiceProvider rsp=getServer().getServicesManager().getRegistration(Economy.class);
        if (rsp==null) {
            return false;
        }
        econ=((Economy)rsp.getProvider());
        return econ!=null;
    }
    public void cmds() {
        getCommand("banka").setExecutor(new BankaCmd(this));
    }
    public void onEnable() {
        a1();
        a2();
        cmds();
        l("===================== [ BasitBanka v1.0 ] ======================");
        l(" ");
        l(" ");
        l("Eklenti aktif ediliyor...");
        l(" ");
        l(" ");
        if (!ekonomiKur()){
            logcuamca.log(Level.SEVERE,"Vault plugini veya onunla uyumlu herhangi bir ekonomi eklentisi bulunamadi! BasitBanka v1.0 calismayacak!");
            getServer().getPluginManager().disablePlugin(this);
            return;
        }
        l("Eklenti aktif!");
        l(" ");
        l(" ");
        l("===================== [ BasitBanka v1.0 ] ======================");
    }
}
BankCmd.class:
JavaScript:
package tr.thelegend.basitbanka.cmds;

import java.io.IOException;

import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;

import tr.thelegend.basitbanka.Ana;

public class BankaCmd implements CommandExecutor {
    private Ana plugin;
    public BankaCmd(Ana plugin) {
        this.plugin=plugin;
    }
    public boolean onCommand(CommandSender gonderen, Command komut, String label, String[] args) {
        if (komut.getName().equalsIgnoreCase("banka")) {
            if (!(gonderen instanceof Player)) {
                gonderen.sendMessage("Bu komut sadece oyun icerisinde yollanabilir!");
                return false;
            }
            if (!gonderen.hasPermission("basitbanka.komutlar.banka")) {
                gonderen.sendMessage(ChatColor.RED+"Bunun icin gerekli izine sahip degilsiniz!");
                return false;
            }
            if (args.length!=2) {
                gonderen.sendMessage("§f§lLutfen argumanlari dogru girdiginizden emin olun!");
                gonderen.sendMessage("§3§l/banka §f§lcek §3§l<miktar>");
                gonderen.sendMessage("§3§l/banka §f§lyatir §3§l<miktar>");
                return true;
            }
            if ((args.length==2) && args[0].equalsIgnoreCase("cek")) {
                double miktar;
                try {
                    miktar=Double.parseDouble(args[1]);
                } catch (Exception e) {
                    gonderen.sendMessage(ChatColor.RED+"Lutfen gecerli bir miktar girin!");
                    return false;
                }
                Player o=(Player)gonderen;
                double obakiye=plugin.c2.getDouble(o.getName());
                if (miktar>obakiye) {
                    gonderen.sendMessage(ChatColor.RED+"Cekmek istediginiz miktar bakiyenizden yuksek!");
                    return false;
                }
                plugin.c2.set(o.getName(), obakiye-miktar);
                try {
                    plugin.c2.save(plugin.d2);
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                plugin.econ.depositPlayer(o, miktar);
                gonderen.sendMessage("§3§lBanka hesabinizdan basariyla "+miktar+"TL para cektiniz!");
                return true;
            }
            if ((args.length==2) && args[0].equalsIgnoreCase("yatir")) {
                double miktar;
                try {
                    miktar=Double.parseDouble(args[1]);
                } catch (Exception e) {
                    gonderen.sendMessage(ChatColor.RED+"Lutfen gecerli bir miktar girin!");
                    return false;
                }
                Player o=(Player)gonderen;
                double bakiye=plugin.econ.getBalance(o);
                if (bakiye<miktar){
                    gonderen.sendMessage(ChatColor.RED+"Yatirmak istediginiz miktar sizin bakiyenizden fazla!");
                    return false;
                }
                plugin.econ.withdrawPlayer(o, miktar);
                double obakiye=plugin.c2.getDouble(o.getName());
                double ybakiye=obakiye+miktar;
                plugin.c2.set(o.getName(), ybakiye);
                try {
                    plugin.c2.save(plugin.d2);
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                o.sendMessage(ChatColor.RED+"§c"+miktar+"TL hesabiniza basariyla yatirildi!");
                return true;
            }
        }
        return false;
    }
}
plugin.yml:
JavaScript:
name: BasitBanka
version: 1.0
author: thelegend
main: tr.thelegend.basitbanka.Ana
commands:
    banka:
        description: Ana komut
        usage: /banka cek/yatir <miktar>
permissions:
    basitbanka.komutlar.banka:
        description: Ana komuta erisim izini.
        default: true
Discord: >>TheLegend<<#6052

www.thelegendplugin.com
 
Üst