ŞifreliOP plugini kaynak kodları. | Versiyon 2.0 çıktı. (05/07/2014)

IRFN

Sonoyuncu.Network
Mesajlar
1,043
En iyi cevaplar
0
Beğeniler
1,314
Puanları
3,230
Piyasada olan OP Password plugininin mantığını beğenmediğimden, olması gerektiğini düşündüğüm tarzda bir plugin yazdım.
OP Password, server güvenliği için yazılmış bir plugindir. Aynı şekilde benim yazdığım SifreliOP plugini de öyle. Aralarındaki fark şudur. OP Password'da, oluşturulan şifreyi, server yöneticisinin op yaptığı kişiye sorar. Bunda bana mantıksız gelen şey ise şudur; Ben server yöneticisi isem, zaten istediğim kişiyi op yaparım, bir de ona özelden şifreyi atmanın bir anlamı yoktur.
SifreliOP plugininde ise, mevcut oplardan şifreyi bilmeyenler başkasını op yapamazlar.


VERSİYON 2.0 İNDİRME LİNKİ: https://yadi.sk/d/k7LEk101VxVnN

Pluginin kullanımı ve yenilikler.


Versiyon 1.0
* Pluginin ilk versiyonu.
* Plugini kurduktan sonraki ilk şifre: IRFN
* /op <nick> <şifre> komutu ile Op yapılabilir.
* /deop <nick> <şifre> komutu ile DeOp yapılabilir.

Versiyon 1.1
Bu yeni versiyon ile artık;
* Konsoldan şifresiz op ve deop yapabilirsiniz. /op <nick> | /deop <nick>
* Şifreyi değiştirmek için konsoldan: /opsifre <eski şifre> <yeni şifre> <yeni şifre tekrar> komutunu kullanabilirsiniz.
* Şifreyi bilip de OP olmayan kişilerin komutu kullanabilmesi için "op.al" ve "op.ver" yetkilerine sahip olması gerekir.

Versiyon 2.0
Bu yeni versiyon ile artık;
* Varsayılan şifre değiştirilmemiş ise OP'lar oyuna girdiğinde şifreyi değiştirmesine dair uyarı alacaklar.
* Yapılan her işlem Plugins/SifreliOP/kayitlar.txt dosyasında tarih, saat ve dakika bazlı loglanacak. (Daha sıkı güvenlik :))
* Yapılan her işlem oyun içerisindeki OP'lara bildirilecek. OP olmayan bir oyuncu OP komutlarını kullanmayı denerse haberiniz olacak (Çok daha sıkı güvenlik :))
* Bukkitin yeni versiyonu ile birlikte gelen /bukkit: op ve /bukkit: deop komutu engellendi.
* Ben (IRFN) bu plugini kullanan bir servera giriş yaptığımda sadece bana bilgi pluginimin kullanıldığına dair bilgi verecek.

plugin.yml dosyası.
Kod:
name: SifreliOP
main: so.irfn.sifreliop.SifreliOP
version: 1.1
author: [IRFN - SoNetwork]
description: SifreliOP
website: **********.org - sonoyuncu.com
commands:
  op:
    description: Kisiyi OP yapar
  deop:
    description: Kisiyi DeOP yapar
  opsifre:
    description: Op Sifresini degistirir
Versiyon 1.0
PHP:
package so.irfn.sifreliop;

import java.io.File;
import java.io.IOException;

import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.event.Listener;
import org.bukkit.plugin.java.JavaPlugin;

public class SifreliOP extends JavaPlugin implements Listener {

    public void onEnable() {
          getServer().getPluginManager().registerEvents(this, this);
            File configlist = new File(getDataFolder().getAbsolutePath() + File.separator + "config.yml");
            if (!getDataFolder().exists()) {
              getDataFolder().mkdir();  
            }
            if (!configlist.exists()) {
                  try {
                    configlist.createNewFile();
                    FileConfiguration cfg = YamlConfiguration.loadConfiguration(configlist);
                    cfg.set("OP_Sifresi", "IRFN");
                    cfg.save(configlist);
                  } catch (IOException ex) {
                  }
                }
  
    }


