Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
Запрети воду!Вообщем на серве стоит анти афк (есентайлс) он кикает если игрок стоит 10 мин без дела. НО есть дикий обход :
![]()
Игрока двигает вода. Как пофикс. ?
я задрался банить. Уже просто ставлю динамит и факел и с игроком взрываю.Бань и все!
Без дыма нет огня)я задрался банить. Уже просто ставлю динамит и факел и с игроком взрываю.
public class AntiAFK extends JavaPlugin{
public void onEnable(){
antiAFK();
}
public void onDisable(){
this.afk.cancel();
}
private BukkitTask afk;
private HashMap<String,Integer> counter = new HashMap<String,Integer>();
private HashMap<String,Location> locs = new HashMap<String,Location>();
private void antiAFK()
{
this.afk = Bukkit.getScheduler().runTaskTimer(this, new Runnable()
{
public void run()
{
for (Player s1 : Bukkit.getOnlinePlayers()) {
Location last = locs.get(s1.getName());
if(last==null){
locs.put(s1.getName(), s1.getLocation());
} else {
Location cur = s1.getLocation();
if(last.getWorld().equals(cur.getWorld())){
if(cur.distance(last)<5){
int old = counter.get(s1.getName())!=null ? counter.get(s1.getName()) : 0;
if(old==8){
counter.remove(s1.getName());
locs.remove(s1.getName());
s1.kickPlayer("АФК 8 минут!");
continue;
}
counter.put(s1.getName(), old+1);
locs.put(s1.getName(), cur);
} else {
counter.remove(s1.getName());
locs.put(s1.getName(), cur);
}
} else {
counter.remove(s1.getName());
locs.put(s1.getName(), cur);
}
}
}
}
}, 20*60, 20*60);
}
}
И как запилить плагин с этим кодом?))Написал пример антиафк с проверкой дистанции. Если игрок 8 минут подряд не перемещался дальше 5 блоков в любую сторону, то кик.
Java:public void onEnable(){ antiAFK(); } public void onDisable(){ this.afk.cancel(); } private BukkitTask afk; private HashMap<String,Integer> counter = new HashMap<String,Integer>(); private HashMap<String,Location> locs = new HashMap<String,Location>(); private void antiAFK() { this.afk = Bukkit.getScheduler().runTaskTimer(this, new Runnable() { public void run() { for (Player s1 : Bukkit.getOnlinePlayers()) { Location last = locs.get(s1.getName()); if(last==null){ locs.put(s1.getName(), s1.getLocation()); } else { Location cur = s1.getLocation(); if(last.getWorld().equals(cur.getWorld())){ if(cur.distance(last)<5){ int old = counter.get(s1.getName())!=null ? counter.get(s1.getName()) : 0; if(old==8){ counter.remove(s1.getName()); locs.remove(s1.getName()); s1.kickPlayer("АФК 8 минут!"); continue; } counter.put(s1.getName(), old+1); locs.put(s1.getName(), cur); } else { counter.remove(s1.getName()); locs.put(s1.getName(), cur); } } else { counter.remove(s1.getName()); locs.put(s1.getName(), cur); } } } } }, 20*60, 20*60); }
Спасибо вам, мне б такой плагин, а то я нуб и не знаю как это всё собрать в filename.jarНаписал пример антиафк с проверкой дистанции. Если игрок 8 минут подряд не перемещался дальше 5 блоков в любую сторону, то кик.
Java:public class AntiAFK extends JavaPlugin{ public void onEnable(){ antiAFK(); } public void onDisable(){ this.afk.cancel(); } private BukkitTask afk; private HashMap<String,Integer> counter = new HashMap<String,Integer>(); private HashMap<String,Location> locs = new HashMap<String,Location>(); private void antiAFK() { this.afk = Bukkit.getScheduler().runTaskTimer(this, new Runnable() { public void run() { for (Player s1 : Bukkit.getOnlinePlayers()) { Location last = locs.get(s1.getName()); if(last==null){ locs.put(s1.getName(), s1.getLocation()); } else { Location cur = s1.getLocation(); if(last.getWorld().equals(cur.getWorld())){ if(cur.distance(last)<5){ int old = counter.get(s1.getName())!=null ? counter.get(s1.getName()) : 0; if(old==8){ counter.remove(s1.getName()); locs.remove(s1.getName()); s1.kickPlayer("АФК 8 минут!"); continue; } counter.put(s1.getName(), old+1); locs.put(s1.getName(), cur); } else { counter.remove(s1.getName()); locs.put(s1.getName(), cur); } } else { counter.remove(s1.getName()); locs.put(s1.getName(), cur); } } } } }, 20*60, 20*60); } }
Да, пожалуйста, можете скомпилировать?Написал пример антиафк с проверкой дистанции. Если игрок 8 минут подряд не перемещался дальше 5 блоков в любую сторону, то кик.
Java:public class AntiAFK extends JavaPlugin{ public void onEnable(){ antiAFK(); } public void onDisable(){ this.afk.cancel(); } private BukkitTask afk; private HashMap<String,Integer> counter = new HashMap<String,Integer>(); private HashMap<String,Location> locs = new HashMap<String,Location>(); private void antiAFK() { this.afk = Bukkit.getScheduler().runTaskTimer(this, new Runnable() { public void run() { for (Player s1 : Bukkit.getOnlinePlayers()) { Location last = locs.get(s1.getName()); if(last==null){ locs.put(s1.getName(), s1.getLocation()); } else { Location cur = s1.getLocation(); if(last.getWorld().equals(cur.getWorld())){ if(cur.distance(last)<5){ int old = counter.get(s1.getName())!=null ? counter.get(s1.getName()) : 0; if(old==8){ counter.remove(s1.getName()); locs.remove(s1.getName()); s1.kickPlayer("АФК 8 минут!"); continue; } counter.put(s1.getName(), old+1); locs.put(s1.getName(), cur); } else { counter.remove(s1.getName()); locs.put(s1.getName(), cur); } } else { counter.remove(s1.getName()); locs.put(s1.getName(), cur); } } } } }, 20*60, 20*60); } }
Ручки загнуты?Александр , можешь скомпелировать плагин :
Прошу тебя ! Он почти всем нужен !
10/10Учитесь , на чужих ошибках !
пытался в эклипсе, он ругался на ошибки. Если вы можете то помогите. У меня пиксельмон сервер а они так фармят яйца редких поковРучки загнуты?
10/10
Алсо, смысл кикать афкшников? Если кикать афкшников при заходе на полный сервер - это другое дело.
А если я буду перемещаться на 6 блоков вперед 😆😆😆Написал пример антиафк с проверкой дистанции. Если игрок 8 минут подряд не перемещался дальше 5 блоков в любую сторону, то кик.
Java:public class AntiAFK extends JavaPlugin{ public void onEnable(){ antiAFK(); } public void onDisable(){ this.afk.cancel(); } private BukkitTask afk; private HashMap<String,Integer> counter = new HashMap<String,Integer>(); private HashMap<String,Location> locs = new HashMap<String,Location>(); private void antiAFK() { this.afk = Bukkit.getScheduler().runTaskTimer(this, new Runnable() { public void run() { for (Player s1 : Bukkit.getOnlinePlayers()) { Location last = locs.get(s1.getName()); if(last==null){ locs.put(s1.getName(), s1.getLocation()); } else { Location cur = s1.getLocation(); if(last.getWorld().equals(cur.getWorld())){ if(cur.distance(last)<5){ int old = counter.get(s1.getName())!=null ? counter.get(s1.getName()) : 0; if(old==8){ counter.remove(s1.getName()); locs.remove(s1.getName()); s1.kickPlayer("АФК 8 минут!"); continue; } counter.put(s1.getName(), old+1); locs.put(s1.getName(), cur); } else { counter.remove(s1.getName()); locs.put(s1.getName(), cur); } } else { counter.remove(s1.getName()); locs.put(s1.getName(), cur); } } } } }, 20*60, 20*60); } }
Именно. Легко обойти. У меня игрок с антиафк решил глобально - сделал водную лестницу в высоту 26 блоков. Ему норм.А если я буду перемещаться на 6 блоков вперед 😆😆😆
А как они фармятся?У меня пиксельмон сервер а они так фармят яйца редких поков
Ранчо ставь и просто афк стой пока поки спариваются. За день фармили до 10 иви (редкие поки) . Сейчас просто сделал так чтоб яйцо ооочень долго выводилось и норм вродеИменно. Легко обойти. У меня игрок с антиафк решил глобально - сделал водную лестницу в высоту 26 блоков. Ему норм.
А как они фармятся?
Для случаев, когда ведется подсчет онлайна и он на что-то влияет.Алсо, смысл кикать афкшников? Если кикать афкшников при заходе на полный сервер - это другое дело.
Кстати да, проверку по блокам можно легко обойти сидя в вагонетке, например. Нужно проверять активность мыши (yaw/pitch). Активный игрок не может не сдвинуть мышь хоть немного.сделать проверку по yaw и pitch положениям локации. Если сервер без читеров, то справиться такой метод должен на ура. А по поводу вагонетки, то просто записывать от момента его посадки по каким блокам он проехал и если их повторяется больше например 10-20 раз, то сначала предупредить, а потом через ещё 5-10 повторов кикать.
В движущейся вагонетке при поворотах постоянно меняется положение взора игрока, по этому способ не сработает. Как раз проверку по блокам обойти никак не получиться, так как засиживание в ней предусматривает постоянное кольцевание по рельсам.Кстати да, проверку по блокам можно легко обойти сидя в вагонетке, например. Нужно проверять активность мыши (yaw/pitch). Активный игрок не может не сдвинуть мышь хоть немного.
Так запрети эти яйца раз они тебе так мешают. Ибо проверять все равно бесполезно, научатся юзать uopilot, и там можно будет накатать любые алгоритмы движения.пытался в эклипсе, он ругался на ошибки. Если вы можете то помогите. У меня пиксельмон сервер а они так фармят яйца редких поков