1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Помогите При компиляции cannot access BlockData

Тема в разделе "Разработка плагинов для новичков", создана пользователем MaksApsenT, 19 май 2022.

Статус темы:
Закрыта.
  1. Автор темы
    MaksApsenT

    MaksApsenT Ньюби

    Баллы:
    1
    Я новичек и не понимаю как особо пишутся плагины, так вот, давно мне написали плагин, и я решил закинуть его на сервер для друзей, но столкнулся с такой проблемой при компиляции, когда начал переводить его на версию 1.18.2

    Код:
    error: cannot access BlockData
    RegionManager manager = platforn.getRegionContainer().get(BukkitAdapter.adapt(p.getWorld()));
    ^
    class file for org.bukkit.block.data.BlockData not found
    Note: C:\Users\Maks\Documents\NetBeansProjects\HavenSpleef\src\apsent\HavenSpleef.java uses or overrides a deprecated API.
    Note: Recompile with -Xlint:deprecation for details.
    1 error
    
    вот код самого плагина:

    Код:
    package apsent;
    
    import com.sk89q.worldedit.bukkit.BukkitAdapter;
    import com.sk89q.worldguard.WorldGuard;
    import java.io.File;
    
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.Location;
    import org.bukkit.Material;
    import org.bukkit.block.Block;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.block.Action;
    import org.bukkit.event.player.PlayerInteractEvent;
    //import org.bukkit.event.player.PlayerMoveEvent;
    import org.bukkit.plugin.Plugin;
    import org.bukkit.plugin.java.JavaPlugin;
    import org.bukkit.scheduler.BukkitScheduler;
    
    import com.sk89q.worldguard.bukkit.WorldGuardPlugin;
    import com.sk89q.worldguard.internal.platform.WorldGuardPlatform;
    import com.sk89q.worldguard.protection.ApplicableRegionSet;
    import com.sk89q.worldguard.protection.managers.RegionManager;
    import com.sk89q.worldguard.protection.regions.ProtectedRegion;
    
    public class HavenSpleef extends JavaPlugin implements Listener {
    
        File cfg = new File(getDataFolder(), "config.yml");
        public void onEnable() {
            if(!cfg.exists()) {
                saveDefaultConfig();
            }
            Bukkit.getServer().getPluginManager().registerEvents(this, this);
            BukkitScheduler scheduler = Bukkit.getServer().getScheduler();
            scheduler.scheduleSyncRepeatingTask(this, new Runnable() {
                @Override
                public void run() {
                    Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "spleef regen");
                }
            }, 20L, getConfig().getLong("regen-cooldown")*20);
        }
        String prefix = getConfig().getString("messages.prefix");
        @Override
        public boolean onCommand(CommandSender s, Command cmd, String label, String[] args) {
            if(cmd.getName().equalsIgnoreCase("spleef")) {
                if(args[0].equalsIgnoreCase("reload")) {
                    if(!s.hasPermission("havenspleef.reload")) {
                        s.sendMessage(ChatColor.translateAlternateColorCodes('&', prefix + getConfig().getString("messages.don-t-have-perm")));
                        return true;
                    }
                    reloadConfig();
                    s.sendMessage(ChatColor.translateAlternateColorCodes('&', prefix + getConfig().getString("messages.config-reloaded")));
                }
                if(args[0].equalsIgnoreCase("regen")) {
                    if(!s.hasPermission("havenspleef.regen")) {
                        s.sendMessage(ChatColor.translateAlternateColorCodes('&', prefix + getConfig().getString("messages.don-t-have-perm")));
                        return true;
                    }
                    Location loc1 = new Location(Bukkit.getWorld(getConfig().getString("regen.world")), getConfig().getDouble("regen.point1.x"), getConfig().getDouble("regen.point1.y"), getConfig().getDouble("regen.point1.z"));
                    Location loc2 = new Location(Bukkit.getWorld(getConfig().getString("regen.world")), getConfig().getDouble("regen.point2.x"), getConfig().getDouble("regen.point2.y"), getConfig().getDouble("regen.point2.z"));
                    int minX = (int) Math.min(loc1.getX(), loc2.getX());
                    int minY = (int) Math.min(loc1.getY(), loc2.getY());
                    int minZ = (int) Math.min(loc1.getZ(), loc2.getZ());
                    int maxX = (int) Math.max(loc1.getX(), loc2.getX());
                    int maxY = (int) Math.max(loc1.getY(), loc2.getY());
                    int maxZ = (int) Math.max(loc1.getZ(), loc2.getZ());
                    for (int x = minX; x <= maxX; x++)
                        for (int y = minY; y <= maxY; y++)
                            for (int z = minZ; z <= maxZ; z++) {
                                Location blockLocation = new Location(Bukkit.getWorld("world"), x , y, z );
                                blockLocation.getBlock().setType(Material.SNOW_BLOCK);
                            }
                    Bukkit.broadcastMessage(ChatColor.translateAlternateColorCodes('&', prefix + getConfig().getString("messages.spleef-regen")));
                }
            }
            return true;
        }
        /*@EventHandler
        public void onMove(PlayerMoveEvent e) {
            Player p = e.getPlayer();
            RegionManager manager = getWorldGuard().getRegionManager(p.getWorld());
            if(p.getAllowFlight()) {
                ApplicableRegionSet rg1 = manager.getApplicableRegions(p.getLocation());
                for(ProtectedRegion reg : rg1) {
                    if(reg.getId().equalsIgnoreCase("spleef")) {
                        p.setAllowFlight(false);
                        p.sendMessage(ChatColor.translateAlternateColorCodes('&', prefix + getConfig().getString("messages.fly-disabled")));
                    }
                }
            }
        }*/
        @EventHandler
        public void onInteract(PlayerInteractEvent e) {
            Player p = e.getPlayer();
            Block b = e.getClickedBlock();
            if(p.getItemInHand().getType() == Material.STICK && p.hasPermission("havenspleef.set")) {
                if(e.getAction() == Action.LEFT_CLICK_BLOCK) {
                    getConfig().set("regen.world", b.getWorld().getName());
                    getConfig().set("regen.point1.x", b.getX());
                    getConfig().set("regen.point1.y", b.getY());
                    getConfig().set("regen.point1.z", b.getZ());
                    saveConfig();
                    e.setCancelled(true);
                    p.sendMessage(ChatColor.translateAlternateColorCodes('&', prefix + getConfig().getString("messages.set-point1")));
                    return;
                }
                if(e.getAction() == Action.RIGHT_CLICK_BLOCK) {
                    getConfig().set("regen.point2.x", b.getX());
                    getConfig().set("regen.point2.y", b.getY());
                    getConfig().set("regen.point2.z", b.getZ());
                    saveConfig();
                    e.setCancelled(true);
                    p.sendMessage(ChatColor.translateAlternateColorCodes('&', prefix + getConfig().getString("messages.set-point2")));
                    return;
                }
            }
                   
                    WorldGuardPlugin worldguard = WorldGuardPlugin.inst();
                    WorldGuardPlatform platforn = WorldGuard.getInstance().getPlatform();
            RegionManager manager = platforn.getRegionContainer().get(BukkitAdapter.adapt(p.getWorld()));
            try {
                            ApplicableRegionSet rg1 = manager.getApplicableRegions(BukkitAdapter.adapt(b.getLocation()).toVector().toBlockPoint());
                //ApplicableRegionSet rg1 = manager.getApplicableRegions(b.getLocation());
                for(ProtectedRegion reg1 : rg1) {
                    if(reg1.getId().equalsIgnoreCase("spleef")) {
                        if(e.getAction() == Action.LEFT_CLICK_BLOCK && b.getType() == Material.SNOW_BLOCK) {
                            e.setCancelled(true);
                            b.setType(Material.AIR);
                        }
                    }
                }
            } catch(Exception e1) {
            }
        }
        public WorldGuardPlugin getWorldGuard() {
            Plugin plugin = getServer().getPluginManager().getPlugin("WorldGuard");
            if(plugin == null) return null;
            return (WorldGuardPlugin) plugin;
        }
        public void onDisable() {
    
        }
    }
    
    
    
     
  2. Zuif

    Zuif Активный участник Пользователь

    Баллы:
    76
    org.bukkit.block.data.BlockData у тебя не нашло в либах. Ты подключал spigot-api?
     
  3. Автор темы
    MaksApsenT

    MaksApsenT Ньюби

    Баллы:
    1
    А все, я не тот api подключал. Решено
     
Статус темы:
Закрыта.

Поделиться этой страницей