mrbobaking
Kızıltaş Madencisi
- Mesajlar
- 660
- En iyi cevaplar
- 0
- Beğeniler
- 283
- Puanları
- 1,080
Bir eklenti yazıyorum ama config'deki renk kodlarını eklentide renge dönüştüremiyorum. § bunu yazıp chatcolor veya java replace ile değiştirince yazının başında isveç'çe bir işaret çıkıyor:
Kod:
eklenti spigot'ta var. PingProtect
@KRHN @IRFN @Krumb069
Kod:
PHP:
package me.mrbobaking;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
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.plugin.java.JavaPlugin;
import org.bukkit.scheduler.BukkitScheduler;
public class Main extends JavaPlugin{
Class<?> CPClass;
String serverName = Bukkit.getServer().getClass().getPackage().getName(),
serverVersion = serverName.substring(serverName.lastIndexOf(".") + 1, serverName.length());
public void onEnable() {
int wait = getConfig().getInt("checkforping");
wait = wait * 20;
sheduler(wait);
config();
}
public void sheduler(int wait){
BukkitScheduler scheduler = getServer().getScheduler();
scheduler.scheduleSyncRepeatingTask(this, new Runnable() {
@Override
public void run() {
for(Player p : getServer().getOnlinePlayers()){
getServer().broadcastMessage(ChatColor.BLUE + "Checking for all players' ping");
HashMap<Player, Integer> pp = new HashMap<Player, Integer>();
pp.put(p, getPing(p));
if(!(p.hasPermission("ping.safe"))){
if(pp.get(p) == getConfig().getInt("maxping") || pp.get(p) > getConfig().getInt("maxping")){
String msg = getConfig().getString("kickmessage");
msg = msg.replace("§", "\u00A7");
p.kickPlayer(msg);
getServer().broadcastMessage(ChatColor.BLUE + "The player " + p.getName() + " kicked! Cause: High Ping");
}
}
}
}
}, 0L, wait); //5 dk = 300 sn | 300 sn = 6000 tick
}
public void config(){
this.getConfig().options().copyDefaults(true);
this.saveDefaultConfig();
}
public int getPing(Player p) {
try {
CPClass = Class.forName("org.bukkit.craftbukkit." + serverVersion + ".entity.CraftPlayer");
Object CraftPlayer = CPClass.cast(p);
Method getHandle = CraftPlayer.getClass().getMethod("getHandle", new Class[0]);
Object EntityPlayer = getHandle.invoke(CraftPlayer, new Object[0]);
Field ping = EntityPlayer.getClass().getDeclaredField("ping");
return ping.getInt(EntityPlayer);
} catch (Exception e) {
e.printStackTrace();
}
return 0;
}
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args){
if(cmd.getName().equalsIgnoreCase("ping")){
if(sender instanceof Player){
Player p = (Player) sender;
if(p.hasPermission("ping.ping")){
String msg = getConfig().getString("pingcommandmessage");
msg = ChatColor.translateAlternateColorCodes('§', msg);
int ping = getPing(p);
msg = msg.replace("%ping%", Integer.toString(ping));
msg.replaceAll("Å", " ");
p.sendMessage(msg);
}else{
p.sendMessage(ChatColor.DARK_RED + "You don't have permission for this!");
}
}else{
sender.sendMessage(ChatColor.DARK_RED + "This command is only for players!");
}
}
if(cmd.getName().equalsIgnoreCase("checkping")){
if(sender instanceof Player){
Player p = (Player) sender;
if(p.hasPermission("ping.check")){
int wait = getConfig().getInt("checkforping");
wait = wait * 20;
sheduler(wait);
}else{
String noperm = getConfig().getString("nopermission");
noperm = noperm.replace("§", "\u00A7");
noperm.replaceAll("Å", "");
p.sendMessage(noperm);
}
}else{
int wait = getConfig().getInt("checkforping");
wait = wait * 20;
sheduler(wait);
sender.sendMessage(ChatColor.BLUE + "Checked for all players' ping");
}
}
return false;
}
}
eklenti spigot'ta var. PingProtect
@KRHN @IRFN @Krumb069