Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[Szukam] Skrypt AntyBoty.


Rekomendowane odpowiedzi

Opublikowano

Serdecznie polecam skrypty..

Nie polecam skryptów, a szczególnie dla słabych maszyn.
Jeżeli posiada się boty z regulacją wchodzenia (piwnejdża, darkstorma) do 1 sekundy w dół,
plugin skrypt nie nadąża z zapisywaniem danych do pliku ze zmiennymi. Co powoduje obciążanie serwera, straszne lagi, crashe itp..

Nawet źle napisany plugin który zapisuje dane potrafi wywołać opóźnienia.
Przykładowo plugin od logowania serwera MCWG, przy zapisie nazwy gracza, pozycji i utworzenia pasku smoka z kodem nie ma opóźnień do czasu,
aż nie zacznie zapisywać większej ilości (start serwera, wbijanie botów z częstotliwością 0.1 ms).

 

package pl.zientez.antybot;

import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;

public class AntyBot implements Listener {
 
@EventHandler
public void AntyBot(PlayerJoinEvent e) {
Player p = e.getPlayer();
if(!p.hasPlayedBefore()) {
    e.getPlayer().kickPlayer("§7[§aSERWER§7] §aWejdz ponownie na serwer!");
}
on first join:
    kick the player due to "&7[&aSERWER&7] &aWejdz ponownie na serwer!" 

Wiadomo nie polecam używać skryptu, plugin pisałem z pamięci.
Jak użyjesz wtyczki zrób klasę źródłową i zarejestruj event.

Zostaw lajka jak możesz, reputacje zbieram :P.

Opublikowano

@1361622928-U485574.pngbaphomet. zrobilem plugin twoim kodem dziala w konsoli pisze "§7[§aSERWER§7] §aWejdz ponownie na serwer!", ale u gracza zamiast pisac powod pisze: "Internal Exception: java.lang.ClassCastException: bju cannot be cast to fm". Nie wiesz w czym problem?

Tak samo jest w skryptach z kick the player due to "&7[&aSERWER&7] &aWejdz ponownie na serwer!" a jak zrobi się metodą execute console command "kick %player% bla bla" to dziala jak nalezy... Nie wiesz jak zrobic zeby pisal powod rozlaczenia z serwerem?


Problem i jak zrobic aby wymazalo przy wejsciu "joined the game" i "leave"?


Aha i jak mozna usunac wiadomosc Zientez left the game? Bo jak wbija 100 botow to chat zasmieca... Dodasz te linijke, aby nie pisalo left the game?

Opublikowano

zrób

on first connect:
 kick player due to "wejdz ponownie yolo"

 

ponieważ w evencie on join już teoretycznie wszedłeś na serwer, mapa się załadowała ITD. I wywala to jako error (najprawdopodobniej ładowania mapy)

Opublikowano

Serdecznie polecam skrypty..

 

Nie polecam skryptów, a szczególnie dla słabych maszyn.

Jeżeli posiada się boty z regulacją wchodzenia (piwnejdża, darkstorma) do 1 sekundy w dół,

plugin skrypt nie nadąża z zapisywaniem danych do pliku ze zmiennymi. Co powoduje obciążanie serwera, straszne lagi, crashe itp..

Nawet źle napisany plugin który zapisuje dane potrafi wywołać opóźnienia.

Przykładowo plugin od logowania serwera MCWG, przy zapisie nazwy gracza, pozycji i utworzenia pasku smoka z kodem nie ma opóźnień do czasu,

aż nie zacznie zapisywać większej ilości (start serwera, wbijanie botów z częstotliwością 0.1 ms).

 

 

package pl.zientez.antybot;

import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;

public class AntyBot implements Listener {
 
@EventHandler
public void AntyBot(PlayerJoinEvent e) {
Player p = e.getPlayer();
if(!p.hasPlayedBefore()) {
    e.getPlayer().kickPlayer("§7[§aSERWER§7] §aWejdz ponownie na serwer!");
}
on first join:
    kick the player due to "&7[&aSERWER&7] &aWejdz ponownie na serwer!" 

Wiadomo nie polecam używać skryptu, plugin pisałem z pamięci.

Jak użyjesz wtyczki zrób klasę źródłową i zarejestruj event.

 

Zostaw lajka jak możesz, reputacje zbieram :P.

@EventHandler
public void AntyBot(PlayerJoinEvent e) {
Player p = e.getPlayer();
if(!p.hasPlayedBefore()) {
    e.getPlayer().kickPlayer("§7[§aSERWER§7] §aWejdz ponownie na serwer!");
}

Trzeba zrobic taska albo przy onlogin i kicknac po 3 tickach zeby dzialalo. Jak kickniesz bez czekania to sie sypnie u klienta jakis error i sie nie wyswietli wiadomosc.

Poza tym metod sie nie pisze z duzych. Przerobiony kod (na on join):

@EventHandler
public void onJoin(PlayerJoinEvent e) {
Player p = e.getPlayer();
if (!p.hasPlayedBefore()) p.kickPlayer("Nic tu nie pisze bo i tak sie nie pojawi.");
}

@topic

@Zientez

AntiBotUltra, AntiBot, AntyBot (polski)

i kod:

	@EventHandler
	void onLogin(PlayerLoginEvent e){
		if (e.getResult() == PlayerLoginEvent.Result.KICK_WHITELIST) {
			e.disallow(Result.KICK_WHITELIST,""
					+ "§aWitamy. Twoje konto zostalo utworzone.\n"
					+ "§7Mozesz zalogowac sie juz do gry!");
			e.getPlayer().setWhitelisted(true);
		}
	}

Wykorzystuje whiteliste. Dziala, ale musisz wlasna whiteliste zrobic.

Opublikowano

@1361622928-U485574.pngfilippop1

Sranie w banie i po ścianie :D.
Bawię się API Bukkita od niedawna i troszkę nie ogarniam czasami :P.

Dzięki za poprawkę!
 

@Edit

Co do zmiany wiadomości to prościej niż Ci się wydaje.

 

@EventHandler
public void JoinMessage(PlayerJoinEvent e) {
Player p = e.getPlayer();
    e.setJoinMessage("");

@EventHandler
public void LeaveMessge(PlayerLeftEvent e) {
Player p = e.getPlayer();
    e.setLeftMessage("");

@EventHandler
public void FirstMessge(PlayerLeftEvent e) {
Player p = e.getPlayer();
if(!p.hasPlayedBefore()) {
    e.setMessage("");

Filip, poprawi jak coś :P. Ja nie umiem :D.

Możesz też użyć pluginu:

http://dev.bukkit.org/bukkit-plugins/csm/

Opublikowano

@1361622928-U485574.pngfilippop1

 

Sranie w banie i po ścianie :D.

Bawię się API Bukkita od niedawna i troszkę nie ogarniam czasami :P.

 

Dzięki za poprawkę!

 

@Edit

 

Co do zmiany wiadomości to prościej niż Ci się wydaje.

 

 

@EventHandler
public void JoinMessage(PlayerJoinEvent e) {
Player p = e.getPlayer();
    e.setJoinMessage("");

@EventHandler
public void LeaveMessge(PlayerLeftEvent e) {
Player p = e.getPlayer();
    e.setLeftMessage("");

@EventHandler
public void FirstMessge(PlayerLeftEvent e) {
Player p = e.getPlayer();
if(!p.hasPlayedBefore()) {
    e.setMessage("");

Filip, poprawi jak coś :P. Ja nie umiem :D.

 

Możesz też użyć pluginu:

 

http://dev.bukkit.org/bukkit-plugins/csm/

Metody z malej sie pisze czyli nie "FirstMessage" tylko "firstMessage"

i to e.setLeftMessage(""); to chyba pusta linijke wysyla.

Ja robie tak:

e.setLeftMessage(null);

Opublikowano

 

Metody z malej sie pisze czyli nie "FirstMessage" tylko "firstMessage"

i to e.setLeftMessage(""); to chyba pusta linijke wysyla.

Ja robie tak:

e.setLeftMessage(null);

 

 PlayerJoinEvent playerJoinEvent = new PlayerJoinEvent(this.cserver.getPlayer(entityplayer), "§e" + entityplayer.getName() + " joined the game.");
    this.cserver.getPluginManager().callEvent(playerJoinEvent);
    
    String joinMessage = playerJoinEvent.getJoinMessage();
    if ((joinMessage != null) && (joinMessage.length() > 0)) {
      for (IChatBaseComponent line : CraftChatMessage.fromString(joinMessage)) {
        this.server.getPlayerList().sendAll(new PacketPlayOutChat(line));
      }
    }

ustawienie join message na "" też zadziała ;]

I5 4690 3.5GHz | GeForce GTX 970 | Crucial Ballistix 8GB 1600MHz | SSD Transcend 370 128GB & HDD Seagate 5.4k 500GB | MSI B85-G43 | Corsair CX 500W | Zalman Z3 PLUS

Opublikowano

Dzieki za pomoc. A napiszecie mi linijki jak dodac np. wait 1 second i dopiero kickuje? Bo w skryptach jest wait a w Javie nwm. Szukalem w necie a nieznalazlem :(.

Opublikowano

Dzieki za pomoc. A napiszecie mi linijki jak dodac np. wait 1 second i dopiero kickuje? Bo w skryptach jest wait a w Javie nwm. Szukalem w necie a nieznalazlem :(.

Bukkit.getScheduler().runTaskLater(instancja_pluginu, new Runnable() {

                                    @Override
                                    public void run() {
                                       //kod
                                    }
 }, 3L); //3 ticki
Opublikowano

U mnie (w Eclipse) nie ma takiego czegos jak "public void leaveMessge(PlayerLeftEvent e) {" pisze aby zamienic np na (PlayerJoinEvent e) u was tez tak jest? Jak to naprawic?

Opublikowano

U mnie (w Eclipse) nie ma takiego czegos jak "public void leaveMessge(PlayerLeftEvent e) {" pisze aby zamienic np na (PlayerJoinEvent e) u was tez tak jest? Jak to naprawic?

PlayerLeaveEvent...

Opublikowano

@1361622928-U485574.pngfilippop1 dziala, a jest takie cos jak secondJoin?

w join event:

if (!p.hasPlayedBefore()) {

p.sendMessage("wszedles pierwszy raz na serwer!");

}

Opublikowano

@1361622928-U485574.pngfilippop1 chodzilo mi o cos innego, ale to juz nie ma znaczenia bo zrobilem inaczej :D, mam jeszcze jedna prosbe napiszesz mi kod Javy na wykonywanie polecen poprzez console? W skryptach jest "execute console command "kit gracz %player%" zamienisz mi to na kod Javy? Prosze?

Opublikowano

Akurat na antybota to też wolałbym skrypt, bo spotkałem się z antybotem ,a tutaj backdoor i op można sobie dać.

Opublikowano

getServer().dispatchCommand(getServer().getConsoleSender(), "say dziala!");

Opublikowano

Ja wale on chce skrypt
tylko muszisz wytabowac
on connect:

       if {antybot.%player%} is not set:

            kick player due to "&6Zaloguj sie ponownie! Konto zostalo stworzone"

            set {antybot.%player%} to 1
        else:

           stop

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...