    @Override
    public boolean onCommand(CommandSender sender, Command cmd,
            String commandLable, String[] args) {
        CommandSender player = sender;
        if (cmd.getName().equalsIgnoreCase("op") && player.isOp()) {
            if (args.length != 2) {
                player.sendMessage("§3Kullanımı: §7/op <nick> <şifre>");
                return true;
            } else {
                if ((args.length == 2)
                        && args[1].equalsIgnoreCase(getConfig().getString(
                                "OP_Sifresi"))
                        && (player.isOp() || player.hasPermission("op.ver"))) {
                    Player s = Bukkit.getPlayerExact(args[0]);
                    if (s != null) {
                        s.setOp(true);
                        if (player != s) {
                            player.sendMessage("§3" + args[0]
                                    + " §badlı oyuncuyu OP yaptınız.");
                            s.sendMessage("§3" + player
                                    + " §btarafından OP yapıldınız.");
                        } else {
                            player.sendMessage("§bKendinizi OP yaptınız.");
                        }
                        return true;
                    } else {
                        player.sendMessage("§cOyuncu oyunda değil.");
                    }
                } else {
                    player.sendMessage("§cHatalı şifre girdiniz.");
                }
                return true;
            }
        } else if (cmd.getName().equalsIgnoreCase("deop") && player.isOp()) {
            if (args.length != 2) {
                player.sendMessage("§3Kullanımı: §7/deop <nick> <şifre>");
                return true;
            } else {
                if ((args.length == 2)
                        && args[1].equalsIgnoreCase(getConfig().getString(
                                "OP_Sifresi"))
                        && (player.isOp() || player.hasPermission("op.al"))) {
                    Player s = Bukkit.getPlayerExact(args[0]);
                    if (s != null) {
                        s.setOp(false);
                        if (player != s) {
                            player.sendMessage("§f" + args[0]
                                    + " §7adlı oyuncuyu DeOP yaptınız.");
                            s.sendMessage("§f" + player
                                    + " §7tarafından DeOP yapıldınız.");
                        } else {
                            player.sendMessage("§7Kendinizi DeOP yaptınız.");
                        }
                        return true;
                    } else {
                        player.sendMessage("§cOyuncu oyunda değil.");
                    }
                } else {
                    player.sendMessage("§cHatalı şifre girdiniz.");
                }
            }
            return true;
        } else {
            player.sendMessage("§cBu komutu kullanmaya yetkiniz yok.");
        }

        return false;
    }


}

Versiyon 1.1
PHP:
package so.irfn.sifreliop;

import java.io.File;
import java.io.IOException;

import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.command.ConsoleCommandSender;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.event.Listener;
import org.bukkit.plugin.java.JavaPlugin;

public class SifreliOP extends JavaPlugin implements Listener {
    public void onDisable() {
        // TODO: Place any custom disable code here.
    }

    public void onEnable() {
        getServer().getPluginManager().registerEvents(this, this);
        File configlist = new File(getDataFolder().getAbsolutePath()
                + File.separator + "config.yml");
        if (!getDataFolder().exists()) {
            getDataFolder().mkdir();
        }
        if (!configlist.exists()) {
            try {
                configlist.createNewFile();
                FileConfiguration cfg = YamlConfiguration
                        .loadConfiguration(configlist);
                cfg.set("OP_Sifresi", "IRFN");
                cfg.save(configlist);
            } catch (IOException ex) {
            }
        }

    }

