Kelime Hız Testi Eventi Plugini Kaynak Kodları

wolfenstrike

Taş Madencisi
Mesajlar
72
En iyi cevaplar
0
Beğeniler
22
Puanları
600
Merhaba forum halkı, daha önce kuzenimin sunucusu için yazmış olduğum pluginin kaynak kodlarını paylaşıyorum. Plugin ayarlanan sürede bir rastgele bir String mesaj oluşturuyor ve chat üzerinden herkese bunu bildiriyor. Mesajı ilk yazana plugin içerisinde ayarlanan eşyayı yine plugin içerisinde belirlenen miktar kadar oyuncuya veriyor ve chat üzerinden kazanan oyuncunun adını belirtiyor. Mesaj tek kullanımlıktır, ikinci bir kişi aynı mesajdan ödül alamaz ve sistem tamamen otomatiktir, hiçbir şey yapmanıza gerek yok. Süreyi timer'dan ayarlayabilirsiniz. Plugin içerisinde test kodlarım ve yarım dolu envanter kontrol etme kodlarım duruyor, kendi zevkinize göre düzenleyip kullanabilirsiniz. Değişken isimeri gâyet açık durumda zaten. Bu kodu benim haberim olmadan başka bir forumda paylaşmanızı istemiyorum, sunucunuzda istediğiniz gibi kullanabilirsiniz, istediğiniz plugine dönüştürebilirsiniz bu size kalmış. Kodu derlemeden veriyorum, her şeyi hazır bekleyen arkadaşlara önlem olarak. Kendini bilmez, hiçbir şey üretmeyip sadece baltalama amaçlı yorum yazan elemanları konuda istemiyorum. Bu elemanlar yönetime bizzat benim tarafımdan şikayet edilecektir. İyi forumlar dilerim, umarım yardımcı olabilmişimdir.

Kod:
package me.bukkit.hiztesti;


import java.util.Random;

import javax.swing.Timer;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import org.bukkit.Bukkit;
import org.bukkit.Material;
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.PlayerChatEvent;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.plugin.java.JavaPlugin;

@SuppressWarnings("deprecation")
public class hizTesti extends JavaPlugin implements Listener {
    public void onDisable() {
        eventTimer.stop();
        itemTimer.stop();
    }

    public void onEnable() {
        getServer().getPluginManager().registerEvents(this, this);
        eventDurum = false;
        eventTimerSure = (1200 * 1000);
        itemTimerSure = (1000);
        itemTimer = new Timer(itemTimerSure, itemAction);
        eventTimer = new Timer(eventTimerSure, eventAction);
        eventTimer.start();
    }
   
    @EventHandler
    public void onPlayerChat(PlayerChatEvent event)
    {
        String mesaj = event.getMessage().replace("§c", "").replace("§e", "").replace("§b", "").
                replace("§d", "").replace("§6", "").replace("§a", "");
        if(rastgele != null)
        if(mesaj.equals(rastgele) && eventDurum)
        {
            eventDurum = false;
            hizliPlayer = event.getPlayer();
            Bukkit.broadcastMessage("&9%isim% &badli oyuncu ilk önce yazarak &632 obsidian &bsahibi oldu.".replace("%isim%", event.getPlayer().getName().toString()).
                    replace("&", "§"));
            //event.getPlayer().sendMessage(getConfig().getString("Bosyer_Uyari_Mesaji").replace("%isim%", event.getPlayer().getName().toString()).replace("&", "§"));
            itemTimer.start();
        }
    }
   
    Player hizliPlayer;
    int eventTimerSure;
    int itemTimerSure;
   
    Timer itemTimer;
    Timer eventTimer;
   
    ActionListener itemAction = new ActionListener() {
          public void actionPerformed(ActionEvent e) {
              Inventory inv = hizliPlayer.getInventory();
              //inv.addItem(new ItemStack(getConfig().getInt("Verilecek_Item_Kodu"),getConfig().getInt("Verilecek_Item_Adedi")));
              inv.addItem(new ItemStack(Material.OBSIDIAN, 32));
                hizliPlayer.sendMessage("&bÖdülünüz verildi.".replace("&", "§"));
              itemTimer.stop();
          }
    };
         
          ActionListener eventAction = new ActionListener() {
              public void actionPerformed(ActionEvent evt) {
                  if(Bukkit.getOnlinePlayers().size() > 15){
                      eventDurum = true;
                      rastgele = randomString(8);
                      Bukkit.broadcastMessage("&bHızTesti başladı, &632 Obsidian &bkazanmak için ilk önce sen yaz.".replace("&", "§"));
                      Bukkit.broadcastMessage("&bKelime: &4%random%".replace("%random%", rastgele).replace("&", "§"));
                  }
              }
          };
         
    public static boolean eventDurum = false;
    public static String rastgele = null;
   
   
   
    public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args)
    {
        return false;
    }
   
    Boolean bosYerVarmi(Inventory inv){
        Boolean var = false;
        for(int i = 0; i < inv.getSize();i++)
            if(inv.getItem(i) == null){
                var = true;
                break;
            }
               
        return var;
    }
   
    static final String AB = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnoprstuvyz";
    static Random rnd = new Random();
   
    String randomString( int len ){
      StringBuilder sb = new StringBuilder( len );
      for( int i = 0; i < len; i++ )
          sb.append( AB.charAt( rnd.nextInt(AB.length()) ) );
      return sb.toString();
    }
}

Not: Config dosyası kullanmamamın sebebi özel karakter sorunu yaşamamdır.
 


wolfenstrike

Taş Madencisi
Mesajlar
72
En iyi cevaplar
0
Beğeniler
22
Puanları
600
@Personinblack Zorunda olmadıkça hazır plugin kullanmak istemiyorum, kendin yapçıyım daha çok. Açıkcası plugin içerisindeki sorun şuanda pekte umrumda değil, fakat teklif etmen bile yeterli, teşekkür ederim. Plugin yazmaya bodozlama sadece java bilgisiyle giriştiğim için java içerisinde ne varsa onu kullanmaya çalıştım. Bilgi için teşekkür eder, iyi forumlar dilerim.
 

Cranky

Hayattaki en hakiki mürşit ilimdir.
Site Yöneticisi
Site Danışmanı
Mesajlar
941
En iyi cevaplar
21
Beğeniler
1,282
Puanları
3,520
Güzele benziyor,başarılar.
 

Üst