- Баллы
- 61
- Имя в Minecraft
- Baraban4ik
Я делал ивенты и столкнулся с ошибкой что c = null
EcoEventHandler
Events
EcoLobby
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);
}
}
}
}
Код:
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);
}
}
}
Код:
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();
}
}