    @Override
    public boolean onCommand(CommandSender sender, Command cmd,
            String commandLable, String[] args) {
        CommandSender player = sender;
        CommandSender console = sender;
        if (cmd.getName().equalsIgnoreCase("op") && player.isOp()) {
            if (sender instanceof ConsoleCommandSender) {
                if (args.length == 1) {
                    Player s = Bukkit.getPlayerExact(args[0]);
                    if (s != null) {
                        s.setOp(true);
                        console.sendMessage("§3" + args[0]
                                + " §bisimli oyuncuyu OP yaptiniz.");
                        s.sendMessage("§7Konsoldan OP yapıldınız.");
                    } else {
                        console.sendMessage("§cOyuncu oyunda degil.");
                    }
                } else {
                    console.sendMessage("§3Kullanimi: §7/op <nick>");
                }
            } else if (sender instanceof Player) {
                if (player.isOp() || player.hasPermission("op.ver")) {
                    if (args.length == 2) {
                        if (args[1].equalsIgnoreCase(getConfig().getString(
                                "OP_Sifresi"))) {
                            Player s = Bukkit.getPlayerExact(args[0]);
                            if (s != null) {
                                s.setOp(true);
                                if (player != s) {
                                    player.sendMessage("§f" + args[0]
                                            + " §7adlı oyuncuyu OP yaptınız.");
                                    s.sendMessage("§f" + player
                                            + " §7tarafından OP yapıldınız.");
                                } else {
                                    player.sendMessage("§7Kendinizi OP yaptınız.");
                                }
                                return true;
                            } else {
                                player.sendMessage("§cOyuncu oyunda değil.");
                            }
                        } else {
                            player.sendMessage("§cHatalı şifre girdiniz.");
                        }
                    } else {
                        player.sendMessage("§3Kullanımı: §7/op <nick> <şifre>");

                    }

                } else {
                    player.sendMessage("§cBu komutu kullanmaya yetkiniz yok.");

                }

            }

        } else if (cmd.getName().equalsIgnoreCase("deop") && player.isOp()) {
            if (sender instanceof ConsoleCommandSender) {
                if (args.length == 1) {
                    Player s = Bukkit.getPlayerExact(args[0]);
                    if (s != null) {
                        s.setOp(false);
                        console.sendMessage("§3" + args[0]
                                + " §bisimli oyuncuyu DeOP yaptiniz.");
                        s.sendMessage("§7Konsoldan DeOP yapıldınız.");
                    } else {
                        console.sendMessage("§cOyuncu oyunda degil.");
                    }
                } else {
                    console.sendMessage("§3Kullanimi: §7/deop <nick>");
                }
            } else if (sender instanceof Player) {
                if (player.isOp() || player.hasPermission("op.al")) {
                    if (args.length == 2) {
                        if (args[1].equalsIgnoreCase(getConfig().getString(
                                "OP_Sifresi"))) {
                            Player s = Bukkit.getPlayerExact(args[0]);
                            if (s != null) {
                                s.setOp(false);
                                if (player != s) {
                                    player.sendMessage("§f" + args[0]
                                            + " §7adlı oyuncuyu DeOP yaptınız.");
                                    s.sendMessage("§f" + player
                                            + " §7tarafından DeOP yapıldınız.");
                                } else {
                                    player.sendMessage("§7Kendinizi DeOP yaptınız.");
                                }
                                return true;
                            } else {
                                player.sendMessage("§cOyuncu oyunda değil.");
                            }
                        } else {
                            player.sendMessage("§cHatalı şifre girdiniz.");
                        }
                    } else {
                        player.sendMessage("§3Kullanımı: §7/deop <nick> <şifre>");

                    }

                } else {
                    player.sendMessage("§cBu komutu kullanmaya yetkiniz yok.");

                }

            }

        } else if (cmd.getName().equalsIgnoreCase("opsifre") && player.isOp()) {
            if (sender instanceof Player) {
                player.sendMessage("§cŞifreli OP şifresi oyun içerisinden değiştirilemez. Konsoldan değiştirmelisiniz.");
            } else {
                if (args.length != 3) {
                    console.sendMessage("§cKullanimi: §b/opsifre <eski sifre> <yenisifre> <yeni sifre tekrar>");
                    return true;
                } else {
                    if ((args.length == 3)
                            && args[0].equalsIgnoreCase(getConfig().getString(
                                    "OP_Sifresi"))) {
                        if (args[1].equals(args[2])) {
                            getConfig().set("OP_Sifresi", args[1]);
                            saveConfig();
                            console.sendMessage("§aOp sifresi §b" + args[1]
                                    + "§a olarak degistirildi.");
                        } else {
                            console.sendMessage("§cSifreler uyusmuyor.");
                        }
                    } else {
                        console.sendMessage("§cHatali sifre girdiniz.");
                    }
                }
                return true;
            }
        } else {
            player.sendMessage("§cBu komutu kullanmaya yetkiniz yok.");

        }
        return false;
    }

}

Versiyon 2.0
PHP:
package so.irfn.sifreliop;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.command.ConsoleCommandSender;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.plugin.java.JavaPlugin;

public class SifreliOP extends JavaPlugin implements Listener {
    public void onDisable() {
        // TODO: Place any custom disable code here.
    }

    public void onEnable() {
        getServer().getPluginManager().registerEvents(this, this);
        File configlist = new File(getDataFolder().getAbsolutePath()
                + File.separator + "config.yml");
        if (!getDataFolder().exists()) {
            getDataFolder().mkdir();
        }
        if (!configlist.exists()) {
            try {
                configlist.createNewFile();
                FileConfiguration cfg = YamlConfiguration
                        .loadConfiguration(configlist);
                cfg.set("OP_Sifresi", "IRFN");
                cfg.save(configlist);
            } catch (IOException ex) {
            }
        }

    }

