blade20090999
Kızıltaş Madencisi
- Mesajlar
- 627
- En iyi cevaplar
- 0
- Beğeniler
- 321
- Puanları
- 890
- Ruh hali
Ek not: Pluginlerin hiçbirinde perm ayarlamadım haberiniz olsun siz kendiniz ayarlayın özel olarak ben ayarlıcamda kod karısmasın diye sade halini attım çünkü permleri mysql aracılıgıyla olusturdum bir grup plugininde ayarlıcam
-Mysql gerekmesin diye böyle yaptım verileri config dosyasında tutuyor.(config.yml oluşturun plugin.yml nin olduğu yere , yoksa hata verir.)
Komutlar = /kayit , /login
-plugin.yml aynı değişmedi ama artık config.yml ye gerek yok silebilirsiniz .Oyuncu kitlerini permlerini falan daha rahat ayarlayabilmek ve @IRFN tavsiyesi ile Mysql yapıcam.Elimde o var şimdilik
-Mysql için gereken kütüphane Link bunu craftbukkiti eklediğiniz gibi external jar olarak ekleyin projenize.
Kullandığım tablo(not veri girilmediği taktirde NULL olmasını tabloyu oluştururken ayarlayinki kodlarda hata yaratmasın.)
-Kayıt Pluginsiz çalışmaz kodu editliyerek tek başına çalışıcak hale getirebilirsiniz eksik olan bir pluginin join eventinde parasını başlangıç parası oalrak kayıt etmesi 0 dır 30 dur her neyse onu money pluginine eklerseniz bağımsız olur. fakat suanki haliyle kayıt plugini ile beraber çalışıyor.
Önemli bir not: Pluginler birbiriyle bağlantılıdır kaynak kodlarını editlemenize izniniz vardır sadece konuyu kaynak olarak belirtirseniz sevinirim yada bir etiket atarsanız.Kaynak kodlarını editleyerek pluginleri birbirinden bağımsız hale getirebilirsiniz örneğin kayıt plugini oyuncunun satırını eklerken mysql 'e money satırınıda eklemiş oluyor null olarak ve money plugininde bu işlemi yapmamış oluyorum bunu direk money pluginine ekelyerek money pluginin kayıt plugininden bağımsız yapabilirsiniz.
Komutlar = /kayit , /login
Kod:
package me.Register;//size göre değişin class ve paket adını
import java.util.HashMap;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerMoveEvent;
import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.plugin.java.JavaPlugin;
public class Main extends JavaPlugin implements Listener {
public void onEnable(){
getLogger().info("Plugin Başladı!");
Bukkit.getPluginManager().registerEvents(this, this);
this.saveDefaultConfig();
getConfig().options().copyDefaults(true);
saveConfig();
}
public void onDisable(){
getLogger().info("Plugin Durdu!");
}
HashMap<String, Boolean>girislog=new HashMap<String, Boolean>();
/// Hashmap yap giriş yapanları kayıt etsin lef eventindede listeden cıkarsın :)
@EventHandler
public void joinevent(PlayerJoinEvent playerjoin)
{
Player player = playerjoin.getPlayer();
player.sendMessage(ChatColor.MAGIC+"AA"+ChatColor.GOLD+"Serverimize Hoşgeldiniz"+ChatColor.RESET+ChatColor.MAGIC+"AA");
girislog.put(player.getName(), false);
if(this.getConfig().getString(player.getName()) != null)
{
player.sendMessage(ChatColor.WHITE +"Servere "+ChatColor.GOLD+"/giris"+ChatColor.DARK_GRAY+" Sifre"+ChatColor.DARK_RED+" yazarak giris yapınız");
}
else
{
player.sendMessage(ChatColor.WHITE +"Servere "+ChatColor.GOLD+"/kayit"+ChatColor.DARK_GRAY+" Sifre Sifre "+ChatColor.DARK_RED+" yazarak kayıt olunuz. Güvenliğiniz açısından kullandığınız şifreleri kullanmayıp farklı bir şifre oluşturmanızı tavsiye ederiz.");
}
}
@EventHandler
public void onPlayerQuit(PlayerQuitEvent event) {
Player player = event.getPlayer();
if(girislog.get(player.getName())== true){
girislog.put(player.getName(), false);
}
}
@EventHandler
public void onPlayerWalk(PlayerMoveEvent event) {
Player player = event.getPlayer();
if(girislog.get(player.getName())== false)
{
event.setCancelled(true);
}
}
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args){
Player player = (Player) sender;
if(cmd.getName().equalsIgnoreCase("kayit")){
try{
if(args[0].equalsIgnoreCase(args[1].toString())&&this.getConfig().getString(player.getName()) == null)
{
this.getConfig().addDefault(player.getName(), args[0].toString());
player.sendMessage(ChatColor.WHITE +"Kayıt Başarılı.");
player.sendMessage(ChatColor.WHITE +"Servere "+ChatColor.GOLD+"/giris"+ChatColor.DARK_GRAY+" Sifre"+ChatColor.DARK_RED+" yazarak giris yapınız");
}
else
{
player.sendMessage(ChatColor.WHITE +"Zaten kayıtlısınız.");
}
}
catch(Exception e){
player.sendMessage(ChatColor.WHITE +"Kayıt Başarısız.");
}
}
if(cmd.getName().equalsIgnoreCase("giris")&&this.getConfig().getString(player.getName()) != null)
{
try
{
if(args[0].equalsIgnoreCase(this.getConfig().getString(player.getName()))&& girislog.get(player.getName())== false)
{
player.sendMessage(ChatColor.WHITE +"Giriş başarılı.");
girislog.put(player.getName(), true);
}
else
{
player.sendMessage(ChatColor.WHITE +"Zaten giriş yapmışsınız.");
}
}
catch(Exception e){
player.sendMessage(ChatColor.WHITE +"Giriş başarısız.");
}
}
return false;
}
}
Kod:
/////////plugin.yml Not Boş bir config.yml oluşturun.
name: RegisterKayitPlugin
version: 1.0
author: vatansbeytr
main: me.Register.Main
commands:
kayit:
description: Kayit olmanizi saglar.
giris:
description: Giris yapmanizi saglar.
-Mysql için gereken kütüphane Link bunu craftbukkiti eklediğiniz gibi external jar olarak ekleyin projenize.
Kod:
package me.Register;
import java.util.HashMap;
import java.sql.*;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerMoveEvent;
import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.plugin.java.JavaPlugin;
public class Main extends JavaPlugin implements Listener {
public static String myDriver = "com.mysql.jdbc.Driver";
public static String db = "jdbc:mysql://hostadı/veritabanıadı";
public static String name = "kullanıcıadı";
public static String dbpassword = "sifre";
public static void add(String playername){
try
{
Class.forName(myDriver);
Connection conn = DriverManager.getConnection(db, name, dbpassword);
String sorgu = "insert into member(playername) values('"+playername+"')";
Statement komut = conn.createStatement();
komut.executeUpdate(sorgu);
conn.close();
}
catch (Exception a)
{
System.err.println("Hata ! ");
System.err.println(a.getMessage());
}
}
public static void update(String playername,String password){
try
{
Class.forName(myDriver);
Connection conn = DriverManager.getConnection(db, name, dbpassword);
String query = "update member set password = ? where playername = '"+playername+"'";
PreparedStatement preparedStmt = conn.prepareStatement(query);
preparedStmt.setString (1, password);
// execute the java preparedstatement
preparedStmt.executeUpdate();
conn.close();
}
catch (Exception a)
{
System.err.println("Hata ! ");
System.err.println(a.getMessage());
}
}
public static String get(String playername,String password){
try
{
Class.forName(myDriver);
Connection conn = DriverManager.getConnection(db, name, dbpassword);
Statement komut = conn.createStatement();
ResultSet rs = komut.executeQuery("SELECT * FROM member WHERE playername = '"+playername+"'");
while (rs.next()) {
password = rs.getString("password");
}
conn.close();
}
catch (Exception a)
{
System.err.println("Hata ! ");
System.err.println(a.getMessage());
}
return password;
}
public void onEnable(){
getLogger().info("Plugin Başladı!");
Bukkit.getPluginManager().registerEvents(this, this);
}
// These To well logged in the Console Saying "Disabled!" and "Enabled!"
public void onDisable(){
getLogger().info("Plugin Durdu!");
}
HashMap<String, Boolean>girislog=new HashMap<String, Boolean>();
/// Hashmap yap giriş yapanları kayıt etsin lef eventindede listeden cıkarsın :)
@EventHandler
public void joinevent(PlayerJoinEvent playerjoin)
{
Player player = playerjoin.getPlayer();
player.sendMessage(ChatColor.MAGIC+"AA"+ChatColor.GOLD+"Serverimize Hoşgeldiniz"+ChatColor.RESET+ChatColor.MAGIC+"AA");
girislog.put(player.getName(), false);
String password="";
try{
String a = get(player.getName(),password);
if(a ==""){
add(player.getName());
}
}
catch(Exception e){
add(player.getName());
}
if(get(player.getName(),password)!=null)
{
player.sendMessage(ChatColor.WHITE +"Servere "+ChatColor.GOLD+"/giris"+ChatColor.DARK_GRAY+" Sifre"+ChatColor.DARK_RED+" yazarak giris yapınız");
}
else
{
player.sendMessage(ChatColor.WHITE +"Servere "+ChatColor.GOLD+"/kayit"+ChatColor.DARK_GRAY+" Sifre Sifre "+ChatColor.DARK_RED+" yazarak kayıt olunuz.Güvenliğiniz açısından kullandığınız şifreleri kullanmayıp farklı bir şifre oluşturmanızı tavsiye ederiz.");
}
}
@EventHandler
public void onPlayerQuit(PlayerQuitEvent event) {
Player player = event.getPlayer();
if(girislog.get(player.getName())== true){
girislog.remove(player.getName());
}
}
@EventHandler
public void onPlayerWalk(PlayerMoveEvent event) {
Player player = event.getPlayer();
if(girislog.get(player.getName())== false)
{
event.setCancelled(true);
}
}
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args){
Player player = (Player) sender;
if(cmd.getName().equalsIgnoreCase("kayit")){
try{
String password="";
if(get(player.getName(),password)!=null)
{
player.sendMessage(ChatColor.WHITE +"Zaten kayıtlısınız.");
}
if(args[0].equalsIgnoreCase(args[1].toString())&&get(player.getName(),password)==null)
{
update(player.getName(), args[0].toString());
player.sendMessage(ChatColor.WHITE +"Kayıt Başarılı.");
player.sendMessage(ChatColor.WHITE +"Servere "+ChatColor.GOLD+"/giris"+ChatColor.DARK_GRAY+" Sifre"+ChatColor.DARK_RED+" yazarak giris yapınız");
}
}
catch(Exception e){
player.sendMessage(ChatColor.WHITE +"Kayıt Başarısız.");
}
}
if(cmd.getName().equalsIgnoreCase("giris"))
{
try
{
String password="";
if(args[0].equalsIgnoreCase(get(player.getName(),password))&& girislog.get(player.getName())== false)
{
player.sendMessage(ChatColor.WHITE +"Giriş başarılı.");
girislog.put(player.getName(), true);
}
else
{
player.sendMessage(ChatColor.WHITE +"Zaten giriş yapmışsınız.");
}
}
catch(Exception e){
player.sendMessage(ChatColor.WHITE +"Giriş başarısız.");
}
}
return false;
}
}
-Kayıt Pluginsiz çalışmaz kodu editliyerek tek başına çalışıcak hale getirebilirsiniz eksik olan bir pluginin join eventinde parasını başlangıç parası oalrak kayıt etmesi 0 dır 30 dur her neyse onu money pluginine eklerseniz bağımsız olur. fakat suanki haliyle kayıt plugini ile beraber çalışıyor.
Kod:
package me.Money;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.plugin.java.JavaPlugin;
public class Main extends JavaPlugin implements Listener {
public static String myDriver = "com.mysql.jdbc.Driver";
public static String db = "jdbc:mysql://sunucuadı/veritabanıadı";
public static String name = "kullanıcıadı";
public static String dbpassword = "sifre";
public static String get(String playername,String money){
try
{
Class.forName(myDriver);
Connection conn = DriverManager.getConnection(db, name, dbpassword);
Statement komut = conn.createStatement();
ResultSet rs = komut.executeQuery("SELECT * FROM member WHERE playername = '"+playername+"'");
while (rs.next()) {
money = rs.getString("money");
}
conn.close();
}
catch (Exception a)
{
System.err.println("Hata ! ");
System.err.println(a.getMessage());
}
return money;
}
public static void update(String playername,String money){
try
{
Class.forName(myDriver);
Connection conn = DriverManager.getConnection(db, name, dbpassword);
String query = "update member set money = ? where playername = '"+playername+"'";
PreparedStatement preparedStmt = conn.prepareStatement(query);
preparedStmt.setString (1, money);
// execute the java preparedstatement
preparedStmt.executeUpdate();
conn.close();
}
catch (Exception a)
{
System.err.println("Hata ! ");
System.err.println(a.getMessage());
}
}
public void onEnable(){
getLogger().info("Plugin Başladı!");
Bukkit.getPluginManager().registerEvents(this, this);
}
// These To well logged in the Console Saying "Disabled!" and "Enabled!"
public void onDisable(){
getLogger().info("Plugin Durdu!");
}
@EventHandler
public void joinevent(PlayerJoinEvent playerjoin)
{
Player player = playerjoin.getPlayer();
String money="";
try{
if(get(player.getName(),money)==""||get(player.getName(),money)==null){
update(player.getName(),"0");
}
}
catch(Exception e){
player.sendMessage(ChatColor.DARK_BLUE + "Para atama başarısız oldu");
}
}
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args){
Player player = (Player) sender;
if(cmd.getName().equalsIgnoreCase("hesap")){
try{
String param="";
if(args.length == 0)
{
player.sendMessage(ChatColor.AQUA +"Hesabınızdaki para: "+ChatColor.GREEN+get(player.getName(),param));
}
else{
player.sendMessage(ChatColor.AQUA+args[0]+" Adlı oyuncunun parası: "+ChatColor.GREEN+get(args[0],param));
}
}
catch(Exception e){
player.sendMessage(ChatColor.WHITE +"Para miktarında hata bulundu.");
}
}
return false;
}
}
Kod:
///Plugin.yml Money plugini için
name: MoneyPlugin
version: 1.0
author: vatansbeytr
main: me.Money.Main
commands:
hesap:
description: Hesabınızdaki parayı gösterir
Kod:
Spawn ayarlamak isteyenler önce konsola veya oyundayken bulundugunuz konumu /setworldspawn x y z yazın.Sonrada şu komutu
Location location = new Location( player.getWorld(), -356, 27, 177);
player.teleport(location);
kayit pluginindee join eventine ekleyinki girdiğiniz gibi seçtiğiniz spawna atsın.
Son düzenleme: