Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

Помогите Нужна помощь в написании плагина

Тема в разделе "Помощь", создана пользователем Brazikc, 17 окт 2022.

  1. Автор темы
    Brazikc

    Brazikc Ньюби

    Баллы:
    1
    Имя в Minecraft:
    Aisponch
    Я понимаю, что я НОВИЧОК И НИЧЕРТА НЕ ЗНАЮ НЕ НУЖНО МЕНЯ ХЕЙТИТЬ.
    Проблема такая, что я создал локацию с проверкой блока из config.yml, но теперь мне нужно подключиться к этой локации через другой класс и чёт не вдупляю как.

    Это класс TeleportManager
    package Events;

    import org.bukkit.Bukkit;
    import org.bukkit.Location;
    import org.bukkit.Material;
    import org.bukkit.configuration.file.FileConfiguration;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.player.PlayerRespawnEvent;
    import tailctactserver.resinhell.ResInHell;
    import org.bukkit.World;
    import yml.MainConfig;
    import java.util.Random;


    public class TeleportManager {
    public ResInHell main;
    public MainConfig config;
    public TeleportManager(ResInHell main){
    this.main = main;
    this.config = main.getMainConfig();

    }

    public Location findRandomLocation(World world_nether) {
    // целые значения координат
    Material material;
    int zMax = ResInHell.getInstance().getConfig().getInt("Cord.zMax");
    int zMin = ResInHell.getInstance().getConfig().getInt("Cord.zMin");
    int xMax = ResInHell.getInstance().getConfig().getInt("Cord.xMax");
    int xMin = ResInHell.getInstance().getConfig().getInt("Cord.xMin");
    int yMax = ResInHell.getInstance().getConfig().getInt("Cord.yMax");
    int yMin = ResInHell.getInstance().getConfig().getInt("Cord.yMin");
    int randomX, randomY, randomZ;
    FileConfiguration cfg = this.config.get();
    Random r = new Random();
    do {
    randomX = getRandom(xMin, xMax);
    randomZ = getRandom(zMin, zMax);
    randomY = getRandom(yMin, yMax);
    material = Bukkit.getWorld("world_nether").getBlockAt(randomX, randomY, randomZ).getType();
    } while (this.config.get().contains("avoid-blocks") && this.config.getAvoidBlocks().contains(material));
    return new Location(world_nether, randomX + 0.5D, randomY - 1.0D, randomZ + 0.5D);
    }

    private int getRandom(int min, int max) {
    return (int) (Math.random() * (max - min + 1) + min);
    }
    public String randomTeleport(Player player) {
    Location spot = findRandomLocation(player.getWorld());
    player.teleport(spot);
    return spot.getBlockX() + " " + spot.getBlockY() + " " + spot.getBlockZ();
    }


    }

    Это класс с самим эвентом из-за которого я должен телепортироваться в локацию которую проверил TeleportManager

    package Events;

    import org.bukkit.Bukkit;
    import org.bukkit.Location;
    import org.bukkit.World;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.player.PlayerRespawnEvent;

    public class Event implements Listener {
    private TeleportManager tm;

    @EventHandler
    public void onRespawn(PlayerRespawnEvent event) {
    if (event.isBedSpawn() == true) {
    Player player = event.getPlayer();
    Location tt = (findRandomLocation(Bukkit.getWorld("world_nether")));
    event.setRespawnLocation(tt);
    }
    }

    }


    И чёт я просто не могу подключиться к этой локации


    Помогите
     
  2. Хостинг MineCraft
    <
  3. Pelmeshik

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

    Баллы:
    78
    Попробуй так
    package Events;

    import org.bukkit.Bukkit;
    import org.bukkit.Location;
    import org.bukkit.Material;
    import org.bukkit.configuration.file.FileConfiguration;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.player.PlayerRespawnEvent;
    import tailctactserver.resinhell.ResInHell;
    import org.bukkit.World;
    import yml.MainConfig;
    import java.util.Random;


    public class TeleportManager {
    public ResInHell main;
    public MainConfig config;
    public TeleportManager(ResInHell main){
    this.main = main;
    this.config = main.getMainConfig();

    }

    public static Location findRandomLocation(World world_nether) {
    // целые значения координат
    Material material;
    int zMax = ResInHell.getInstance().getConfig().getInt("Cord.zMax");
    int zMin = ResInHell.getInstance().getConfig().getInt("Cord.zMin");
    int xMax = ResInHell.getInstance().getConfig().getInt("Cord.xMax");
    int xMin = ResInHell.getInstance().getConfig().getInt("Cord.xMin");
    int yMax = ResInHell.getInstance().getConfig().getInt("Cord.yMax");
    int yMin = ResInHell.getInstance().getConfig().getInt("Cord.yMin");
    int randomX, randomY, randomZ;
    FileConfiguration cfg = this.config.get();
    Random r = new Random();
    do {
    randomX = getRandom(xMin, xMax);
    randomZ = getRandom(zMin, zMax);
    randomY = getRandom(yMin, yMax);
    material = Bukkit.getWorld("world_nether").getBlockAt(randomX, randomY, randomZ).getType();
    } while (this.config.get().contains("avoid-blocks") && this.config.getAvoidBlocks().contains(material));
    return new Location(world_nether, randomX + 0.5D, randomY - 1.0D, randomZ + 0.5D);
    }

    private int getRandom(int min, int max) {
    return (int) (Math.random() * (max - min + 1) + min);
    }
    public static String randomTeleport(Player player) {
    Location spot = findRandomLocation(player.getWorld());
    player.teleport(spot);
    return spot.getBlockX() + " " + spot.getBlockY() + " " + spot.getBlockZ();
    }


    }
     
  4. Автор темы
    Brazikc

    Brazikc Ньюби

    Баллы:
    1
    Имя в Minecraft:
    Aisponch
     
  5. Автор темы
    Brazikc

    Brazikc Ньюби

    Баллы:
    1
    Имя в Minecraft:
    Aisponch
    Чёт не фуричит, стало только хуже. Он просто конфиг не распознаёт
     
  6. Pelmeshik

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

    Баллы:
    78
    Что то ты не так делаешь. Надо методы сделать статичными
     
  7. Автор темы
    Brazikc

    Brazikc Ньюби

    Баллы:
    1
    Имя в Minecraft:
    Aisponch
    Спасибо за помощь, ща попробую
     

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