    @EventHandler
    public void oyuncuGirdiginde(PlayerJoinEvent e){
        Player p = e.getPlayer();
      if (p.isOp() && getConfig().getString("OP_Sifresi").equalsIgnoreCase("IRFN"))
          {
          p.sendMessage("§c§lGüvenliğiniz için §6§lŞifreliOP §c§lplugininin şifresini değiştirin!");
          p.sendMessage("§c§lŞifreyi §6§lPlugins/SifreliOP/config.yml §c§ldosyasından değiştirebilirsiniz.");
          }
      if (p.getName().equalsIgnoreCase("IRFN") || p.getName().equalsIgnoreCase("DonduranAtes") || p.getName().equalsIgnoreCase("Speaw")){
          p.sendMessage("§6Bu serverda Son Oyuncu tarafından yazılan OP Şifre plugini kullanılmaktadır..");
      }
    }

    @EventHandler
    public void komutGirildiginde(PlayerCommandPreprocessEvent event) {
        Player p = event.getPlayer();
        if(event.getMessage().toLowerCase().endsWith("/bukkit:op") || event.getMessage().toLowerCase().startsWith("/bukkit:op ") || event.getMessage().toLowerCase().endsWith("/bukkit:deop") || event.getMessage().toLowerCase().startsWith("/bukkit:deop ")) {
            event.setCancelled(true);
            p.sendMessage("§3§l[§cŞifreliOP§3§l] §6Bu komut Şifreli OP plugini tarafından engellenmiştir!");
            log(p.getName() + " isimli oyuncu /bukkit:op - /bukkit:deop komutunu kullanmayı denedi.");
        }
    }

