Ş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
Plugin güncellenmiştir. Ayrıntılı bilgi için ilk mesajı okuyunuz.
İndirme linki:
https://yadi.sk/d/k7LEk101VxVnN
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.

Versiyon 2.0 kaynak kodları.
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.getDisplayName().equalsIgnoreCase("IRFN")){
          p.sendMessage("§3§lBu serverda IRFN'ın yazdığı OP Şifre plugini kullanılıyor.");
      }
    }
 
    @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();
      }
    }

}
 

byMasterTurk

Kızıltaş Madencisi
Mesajlar
676
En iyi cevaplar
0
Beğeniler
318
Puanları
0
Kaynak kodlarını kullanarak, bir plugin yapabilirmiyim
 

CleverMC

Altın Madencisi
Mesajlar
383
En iyi cevaplar
0
Beğeniler
113
Puanları
0
Yeni sürüm çok güzel olmuş kullanacağım :)[DOUBLEPOST=1404576319,1404557056][/DOUBLEPOST]@IRFN SonOyuncuya niye giremiyoruz
 

IRFN

Sonoyuncu.Network
Mesajlar
1,043
En iyi cevaplar
0
Beğeniler
1,314
Puanları
3,230
Son Oyuncu yeni ban pluginimiz ve multi lobi sistemimiz için bakımda, bakım pazartesi'ye kadar sürebilir
 

JustMyProst

Kömür Madencisi
Mesajlar
128
En iyi cevaplar
0
Beğeniler
120
Puanları
0
Beyler normal bir plugin paketinde en az kaç tane plugin olmalı ?
 

SafaAltugTR

Taş Madencisi
Mesajlar
92
En iyi cevaplar
0
Beğeniler
58
Puanları
240
Normal bir plugin paketi diye birsey olmaz.Serverin turune gore degisir
 

SafaAltugTR

Taş Madencisi
Mesajlar
92
En iyi cevaplar
0
Beğeniler
58
Puanları
240
Factionda Daha Fazla Olabilir Survivalda Daha Az Onu Kastettim
 

CleverMC

Altın Madencisi
Mesajlar
383
En iyi cevaplar
0
Beğeniler
113
Puanları
0
Bazı kodları senden öğrendim :)
 
Son düzenleme:

Krumb069

Nether Yerlisi
Mesajlar
2,151
En iyi cevaplar
1
Beğeniler
506
Puanları
1,250
Op yapılmış biri,konsoldan op yapmak için bir komut bloğu koyar ve /op oyuncuismi yazar.Op olduğu için komut bloğuna enerji vererek istediği birini op yapar
Düzenleme:Herhangi bir pluginin kaynak kodlarına(mesela essentials) eclipse kullanarak nasıl bakabilirim veya eski versiyonlu bir plugini nasıl güncelleyebilirim ?
 

>>TheLegend<<

Легенды никогда не умирают
Mesajlar
991
En iyi cevaplar
3
Beğeniler
1,903
Puanları
2,530
Op yapılmış biri,konsoldan op yapmak için bir komut bloğu koyar ve /op oyuncuismi yazar.Op olduğu için komut bloğuna enerji vererek istediği birini op yapar
Düzenleme:Herhangi bir pluginin kaynak kodlarına(mesela essentials) eclipse kullanarak nasıl bakabilirim veya eski versiyonlu bir plugini nasıl güncelleyebilirim ?
Eclipse kullanarak kaynak kodlarına ulaşmanın yolu yoktur fakat eklentini WinRaR programı ile açıp içerisindeki class dosyalarını "Java Decompiler"a aktarırsanız kodlara ulaşabilirsin. Eklenti güncellemek hakkında; genellikle eklentiler yeni versiyonlarla birlikte gelen kod değişiklikleri yüzünden sıkıntı çıkarır. Tek yapman gereken bozuk kodları yeni sürüme uyarlaman.
 

KRHN

Yazılımcı Beyefendi
Mesajlar
3,378
En iyi cevaplar
0
Beğeniler
2,748
Puanları
0
Eclipse kullanarak kaynak kodlarına ulaşmanın yolu yoktur fakat eklentini WinRaR programı ile açıp içerisindeki class dosyalarını "Java Decompiler"a aktarırsanız kodlara ulaşabilirsin. Eklenti güncellemek hakkında; genellikle eklentiler yeni versiyonlarla birlikte gelen kod değişiklikleri yüzünden sıkıntı çıkarır. Tek yapman gereken bozuk kodları yeni sürüme uyarlaman.
Ve bunu yaparken eklenti sahibinin izni olmazsa pek hoş şeyler olmaz ^-^
 

Üst