Java EE | Minecraft Chat Plugini

Katılım
21 Ocak 2020
Mesajlar
2
Beğeni
0
Puanları
10
Öncelikle herkese merhabalar arkadaşlar. Bugün size "Eclipse IDE" üzerinden minecraft için olan chat pluginimin kaynak kodlarını sizlerle paylaşacağım.

Özellikleri:
1) Küfür yazılmasını engellemek.
2) Başka minecraft sunucusunun ip adresinin yazılmasını yasaklamak.
3) Web sitesinin adını, urlsini, alan adının yazılmasını engellemek.
4) Bir kelimede en fazla 1 büyük harfin kullanılımına izin vermek.

NOT: En aşağıda "curse.yml" ve "config.yml" için gerekli yazılar bulunmaktadır.




KAYNAK KODLARI:


package chatpl;

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockBreakEvent;
import org.bukkit.event.entity.PlayerDeathEvent;
import org.bukkit.event.player.AsyncPlayerChatEvent;
import org.bukkit.event.player.PlayerChatEvent;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.inventory.ItemStack;

import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.plugin.java.JavaPlugin;

public class main extends JavaPlugin implements Listener{

File f = new File("plugins/lion/curse.yml");
YamlConfiguration yaml = YamlConfiguration.loadConfiguration(f);

@Override
public void onEnable(){
getServer().getPluginManager().registerEvents(this, this);
if(!yaml.contains("Curse")){ //Sunucuda küfürleri engellemek için
List<String> words = new ArrayList<String>();
words.add("Sik");
words.add("Am");
yaml.set("Curse", words);
}

if(!yaml.contains("Site")){ //Web sitelerini yasaklamak için
List<String> words = new ArrayList<String>();
words.add("https:");
words.add("http:");
yaml.set("Site", words);
}

if(!yaml.contains("Reklam")){ //Başka sunucuların ip adreslerini yasaklamak için
List<String> words = new ArrayList<String>();
words.add("Play.");
words.add(".com");
yaml.set("Reklam", words);

}
reloadConfig();
saveDefaultConfig();
getConfig().options().copyDefaults(true);
try {
yaml.save(f);
} catch (IOException e) {
e.printStackTrace();
}
}


@EventHandler
public void onPlayerChat(AsyncPlayerChatEvent e){
String msg = e.getMessage();
List<String> words = yaml.getStringList("Curse");
List<String> ads = yaml.getStringList("Reklam");
List<String> site = yaml.getStringList("Site");

for(int i = 0; i < words.size(); i++){
if(msg.startsWith(words.get(i))){
e.setCancelled(true);
e.getPlayer().sendMessage(getConfig().getString("Messages.Curse").replace("&", "§")); // replace çevirici & bunu § na çevirir
}
}
for(int i = 0; i < ads.size(); i++){
if(msg.startsWith(ads.get(i))){
e.setCancelled(true);
e.getPlayer().sendMessage(getConfig().getString("Messages.Reklam").replace("&", "§")); // replace çevirici & bunu § na çevirir
}
}

for(int i = 0; i < site.size(); i++){
if(msg.startsWith(site.get(i))){
e.setCancelled(true);
e.getPlayer().sendMessage(getConfig().getString("Messages.Site").replace("&", "§")); // replace çevirici & bunu § na çevirir
}
}
}

@EventHandler
public void onPlayerChat(PlayerChatEvent event) {
int spacecount = 0;
boolean msgbool = false;
if (!event.getPlayer().hasPermission("anticaps.cancaps")) {
String[] msg = event.getMessage().split(" ");
for (int i = 0; i < msg.length; i++) {
if (msg.length() == 1 && isMostUpper2(msg))
spacecount++;
if (isMostUpper(msg) || spacecount > 2) {
msg = msg.toLowerCase();
if (!msgbool) {
event.setCancelled(true);
event.getPlayer().sendMessage(getConfig().getString("Messages.Caps").replace("&", "§")); // replace çevirici & bunu § na çevirir
msgbool = true;
}
}
}
String newmsg = "";
for (int j = 0; j < msg.length; j++) {
newmsg = String.valueOf(newmsg) + msg[j];
newmsg = String.valueOf(newmsg) + " ";
}
event.setMessage(newmsg);
msgbool = false;
}
}


private static boolean isMostUpper(String s) {
int capcount = 0;
byte b;
int i;
char[] arrayOfChar;
for (i = (arrayOfChar = s.toCharArray()).length, b = 0; b < i; ) {
char c = arrayOfChar;
if (Character.isLetter(c) && Character.isUpperCase(c))
capcount++;
b++;
}
if (capcount > s.length() / 2 && s.length() != 1)
return true;
return false;
}

private static boolean isMostUpper2(String s) {
byte b;
int i;
char[] arrayOfChar;
for (i = (arrayOfChar = s.toCharArray()).length, b = 0; b < i; ) {
char c = arrayOfChar;
if (Character.isLetter(c) && Character.isUpperCase(c))
return true;
b++;
}
return false;
}
}




KÜFÜRLER: "curse.yml"

Curse:
- Annenin
- anneni
- Anneni
- anneni
- Ananı
- ananı
- Aneni
- aneni
- Amına
- amına
- Göt
- göt
- Piç
- piç
- P!ç
- p!ç
- Sik
- sik
- Fuck
- fuck
- Bitch
- bitch
- Kaşar
- kaşar
- Penis
- penis
- Yarrak
- yarrak
- Yrk
- yrk
- Dick
- dick
- Sakso
- sakso
- Skm
- skm
- Yrrk
- yrrk
- Kamçık Ağızlı
- kamçık ağızlı
- Kamçık ağızlı
- kapçık ağızlı
- Kapçık Ağızlı
- Şıllık
- şıllık
- Orspu
- Gavat
Site:
- 'https:'
- 'http:'
- .top
- .net
- .org
- .eu
- .me
- .biz.tr
- .ac
- .al
- .am
- .ag
- .k12.tr
- .name.tr
- .tk
- .xyz
- .info.tr
- .org.tr
- .com.tr
- .ws
- .co
- .tc
- .tv
- .biz
- .tel.tr
- .bel.tr
- .edu.tr
- .space
- .web.tr
- .at
- .link
Reklam:
- Son Oyuncu
- son oyuncu
- So
- so
- Beta Craft
- beta craft
- Provanas
- provanas
- Play.
- play.
- eu.
- us.
- mc.
- jogar.
- Mc.
- .ro
- .br
- .es


SİSTEM YAZILARI: "config.yml"


Messages:
Curse: '&3ChatFilter &7» &cLütfen küfür etmeyiniz!'
Reklam: '&3ChatFilter &7» &cLütfen reklam yapmayınız!'
Site: '&3ChatFilter &7» &cHey! Site urlsi veya adı kullanamazsın!'
Caps: '&3LChatFilter &7» &cLütfen büyük harfleri daha az kullanın!'
 
Üst