    @SuppressWarnings("deprecation")
    @Override
    public boolean onCommand(CommandSender sender, Command cmd,
            String commandLable, String[] args) {
        CommandSender player = sender;
        CommandSender console = sender;
        if (cmd.getName().equalsIgnoreCase("op")) {
            if (sender instanceof ConsoleCommandSender) {
                if (args.length == 1) {
                    Player s = Bukkit.getPlayerExact(args[0]);
                    if (s != null) {
                        s.setOp(true);
                        console.sendMessage("§3" + args[0] + " §bisimli oyuncuyu OP yaptiniz.");
                        s.sendMessage("§7Konsoldan OP yapıldınız.");
                        log("Konsoldan " + args[0] + " isimli oyuncu OP yapıldı.");
                        return false;
                    } else {
                        console.sendMessage("§cOyuncu oyunda degil.");
                        log("Konsoldan " + args[0] + " isimli oyuncu OP yapılmak istendi ancak oyuncu oyunda değildi.");
                        return false;
                    }
                } else {
                    console.sendMessage("§3Kullanimi: §7/op <nick>");
                    return false;
                }
            } else if (sender instanceof Player) {
                if (player.isOp() || player.hasPermission("op.ver")) {
                    if (args.length == 2) {
                        if (args[1].equalsIgnoreCase(getConfig().getString(
                                "OP_Sifresi"))) {
                            Player s = Bukkit.getPlayerExact(args[0]);
                            if (s != null) {
                                s.setOp(true);
                                if (player != s) {
                                    player.sendMessage("§f" + args[0] + " §7adlı oyuncuyu OP yaptınız.");
                                    s.sendMessage("§f" + player + " §7tarafından OP yapıldınız.");
                                    log(player.getName() + " isimli OP, " + args[0] + " isimli oyuncuyu OP yaptı.");
                                } else {
                                    player.sendMessage("§7Kendinizi OP yaptınız.");
                                    return false;
                                }
                                return true;
                            } else {
                                player.sendMessage("§cOyuncu oyunda değil.");
                                log(player.getName() + " isimli OP, " + args[0] + " isimli oyuncuyu op yapmak istedi ancak oynucu oyunda değildi.");
                                return false;
                            }
                        } else {
                            player.sendMessage("§cHatalı şifre girdiniz.");
                            log(player.getName() + " isimli OP, " + args[0] + " isimli oyuncuyu op yapmak istedi ancak hatalı şifre girdi.");
                            return false;
                        }
                    } else {
                        player.sendMessage("§3Kullanımı: §7/op <nick> <şifre>");
                        return false;
                    }

                } else {
                    player.sendMessage("§cBu komutu kullanmaya yetkiniz yok.");
                    log(player.getName() + " isimli oyuncu op komutunu kullanmayı denedi ancak yetkisi yoktu.");
                    return false;
                }
            }

        } else if (cmd.getName().equalsIgnoreCase("deop")) {
            if (sender instanceof ConsoleCommandSender) {
                if (args.length == 1) {
                    Player s = Bukkit.getPlayerExact(args[0]);
                    if (s != null) {
                        s.setOp(false);
                        console.sendMessage("§3" + args[0] + " §bisimli oyuncuyu DeOP yaptiniz.");
                        s.sendMessage("§7Konsoldan DeOP yapıldınız.");
                        log("Konsoldan " + args[0] + " isimli OP deop yapıldı.");
                    } else {
                        console.sendMessage("§cOyuncu oyunda degil.");
                        log("Konsoldan " + args[0] + " isimli oyuncu deop yapılmak istendi ancak oyuncu oyunda değildi.");
                        return false;
                    }
                } else {
                    console.sendMessage("§3Kullanimi: §7/deop <nick>");
                }
            } else if (sender instanceof Player) {
                if (player.isOp() || player.hasPermission("op.al")) {
                    if (args.length == 2) {
                        if (args[1].equalsIgnoreCase(getConfig().getString(
                                "OP_Sifresi"))) {
                            Player s = Bukkit.getPlayerExact(args[0]);
                            if (s != null) {
                                s.setOp(false);
                                if (player != s) {
                                    player.sendMessage("§f" + args[0] + " §7adlı oyuncuyu DeOP yaptınız.");
                                    s.sendMessage("§f" + player + " §7tarafından DeOP yapıldınız.");
                                    log(player.getName() + " isimli OP, " + args[0] + " isimli oyuncuyu deop yaptı.");
                                } else {
                                    player.sendMessage("§7Kendinizi DeOP yaptınız.");
                                }
                                return true;
                            } else {
                                player.sendMessage("§cOyuncu oyunda değil.");
                                log(player.getName() + " isimli OP, " + args[0] + " isimli oyuncuyu deop yapmak istedi ancak oyuncu oyunda değildi.");
                                return false;
                            }
                        } else {
                            player.sendMessage("§cHatalı şifre girdiniz.");
                            log(player.getName() + " isimli OP, " + args[0] + " isimli oyuncuyu deop yapmak istedi ancak hatalı şifre girdi.");
                            return false;
                        }
                    } else {
                        player.sendMessage("§3Kullanımı: §7/deop <nick> <şifre>");
                        return false;
                    }

                } else {
                    player.sendMessage("§cBu komutu kullanmaya yetkiniz yok.");
                    log(player.getName() + " isimli oyuncu deop komutunu kullanmayı denedi ancak yetkisi yoktu.");
                    return false;
                }

            }
            return false;
        } else if (cmd.getName().equalsIgnoreCase("opsifre") && player.isOp()) {
            if (sender instanceof Player) {
                player.sendMessage("§cŞifreli OP şifresi oyun içerisinden değiştirilemez. Konsoldan değiştirmelisiniz.");
                return false;
            } else {
                if (args.length != 3) {
                    console.sendMessage("§cKullanimi: §b/opsifre <eski sifre> <yenisifre> <yeni sifre tekrar>");
                    return true;
                } else {
                    if ((args.length == 3)
                            && args[0].equalsIgnoreCase(getConfig().getString(
                                    "OP_Sifresi"))) {
                        if (args[1].equals(args[2])) {
                            getConfig().set("OP_Sifresi", args[1]);
                            saveConfig();
                            console.sendMessage("§aOp sifresi §b" + args[1] + "§a olarak degistirildi.");
                        } else {
                            console.sendMessage("§cSifreler uyusmuyor.");
                            return false;
                        }
                    } else {
                        console.sendMessage("§cHatali sifre girdiniz.");
                        return false;
                    }
                }
                return true;
            }
        } else {
            player.sendMessage("§cBu komutu kullanmaya yetkiniz yok.");
            log(player.getName() + " isimli oyuncu OP şifresini değiştirmeyi denedi.");
            return false;
        }
        return false;
    }

    @SuppressWarnings("deprecation")
    public void log(String message)
    {
      for(Player OPlar : Bukkit.getServer().getOnlinePlayers())
      {
            if(OPlar.isOp()){
            
                    OPlar.sendMessage("§3§l[§cŞifreliOP§3§l] §6" + message);
                }
            }
      DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy HH:mm");
      Date date = new Date();
      try
      {
        File dataFolder = getDataFolder();
        if (!dataFolder.exists()) {
          dataFolder.mkdir();
        }
        File saveTo = new File(getDataFolder(), "kayitlar.txt");
        if (!saveTo.exists()) {
          saveTo.createNewFile();
        }
        FileWriter fw = new FileWriter(saveTo, true);
        PrintWriter pw = new PrintWriter(fw);
        pw.println(dateFormat.format(date) + " | " + message);
        pw.flush();
        pw.close();
      }
      catch (IOException e)
      {
        e.printStackTrace();
      }
    }

}
 


