Jump to content

Spieler automatisch temp Bannen, wenn er gestorben ist


Empfohlene Beiträge

Moin, bin neu dies das!

Ich mache mich an so einem Plugin dran, dass den Spieler automatisch temp Bannen soll, sobald er gestorben ist. (Spigot 1.8.8)

@SuppressWarnings("deprecation")
	@EventHandler

	public void onDeath(PlayerDeathEvent e) {

	Player p = e.getEntity();

	if(p.isDead()) {
	p.kickPlayer("§7- * - + - * - §8[§b§lmyLife§8] §7- * - + - * -\n\n§eDu bist gestorben.\n§cDamit bist du für §a72 Stunden §caus dem Spiel §4ausgeschieden§c!");

	p.setBanned(true);

	}

}

Wie man sehen kann, habe ich das mit dem automatischem Kicken schon angegeben. Nun weiß ich aber nicht, wie ich das einbaue, dass der Spieler dann für 72 Stunden gebannt wird und nicht permanent. In anderen Forum habe ich das selbe gefragt, aber es kommt immer irgendeine Antwort wie "Ja du musst dies und das machen. Fertig." Und ich denke mir so "-.-". WIE schreibe ich das möglichst klein in das Plugin, ohne daraus gleich ein ganzes BannSystem zu machen?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Bukkit unterstützt ja kein Tempban - man müsste quasi erstmal da etwas programmieren, was den Spieler temporär vom Server bannen kann.

Es gibt ja bereits Plugins, die so etwas umsetzen - du kannst da ja in die Quellcodes gehen und schauen, wie die das machen:

https://github.com/RandomThingsThatIMadeAtOnePointInTime/DeathBans/blob/master/src/main/java/github/scarsz/deathbans/DeathBans.java

 

Du könntest auch auf den Server das Plugin "Essentials" draufpacken - da wird der Tempban-Befehl gleich mitgebracht.

Bezogen auf dein Plugin feuerst du dann nur noch den /tempban-Befehl in die Console, wenn onDeath getriggert wird:

 

    String time = " 72h ";
    String reason = " Du bist gestorben und damit 72 Stunden aus dem Spiel ausgeschieden";
    
    @EventHandler
    public void onDeath(EntityDeathEvent e){
        if(e.getEntity() instanceof Player){
            Player p = (Player) e.getEntity();

            Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "tempban " + p.getName() + time + reason);
     
        }
    }

 

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 1 Stunde schrieb Bedrock:

Bukkit unterstützt ja kein Tempban - man müsste quasi erstmal da etwas programmieren, was den Spieler temporär vom Server bannen kann.

Es gibt ja bereits Plugins, die so etwas umsetzen - du kannst da ja in die Quellcodes gehen und schauen, wie die das machen:

https://github.com/RandomThingsThatIMadeAtOnePointInTime/DeathBans/blob/master/src/main/java/github/scarsz/deathbans/DeathBans.java

 

Du könntest auch auf den Server das Plugin "Essentials" draufpacken - da wird der Tempban-Befehl gleich mitgebracht.

Bezogen auf dein Plugin feuerst du dann nur noch den /tempban-Befehl in die Console, wenn onDeath getriggert wird:

 


    String time = " 72h ";
    String reason = " Du bist gestorben und damit 72 Stunden aus dem Spiel ausgeschieden";
    
    @EventHandler
    public void onDeath(EntityDeathEvent e){
        if(e.getEntity() instanceof Player){
            Player p = (Player) e.getEntity();

            Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "tempban " + p.getName() + time + reason);
     
        }
    }

 

 

ANTWORT VON MIR:

Leider funktioniert das nicht :( Ich habe schon "Bukkit.dispatchCommand" und "Bukkit.getServer().dispatchCommand" ausprobiert...

Zitat

package Listeners;

import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.PlayerDeathEvent;
import org.bukkit.event.player.PlayerLoginEvent;

public class BannedTitle implements Listener{

    String timeE = "72h ";
    
    String Prefix = "§7- * - + - * - §8[§b§lmyLife§8] §7- * - + - * -\n\n";
    String reason = "§eDu bist gestorben.\n§cDamit bist du für ";
    String time = "§a72 Stunden";
    String reason1 = " §caus dem Spiel §4ausgeschieden§c!";
    
    String reasonBanTitle = "§eDu wurdest für ";
    String timeBanTitle = "§a72 Stunden";
    String reason1BanTitle =" §evom Netwerk §cgebannt§e, weil du gestorben bist.\n\n";
    String reason2BanTitle = " §cSomit bist du vorrübergehend aus dem Spiel §4ausgeschieden§c.";
    
    @EventHandler

    public void onDeath(PlayerDeathEvent e) {
        if(e.getEntity() instanceof Player) {
            Player p = e.getEntity();
            
            Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "tempban " + p.getName() + timeE + reason + time + reason1);

            //if(p.isDead()) {
                //p.kickPlayer(Prefix + reason + time + reason1);
        }

    }

//}
    
    @EventHandler(priority = EventPriority.HIGH)
    public void onJoin(PlayerLoginEvent e) {
        Player p = e.getPlayer();
        
        if(p.isBanned()) {
            
            e.setKickMessage(Prefix + reasonBanTitle + timeBanTitle + reason1BanTitle + reason2BanTitle);
        }
    }

}

So sieht die ganze Klasse aus

bearbeitet von query
Link zu diesem Kommentar
Auf anderen Seiten teilen

Hast du eine Hauptklasse, wo onEnable und onDisable Verwendung findet?

Wird dort bei onEnable das Event auch registriert?

Hast du es erstmal ohne deinen eigenen Formatierungen/Prefix getestet?

Also erstmal nur mit:

Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "tempban " + p.getName() + time + reason);

Läuft Essentials auch? Teste da mal den Tempban-Befehl ingame oder über die Console.

 

public void onJoin(PlayerLoginEvent e) 

Das brauchst du nicht, da der Tempban über Essentials auch verwaltet wird. Wenn ein gebannter versucht zu joinen, steht die Restzeit und der Grund dabei.

 

 

  • Danke 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...
B
B