• 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!

Erledigt Plugin warten lassen

NoWeed4You

Minecrafter
Registriert
6 Oktober 2020
Beiträge
4
Diamanten
100
Hallo zusammen,
ich schreibe gerade mein erstes plugin und möchte mein Plugin an einer bestimmten Stelle 15 Sekunden warten lassen, weiß aber nicht wie.
Das ist der Code.

Code:
package de.linas.tutorial.commands;

import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;

public class KillSlow implements CommandExecutor {
    @Override
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
        if(sender instanceof Player) {
            Player player = (Player) sender;
            if(player.hasPermission("tutorial.killslow")) {
                if(args.length == 1) {
                    player.addPotionEffect(new PotionEffect(PotionEffectType.POISON, 20, 20));
                    player.sendMessage("§cDu stirbst in 15 Sekunden");
               
                    //Ab hier 15 Sekunden warten
               
                    player.setHealth(0);
                }else if(args.length == 1) {
                    Player target = Bukkit.getPlayer(args[0]);
                    if(target != null) {
                        player.addPotionEffect(new PotionEffect(PotionEffectType.POISON, 20,20));
                        player.sendMessage("§cDer Spieler" + target.getName() + "§cstirbt in 15 Sekunden");                                           
                        target.sendMessage("§cDu stirbst in 15 Sekunden, da der Spieler" + player.getName() + "§cdich tödlich vergiftet hat");
                   
                        //Ab hier 15 Sekunden Warten
               
                        target.setHealth(0);
                    }else
                        player.sendMessage("§cDer Spieler" + args[0] + "§cist nicht online!");
                }else
                    player.sendMessage("§cCommand incorrect. Use /help [Command] to get informations.");                                       
            }else
                player.sendMessage("§cYou do not have the permission to use this command!");
        }else
            sender.sendMessage("Please use this command as Player");

            return false;
    }
}


Vielen Dank im Vorraus!
 
Zuletzt bearbeitet:

Ativendus

Kuhfänger
Registriert
7 Dezember 2016
Beiträge
78
Diamanten
152
Ich würde den Scheduler von Bukkit empfehlen, mit ihm kannst du bestimmte Dinge verzögert, wiederholend usw. ausführen

Hier ein Beispiel für deinen Code, die 300 stehen für die Ticks in Minecraft, was umgerechnet 15 Sekunden sind
Java:
Bukkit.getScheduler().runTaskLater(this, new Runnable() {
    @Override
    public void run() {
        target.setHealth(0);
    }
}, 300);
 

Malfrador

Threadripper
Registriert
16 Juni 2013
Beiträge
1.473
Diamanten
296
Minecraft
Malfrador
@Ativendus
Kannst du das eventuell direkt in meinem Code einfügen? Ich weiß nicht genau wie ich das machen soll.
Dann solltest du lernen, wie du das tust. z.B. in dem du erst Java lernst und dann Bukkit-Plugins anfängt.

Es bringt dir nichts, fertigen Code vorgekaut zu geben.
 

Ativendus

Kuhfänger
Registriert
7 Dezember 2016
Beiträge
78
Diamanten
152
@Ativendus
Kannst du das eventuell direkt in meinem Code einfügen? Ich weiß nicht genau wie ich das machen soll.

@Malfrador hat recht, aber hier der Code. Schau dir am besten einfach paar Videos zu Java an oder kauf dir ein Buch. Bücher zu Java gitb es viele und sie helfen manchmal mehr als man denkt

Java:
package de.linas.tutorial.commands;

import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;

public class KillSlow implements CommandExecutor {
    @Override
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
        if(sender instanceof Player) {
            Player player = (Player) sender;
            if(player.hasPermission("tutorial.killslow")) {
                if(args.length == 1) {
                    player.addPotionEffect(new PotionEffect(PotionEffectType.POISON, 20, 20));
                    player.sendMessage("§cDu stirbst in 15 Sekunden");
            
                    Bukkit.getScheduler().runTaskLater(this, new Runnable() {
                         @Override
                         public void run() {
                                 player.setHealth(0);
                         }
                    }, 300)
                }else if(args.length == 1) {
                    Player target = Bukkit.getPlayer(args[0]);
                    if(target != null) {
                        player.addPotionEffect(new PotionEffect(PotionEffectType.POISON, 20,20));
                        player.sendMessage("§cDer Spieler" + target.getName() + "§cstirbt in 15 Sekunden");                                         
                        target.sendMessage("§cDu stirbst in 15 Sekunden, da der Spieler" + player.getName() + "§cdich tödlich vergiftet hat");
                
                   Bukkit.getScheduler().runTaskLater(this, new Runnable() {
                         @Override
                         public void run() {
                                 target.setHealth(0);
                         }
                    }, 300)
            
                    }else
                        player.sendMessage("§cDer Spieler" + args[0] + "§cist nicht online!");
                }else
                    player.sendMessage("§cCommand incorrect. Use /help [Command] to get informations.");                                     
            }else
                player.sendMessage("§cYou do not have the permission to use this command!");
        }else
            sender.sendMessage("Please use this command as Player");

            return false;
    }
}
 
Oben