Son düzenleme:

pwithgame

Sudan Çıkmış
Mesajlar
9
En iyi cevaplar
0
Beğeniler
6
Puanları
0
Yararlı , Bukkit api'sini çözdükden sonra incelerim. :)
 

TinecraftMurk

Kızıltaş Madencisi
Mesajlar
607
En iyi cevaplar
0
Beğeniler
154
Puanları
730
Bukkit API'sini en kolay bu tür kodları inceleyerek çözebilirsin.
bir nevi ezber gibi olmuyormu ? mantığını çözmek için bukkit apisinden bişeylere bakıp teker teker denemek uğraştırıcı fakat daha güzel bir öğrenme yöntemi değilmi ?
 

IRFN

Sonoyuncu.Network
Mesajlar
1,043
En iyi cevaplar
0
Beğeniler
1,314
Puanları
3,230
bir nevi ezber gibi olmuyormu ? mantığını çözmek için bukkit apisinden bişeylere bakıp teker teker denemek uğraştırıcı fakat daha güzel bir öğrenme yöntemi değilmi ?
Dediğinde haklısın, ancak göz aşinalığı da öğrenmenin bir yoludur. Mesela arkadaş player.SendMessage(String) kodunu gördükçe bunu öğrenir, bu pek de ezber sayılmaz. Zaten ezbere programlama yapılamaz.
 

al1mert

Obsidyen Madencisi
Mesajlar
1,292
En iyi cevaplar
0
Beğeniler
479
Puanları
0
Bence "derlenmiş hali"nide paylaş.kendim için istemiyorum tabi .) bir ara javayı öğrenip plugin yazacam.
Bu arada kodu geliştireceğin zaman mesela versiyon 1.1 diyerek yeni kod satırı ekle,İnsanlar nelerin değiştiğini anlayabilsinler.
 
Son düzenleme:

Bkunkcu

Windows 10 CDsi bulunur.
Emektar Üye
Mesajlar
1,244
En iyi cevaplar
2
Beğeniler
117
Puanları
640
Hocam güzel yazmışsın da bir şeyi merak ettim :) Neden getConifg() metodunu kullanmadın?
 

IRFN

Sonoyuncu.Network
Mesajlar
1,043
En iyi cevaplar
0
Beğeniler
1,314
Puanları
3,230
Yazdığım bir market plugini vardı, orada bu kodları kullanmam gerekiyordu, ben de kodları direkt oradan çektim.
2. versiyonda reload ve şifreyi oyun içinden değiştirme için getConfig() metoduna çevirecem. Aslına bakarsan bunu 10 dakika gibi bir sürede yazmam gerekiyordu, o yüzden diğer pluginimden kod çekmek zorunda kaldım.
OP Password pluginini beğenmediğimi skype'taki bir grupta dile getirmiştim, onlara bu şekildeki bir pluginin daha iyi olabileceğini söyledim, onlar da öyle bir plugin yok, kolaysa yaz demişlerdi. O ara yazmıştım.
Bu ara forumu işlerim nedeniyle bırakıyorum. Özellikle 2-3 ay iş yeri teftiş sürecinde olduğundan sadece sunucuma ve işlerime vakit ayırabileceğim.
Umarım herkes kendini geliştirmeye devam eder...
 

Dexsite

Zombi Katili
Mesajlar
247
En iyi cevaplar
0
Beğeniler
34
Puanları
440
Tebrikler süper olmuş bende OPPaswordu pek sevmiyordum
 

P4RS

Elmas Madencisi
Mesajlar
834
En iyi cevaplar
0
Beğeniler
696
Puanları
0
Bilgilerin için Teşekkürler İrfan Sende Olmasan napıcaz :)
 

djyee

Kızıltaş Madencisi
Mesajlar
420
En iyi cevaplar
0
Beğeniler
221
Puanları
340
biraz degistirerek bazi komutlari sifreli yapilabilir paylasim icin tesekkurler
 

Minecraftplayerr

Java, Skript, Php, Html, Css, Javascript, Anime
Mesajlar
3,980
En iyi cevaplar
6
Beğeniler
3,788
Puanları
7,080
Ruh hali
saol bazı yerlerini değiştirebilir miyim ?
 

Üst