- Mesajlar
- 1,043
- En iyi cevaplar
- 0
- Beğeniler
- 1,314
- Puanları
- 3,230
Merhaba arkadaşlar, sunucumun skyblock serverı için yazmış olduğum Anti Multi plugininin kaynak kodlarını paylaşmak istiyorum.
Bu plugini yazma amacım, SkyBlock'ta aynı IP'den birden fazla hesapla girerek hile yapılmasıydı.
Siz de bu plugini kendi amaçlarınıza göre kullanabilirsiniz.
Global yazmak istediğim ilk plugin olduğu için, plugini ingilizce yazdım, config dosyasından kicklenme mesajını düzenlenebilir yaptım. Kaynak kodlarında hepsi anlaşılır zaten.
Plugini KickMulti ismi ile bukkit dev sayfasına attım, ancak ben seminerde iken yetersiz açıklamadan dolayı reddedilmiş, tarafıma verilen bir haftalık süre içerisinde de açıklamayı güncellemediğim için plugin komple silinmiştir.
Sayfası budur: http://dev.bukkit.org/bukkit-plugins/kickmulti/
Pluginin tam olarak neler yapabildiği, permleri vb. şeyler gerek kaynak kodlarından, gerekse yukarıda verdiğim linkteki açıklamadan anlaşılabilir.
İşte pluginin kaynak kodları:
Bu plugini yazma amacım, SkyBlock'ta aynı IP'den birden fazla hesapla girerek hile yapılmasıydı.
Siz de bu plugini kendi amaçlarınıza göre kullanabilirsiniz.
Global yazmak istediğim ilk plugin olduğu için, plugini ingilizce yazdım, config dosyasından kicklenme mesajını düzenlenebilir yaptım. Kaynak kodlarında hepsi anlaşılır zaten.
Plugini KickMulti ismi ile bukkit dev sayfasına attım, ancak ben seminerde iken yetersiz açıklamadan dolayı reddedilmiş, tarafıma verilen bir haftalık süre içerisinde de açıklamayı güncellemediğim için plugin komple silinmiştir.
Sayfası budur: http://dev.bukkit.org/bukkit-plugins/kickmulti/
Pluginin tam olarak neler yapabildiği, permleri vb. şeyler gerek kaynak kodlarından, gerekse yukarıda verdiğim linkteki açıklamadan anlaşılabilir.
İşte pluginin kaynak kodları:
PHP:
package so.irfn.antimulti;
import java.io.File;
import java.io.IOException;
import java.net.InetSocketAddress;
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.PlayerJoinEvent;
import org.bukkit.plugin.java.JavaPlugin;
public class AntiMulti 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("kickMessage", "&cYou are using same IP address with %OTHER_PLAYER%. Multiple accounts are not allowed.");
cfg.save(configlist);
} catch (IOException ex) {
}
}
}
@EventHandler
public void OyuncuGirdiginde(PlayerJoinEvent e)
{
String Giren = e.getPlayer().getDisplayName();
InetSocketAddress IP = e.getPlayer().getAddress();
for (Player Oyuncular : getServer().getOnlinePlayers())
{
String Digerleri = Oyuncular.getPlayer().getDisplayName();
InetSocketAddress IP_Oyuncular = Oyuncular.getAddress();
if ((!e.getPlayer().isOp() || !e.getPlayer().hasPermission("multi.bypass")) && (Oyuncular != null) && (!Digerleri.equals(Giren)) && (IP_Oyuncular.getHostString().equals(IP.getHostString()))){
e.getPlayer().kickPlayer(getConfig().getString("kickMessage").replace("%OTHER_PLAYER%", Digerleri).replaceAll("&([a-z0-9])", "§$1"));
e.setJoinMessage(null);}
}
}
}
Son düzenleme: