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.
Not: Config dosyası kullanmamamın sebebi özel karakter sorunu yaşamamdır.
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.