• Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

AntiHack-Plugin

Status
Für weitere Antworten geschlossen.

Yellowphoenix18

Vorarbeiter
Registriert
26 März 2013
Beiträge
287
Alter
26
Diamanten
300
Minecraft
YellowPhoenix18
Heyho,
heute habe ich einmal eine generelle Frage,da ich derzeit dabei bin alle unsere Systeme(Plugins,etc.) selbst zu schreiben,brauche ich natürlich auch ein eigenes AntiHack,doch leider haben meine Versuche nichts bewirkt.Ich habe bis jetzt schon super viel im Internet gekramt doch nichts brauchbares gefunden.Doch brauche ich das Plugin dringend noch vor der Eröffnung am 1.Nov. . Daher nun meine Frage,ob jemand von euch eine Idee hat bzw. weiss, wie man gucken kann ob jemand Fly-Hack nutzt.

Ich freue mich schon auf eure Antworten.

mfg YellowPhoenix18
 

FelixKlauke

Erzengel
Ehem. Teammitglied
Registriert
5 Januar 2014
Beiträge
1.038
Diamanten
299
Minecraft
FelixKlauke
Ein eigenes AntiHackPlugin zu programmieren ist, wenn du nicht weißt, wie du anfangen sollst, ein sinnloses Unterfangen. Jedoch ist das Grundprinzip einfach: Du weißt, wie schnell sich etwas bewegen kann/darf. Du arbeitest, wie ein Blitzer auf der Straße. Wenn sich etwas in einer bestimmten Zeit weiter bewegt, als es in s = t*v könnte dann kann irgendetwas nicht stimmen. Wie man das beim Fliegen macht, muss man sich selber zurechtlegen. Am besten orientierst du dich an vorhandenen Plugins, wie NCP, aber ich kann dir sagen, dass du wenig Erfolg haben wirst.
Es spricht nichts gegen die Verwendung des Originals.
 

Yellowphoenix18

Vorarbeiter
Registriert
26 März 2013
Beiträge
287
Alter
26
Diamanten
300
Minecraft
YellowPhoenix18
Natürlich nicht,doch haben wir ein Netzwerk und wollen global kicken/per Mysql-Abfrage bannen. Ich hatte ja auch schon mehrere Ideen,aber am Ende kam heraus,das man es nicht über die Höhe machen kann,da Wasser nicht als Block gerechnet wird.Daher suche ich halt nach einem kleinen Denkanstoß ;)
 

MiCrJonas

Threadripper
Registriert
29 Oktober 2012
Beiträge
1.064
Diamanten
0
Du könntest doch das PlayerKickEvent benutzen und bei der Kicknachricht schauen, ob diese von NCP ist. Wenn dies der Fall ist, trägst du den Spieler in die Datenbank ein und prüfst immer, wenn der Spieler auf den Server kommt , ob dieser gebannt ist etc.
Leider gibt es keine Funktion, mit der man direkt prüfen kann, on der Spieler gebannt wurde bzw. Ein PlayerBanEvent.
 

FelixKlauke

Erzengel
Ehem. Teammitglied
Registriert
5 Januar 2014
Beiträge
1.038
Diamanten
299
Minecraft
FelixKlauke
@MiCrJonas1997 @Bl4ckSkull666
Diskutiert das bitte in einer Unterhaltung. Wenn ihr euch auf eine gute Methode geeinigt habt, könnt ihr sie präsentieren. Die Posts lösche ich jetzt, da sie etwas vom Thema abdriften.

Übersetzung von @manf:
Diskutieren, ob wie und warum hier ein HashSet oder eine Arraylist ( Schnitzel oder Kotelett) nötig ist, könnt ihr gerne privat. Hier geht es um 'Denkanstöße' keine 100% mikrooptimierte Superlösung. Diskussionen über die Entscheidung von einzelnen Teammitgliedern könnt ihr auch gerne per Unterhaltung machen. Ansonsten haltet euch an die Forenregeln.
 
Zuletzt bearbeitet von einem Moderator:

Janhektor

Minecrafter
Registriert
10 Januar 2013
Beiträge
11
Diamanten
0
Du könntest die Fluggeschwindigkeit wie folgt berechnen:

Code:
static final double MAX_BLOCKS_PER_SECOND = 3.0D;

Map<String, Location> positions = new HashMap<String, Location>();

Map<String, Long> moveTimes = new HashMap<String, Long>();

@EventHandler
public void onPlayerMove (PlayerMoveEvent e) {
Player p = e.getPlayer();
if (positions.containsKey(p.getName())) {
double blocksMoved = p.getLocation().distance(positions.get(p.getName()));

if (moveTimes.containsKey(p.getName()) {
long diff = System.currentTimeMillis() - moveTimes.get(p.getName());
double movedPerSecond = blocksMoved / (diff / 1000);
if (movedPerSecond > MAX_BLOCKS_PER_SECOND) {
// Spieler hat sich schneller bewegt, als möglich
}
}

}
}
Natürlich müsstest du den Code noch weiter verändern (z.B. die Werte in die HashMap packen) und er lässt sich noch optimieren.
Dies hier dient lediglich dazu, um dir zu demonstrieren, wie so eine Funktion ungefähr aussehen kann.

Ich würde dir auch zu NoCheatPlus raten.
Natürlich ist es schön, selbst ein AntiCheat-Plugin zu programmieren.
Aber viel besser als das, was es schon gibt, wird es nicht werden, da die vorhandene Version schon alles weitgehend abdeckt.
Und so weit ich weiß, stellt NCP sogar noch eine Schnittstelle für Entwickler bereit, womit du dein Vorhaben sicher auch gut umsetzen könntest.

Janhektor
 

MiCrJonas

Threadripper
Registriert
29 Oktober 2012
Beiträge
1.064
Diamanten
0
"blocksMoved / (diff / 1000);" -> "
blocksMoved / (diff / 1000D);"
Und man kann auch einfach den Spieler in der Map als Keyboard benutzen, statt den Spielernamen.
 
Zuletzt bearbeitet:

Chrisliebär❤️

nur echt mit ❤️
Moderator
Registriert
19 Mai 2014
Beiträge
1.675
Diamanten
830
Mal so ne ganz grundsätzliche Frage: Warum zur Hölle willst du alle deine Plugins selbst entwickeln? Entwickelst du auch dein eigenes Betriebsysteme einfach nur weil es geht? Es gibt Plugins, die genau das machen, was du suchst. Wenn du keine Ahnung hast, wie man eigene Cheats und Hacks in den Vanilla Client baut, dann brauchst du eigentlich nichtmal anfangen über ein Plugin nachzudenken, dass solche verhindern soll. Und ich nehm nun einfach aml an, dass du das nicht weißt weil sonst wär das für dich kein Problem zu wissen wie man gegen Cheats vorgeht. Das geht schließlich Hand in Hand.
 
Status
Für weitere Antworten geschlossen.
Oben