- 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ı.
Versiyon 1.0
Versiyon 1.1
Versiyon 2.0
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
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: