Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Помогите [Решено] У меня переменная отвечающие за конфиг нулевая

Метки:
Теги Теги
spigot 1.12.2 срочно
Статус
Закрыто для дальнейших ответов.

Вова Петренко

Активный участник
Пользователь
Баллы
61
Имя в Minecraft
Baraban4ik
Я делал ивенты и столкнулся с ошибкой что c = null
EcoEventHandler
Код:
package me.sp3ctr0.ecolobby.event;

import me.sp3ctr0.ecolobby.configurations.Configurations;
import me.sp3ctr0.ecolobby.utils.Chat;
import me.sp3ctr0.ecolobby.utils.Events;
import org.bukkit.GameMode;
import org.bukkit.Location;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockBreakEvent;
import org.bukkit.event.block.BlockPlaceEvent;
import org.bukkit.event.entity.EntityDamageEvent;
import org.bukkit.event.entity.FoodLevelChangeEvent;
import org.bukkit.event.entity.PlayerDeathEvent;
import org.bukkit.event.player.*;

import java.util.Arrays;
import java.util.List;

public class EcoEventHandler implements Listener {
    private final FileConfiguration c;
    private final FileConfiguration m;

    public EcoEventHandler(Configurations configurations) {
        c = configurations.get("config.yml");
        m = configurations.get("messages.yml");
    }
    private static final List<String> MOTD = Arrays.asList
            (
                    "",
                    "          &8[&a&lLobby&8]",
                    "",
                    "   &fwelcome to the server &a&lserver",
                    "   &fThere are &amany &fadventures waiting for you here.",
                    "",
                    "   &fHope you &alike &fit here!",
                    ""
            );

    @EventHandler
    public void join(PlayerJoinEvent e) {
        Player player = e.getPlayer();
        if (c.getString("spawn.x") != null && this.c.getString("spawn.y") != null) {
            Events.tpSpawn(player);
        }
        if (c.getBoolean("settings.enable-motd")) {
            List<String> motd = m.getStringList("motd");
            if (motd.isEmpty()) {
                MOTD.forEach((x) -> Chat.sendMessage(player, x));
                return;
            }
            motd.forEach((x) -> Chat.sendMessage(player, x));
        }
        Events.disableMessageJoin(e);
        player.setGameMode(GameMode.valueOf(c.getString("settings.gamemode").toUpperCase()));
        player.setLevel(c.getInt("settings.level-exp"));
    }

    @EventHandler
    public void jumpVoid(PlayerMoveEvent e) {
        Player player = e.getPlayer();
        if (c.getBoolean("jump-to-void")) {
            if (player.getLocation().getY() < 0.0D && c.getString("spawn.x") != null && c.getString("spawn.y") != null) {
                Events.tpSpawn(player);
                Chat.sendMessagePrefix(player, m.getString("jump-to-void", "You fell into the void, I returned you to spawn."));
            }
        }
    }


    @EventHandler
    public void messQuit(PlayerQuitEvent e) {
        Events.disableMessageQuit(e);
    }
    @EventHandler
    public void messDeath(PlayerDeathEvent e) {
        Events.disableMessageDeath(e);
    }
    @EventHandler
    public void messKick(PlayerKickEvent e) {
        Events.disableMessageKick(e);
    }


    @EventHandler
    public void move(PlayerMoveEvent e) {
        Player player = e.getPlayer();
        if (c.getBoolean("settings.player-abilities.movements")) {
            if (!player.hasPermission("ecolobby.bypass.move")) {
                Location from = e.getFrom().clone();
                Location to = e.getTo();
                from.setYaw(to.getYaw());
                from.setPitch(to.getPitch());
                if (!from.equals(to)) e.setCancelled(true);
            }
        }
    }


    @EventHandler
    public void breakBlock(BlockBreakEvent e) {
        Events.Break(e, "settings.abilities.break");
    }
    @EventHandler
    public void placeBlock(BlockPlaceEvent e) {
        Events.Place(e, "settings.abilities.place");
    }
    @EventHandler
    public void damagePlayer(EntityDamageEvent e) {
        Events.Damage(e, "settings.abilities.damage");
    }
    @EventHandler
    public void hungerPlayer(FoodLevelChangeEvent e) {
        Events.Hunger(e, "settings.abilities.hunger");
    }


    @EventHandler
    public void chat(AsyncPlayerChatEvent e) {
        Player player = e.getPlayer();
        if (!player.hasPermission("ecolobby.bypass.chat") && !c.getBoolean("enable-chat")) {
            Chat.sendMessagePrefix(player, m.getString("disable-chat", "I'm sorry but you can't chat!"));
            e.setCancelled(true);
        }
    }
    @EventHandler
    public void command(PlayerCommandPreprocessEvent e) {
        Player player = e.getPlayer();
        if (!c.getBoolean("settings.enable-commands") && !player.hasPermission("ecolobby.bypass.commands")) {
            String[] message = e.getMessage().replace("/", "").split(" ");
            if (!c.getStringList("settings.use-commands").contains(message[0])) {
                Chat.sendMessagePrefix(player, m.getString("disable-commands", "You can't use this command!"));
                e.setCancelled(true);
            }
        }
    }
}
Events
Код:
package me.sp3ctr0.ecolobby.utils;

