Tempban

Dieses Thema im Forum "Programmierung" wurde erstellt von Lik3Fr33, 4. Oktober 2012.

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. Lik3Fr33
    Offline

    Lik3Fr33 Gesperrt

    Registriert seit:
    1. Oktober 2012
    Beiträge:
    37
    Minecraft:
    mdafcker / Lik3Fr33
    Hay, Leute!

    Ich habe ein Warn Plugin gemacht! Und jetzt mache ich noch 2 Sachen! :D

    /warnban
    Nur weiss ich noch nicht wie man so was macht :D

    /warnkick
    Suche wie man so was macht :D

    Und ich habe schon was gemacht ;)

    Warn.this.getServer().broadcastMessage("§9Der Spieler §7§l" + pp.getName() + " §9wurde gewarnt. Grund: §b" + b.toString());
    atz.add(p.getName() + " §bwurde am : §7" + new SimpleDateFormat("dd.MM.yyyy").format(new Date()) + " §bgewarnt Grund: §7" + b.toString());
    if (atz.size() == 7) {
    Warn.this.getServer().broadcastMessage("§4Der Spieler §c§l" + pp.getName() + " §4wurde wegen 7 verwarnungen 24 Stunden gebannt!");
    pp.setBanned(true);
    pp.kickPlayer("§4Du wurdest für 24 Stunden gebannt Grund: §c" + b.toString());

    Nur weiss ich nicht Wie man Tempban macht Wer nett wen es mir einer Schreibt ;)


    LG, Lik3Fr33
     
    #1
  2. Let's Mine
    Offline

    Let's Mine Ehem. Teammitglied

    Registriert seit:
    1. Dezember 2011
    Beiträge:
    421
    Ort:
    Let's Mine
    Minecraft:
    LetsMine
    bei den Befehlen weiß ich nicht was du möchtest, den Code verwendest du doch schon. Und zu Timebanns: Ich glaub es gibt in Bukkit jetzt schon eine API; die das mit den Timebanns regelt. Falls nicht, früher hab ich es immer so gemacht:
    PlayerLoginEvent, schauen obs ein KICK_BANNED Result ergibt. Wenn ja, den timestamp aus der Datenspeicherungsmethode deiner Wahl laden, diesen dann gegen den jetzigen Vergleichen (muss demzufolge von anfang an die Zeit gespeichert werden, zu der er rauskommt), und falls er schon rauskommt, event erlauben, entbannen und den eintrag aus der Datenbank löschen. Wenn nicht, ihn mit der Nachricht kicken, wie lange er noch gebannt ist.
     
    #2
  3. MrFlieder
    Offline

    MrFlieder

    Registriert seit:
    30. Dezember 2011
    Beiträge:
    333
    Ort:
    Österreich
    Minecraft:
    MrFlieder
    Bei einem Bann einfach einen User in eine Datei / Datenbanktabelle eintragen, beim LoginEvent überprüfen, ob derjenige in der DB/Datei als gebannt eingetragen ist und den User mit einer dementsprechenden Nachricht kicken. Und Kick ist überhaupt sehr einfach -
    Code (Text):
    1. player.kickPlayer("Grund");
     
    #3
  4. Hier ein Beispiel wie man beim LogIn jemanden überprüft ob der gebannt ist:
    Code (Text):
    1.     @EventHandler(priority = EventPriority.HIGHEST)    public void checkForBan(final PlayerLoginEvent event){
    2.         if(event.getResult() == PlayerLoginEvent.Result.ALLOWED){
    3.             String playername = event.getPlayer().getName();
    4.              //Hier müsstest du deine eigene Methode schreiben!
    5.             if(isPlayerBanned(playername)){
    6.                 event.disallow(PlayerLoginEvent.Result.KICK_OTHER, "Grund blabla");
    7.             }
    8.            
    9.         }else{
    10.             return;
    11.         }
    12.     }
     
    #4
  5. kingingo
    Offline

    kingingo Gesperrt

    Registriert seit:
    1. September 2012
    Beiträge:
    63
    ich hätte noch eine frage wie macht /unban bei mir geht das nicht weil der player online sein muss und ja das is ja er natürlich net mit getOfflinePlayer ?? vlt
     
    #5
  6. MrFlieder
    Offline

    MrFlieder

    Registriert seit:
    30. Dezember 2011
    Beiträge:
    333
    Ort:
    Österreich
    Minecraft:
    MrFlieder
    Den Player, der entbannt werden soll, einfach aus deiner Datei / DB-Tabelle wieder entfernen.
    Falls du das mit dem Bannen ebenso realisiert hast.
     
    #6
Status des Themas:
Es sind keine weiteren Antworten möglich.