Résolu Setblock JAVA

Une erreur surviens toujours; voila je code complet :
Code:
package fr.RedHeadEmile.RedHeadEmile;
 
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.World;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
 
public class Command implements Listener {
 
    public Command(RedHeadEmile redHeadEmile) {
    }
 
    @EventHandler
    public void onCommand(PlayerCommandPreprocessEvent e){
       
        Player player = (Player) sender;
        Player p = e.getPlayer();
        String msg = e.getMessage();
        String[] args = msg.split(" ");
       
        if(args[0].equalsIgnoreCase("/danceore")){
            if(p.hasPermission("redheademile.danceore")){
           
            if(args.length == 1){
            p.sendMessage("§7/danceore <start | stop>");
            e.setCancelled(true);
            }
           
            if(args.length == 2){
           
                if(args[1].equalsIgnoreCase("start")){
                p.getServer().broadcastMessage("§6Le DanceOre §acommence §6!");
                World world = player.getWorld();
                world.getBlockAt(new Location(world, -202, 77, -48)).setType(Material.DIRT)
            }
                if(args[1].equalsIgnoreCase("stop")){
                p.getServer().broadcastMessage("§6Le DanceOre est §cfini §6!");
            }
           
               
            e.setCancelled(true);
            }
            }
        }
    }   
}
 
Quelle erreur ?

De plus, essaye de remplacer le 'p' de <p.getServer...> par Bukkit (Ce n'est peut-être pas ça, mais je ne peux rien te dire de plus tant que tu ne me donnes aucune info sur l'erreur en question)
 
Oui j'ai oublié de te dire, étant donné que tu utilises PlayerPreCommandProcess il n'y a pas de sender, donc remplaces 'p' par Bukkit et 'player' par p
 
Je n'arriva pas à comprendre, vous voulez dire modifier les code ici ?​
Code:
Player p = e.getPlayer();
        String msg = e.getMessage();
        String[] args = msg.split(" ");
 
Comme ceci ?
Code:
if(args[1].equalsIgnoreCase("start")){
                p.getServer().broadcastMessage("§6Le DanceOre §acommence §6!");
                World world = p.getWorld();
                world.getBlockAt(new Location(world, -202, 77, -48)).setType(Material.DIRT)
 
Exactement. Si cela ne marche pas, remplaces le 'p' de la ligne <<p.getServer()...>> par Bukkit :)
 
Comme ça ?
Code:
if(args[1].equalsIgnoreCase("start")){
                Bukkit.getServer().broadcastMessage("§6Le DanceOre §acommence §6!");
                World world = p.getWorld();
                world.getBlockAt(new Location(world, -202, 77, -48)).setType(Material.DIRT)
            }

Car le bukkit et la parenthèse après 'DIRT' est souligner :'(
 
Il fait que tu importes Bukkit, et pour la parenthèse après DIRT tu dois rajouter un point virgule