import me.sp3ctr0.ecolobby.configurations.Configurations;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.World;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.event.block.BlockBreakEvent;
import org.bukkit.event.block.BlockPlaceEvent;
import org.bukkit.event.entity.EntityDamageEvent;
import org.bukkit.event.entity.FoodLevelChangeEvent;
import org.bukkit.event.entity.PlayerDeathEvent;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerKickEvent;
import org.bukkit.event.player.PlayerQuitEvent;

public class Events {

    private static Configurations configurations;
    private static FileConfiguration c;

    public Events(Configurations configurations) {
        Events.configurations = configurations;
        c = configurations.get("config.yml");
    }

    public static void getLocation(Player player) {
        Location loc = player.getLocation();
        double x = loc.getX();
        double y = loc.getY();
        double z = loc.getZ();
        float pitch = loc.getPitch();
        float yaw = loc.getYaw();
        c.set("spawn.x", x);
        c.set("spawn.y", y);
        c.set("spawn.z", z);
        c.set("spawn.pitch", pitch);
        c.set("spawn.yaw", yaw);
        c.set("spawn.world", player.getWorld().getName());
        configurations.save(c, "config.yml");
    }

    public static void tpSpawn(Player player) {
        double x = c.getDouble("spawn.x");
        double y = c.getDouble("spawn.y");
        double z = c.getDouble("spawn.z");
        float pitch = (float) c.getDouble("spawn.pitch");
        float yaw = (float) c.getDouble("spawn.yaw");
        World world = Bukkit.getWorld(c.getString("spawn.world"));
        Location loc = new Location(world, x, y, z, yaw, pitch);
        player.teleport(loc);
    }

    public static void disableMessageJoin(PlayerJoinEvent e) {
        System.out.println("cfg: " + c);
        if (c.getBoolean("settings.enable-hidestream")) {
            e.setJoinMessage("");
        }
    }
    public static void disableMessageQuit(PlayerQuitEvent e) {
        if (c.getBoolean("settings.enable-hidestream")) {
            e.setQuitMessage(null);
        }
    }
    public static void disableMessageDeath(PlayerDeathEvent e) {
        if (c.getBoolean("settings.enable-hidestream")) {
            e.setDeathMessage(null);
        }
    }
    public static void disableMessageKick(PlayerKickEvent e) {
        if (c.getBoolean("settings.enable-hidestream")) {
            e.setLeaveMessage(null);
        }
    }

    public static void Break(BlockBreakEvent e, String bool) {
        if (c.getBoolean(bool)) {
            e.setCancelled(true);
        }
    }
    public static void Place(BlockPlaceEvent e, String bool) {
        if (c.getBoolean(bool)) {
            e.setCancelled(true);
        }
    }
    public static void Damage(EntityDamageEvent e, String bool) {
        if (e.getEntity() instanceof Player && c.getBoolean(bool)) {
            e.setCancelled(true);
        }
    }
    public static void Hunger(FoodLevelChangeEvent e, String bool) {
        if (c.getBoolean(bool)) {
            e.setCancelled(true);
        }
    }
}
EcoLobby
Код:
package me.sp3ctr0.ecolobby;

import me.sp3ctr0.ecolobby.commands.EcoLobbyCommand;
import me.sp3ctr0.ecolobby.configurations.Configurations;
import me.sp3ctr0.ecolobby.event.EcoEventHandler;
import me.sp3ctr0.ecolobby.utils.Chat;
import org.bukkit.plugin.java.JavaPlugin;

import java.util.Arrays;
import java.util.List;

public final class EcoLobby extends JavaPlugin {

    private Configurations configurations = new Configurations(this, "config.yml", "messages.yml");
    public final List<String> ENABLE_MESSAGE = Arrays.asList
            (
                    "§7=-=-=-=-§a§lEco§f§lLobby§7-=-=-=-=",
                    "",
                    " Version: §a" + this.getDescription().getVersion(),
                    " Author: §aSp3ctr0",
                    "",
                    "§7=-=-=-=-§a§lEco§f§lLobby§7-=-=-=-="
            );

    @Override
    public void onEnable() {
        ENABLE_MESSAGE.forEach(System.out::println);

        configurations.loadConfigurations();
        getServer().getPluginCommand("ecolobby").setExecutor(new EcoLobbyCommand(configurations, this));
        getServer().getPluginManager().registerEvents(new EcoEventHandler(configurations), this);
    }

    @Override
    public void onDisable() {
        configurations = null;
    }

    public void reload() {
        configurations.reloadConfigurations();
    }
}
 
Вот бы ошибку, цены не было. А щас гадать и смотреть весь код, где именно проблема - такое себе. А ещё бы класс Configurations посмотреть
 
Вот бы ошибку, цены не было. А щас гадать и смотреть весь код, где именно проблема - такое себе. А ещё бы класс Configurations посмотреть
уже решил я просто не передавал в эти классы переменную сonfigurations
 
Статус
Закрыто для дальнейших ответов.

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

Назад
Верх