Войти или зарегистрироваться

[НЕ РЕШЕНО] Локация не сохраняется командой.

Статус
Закрыто для дальнейших ответов.

Zlodey_duo

Активный участник
Пользователь
Баллы
66
Имя в Minecraft
_X_ZLODEY_X_
Всем привет, столкнулся с такой проблемой не понимаю в чём причина, никаких ошибок в консоль не выводятся но при этом локация не сохраняется.
Командой /ffa setspawn - устанавливаю точку на которую будут телепортироваться игроки при входе на арену.
Код:
            if(args[0].equals("setspawn")) {
               
                if(!p.hasPermission("classicffa.setspawn")) {
                    p.sendMessage(" ");
                    p.sendMessage(ChatUtils.format(prefix + "&cYou dont have permission!"));
                    p.sendMessage(" ");
                    return true;
                }else {
                   
                    Location spawnLocation = p.getLocation();
                    setSpawn(spawnLocation);
                   
                    p.sendMessage(" ");
                    p.sendMessage(ChatUtils.format(prefix + "&eSPAWN &7- &aset location complete!"));
                    p.sendMessage(" ");
                   
                }
               
                return true;
            }


Метод setSpawn(); в другом классе:
Код:
    private Location spawn;

    public void setSpawn(Location location) {
        this.spawn = location;
    }

Но почему то не сохраняется локация в 'spawn'
 
Как ты понял, что "не сохраняется"? Уверен, что при установке и получении локации используется один и тот же объект?
 
Куда должно сохраняться? В кэш, конфиг, бд?
 
Как ты понял, что "не сохраняется"? Уверен, что при установке и получении локации используется один и тот же объект?

При выполнении другой команды: /ffa join

Код:
    public void onJoin(UUID id) {
        fileManager = new FileManager();
        kit = new Kit();
        String prefix = ChatUtils.format("&fClassic&bFFA &8> ");
     
        Player p = Bukkit.getServer().getPlayer(id);
        FileConfiguration data = fileManager.getData();
     
        if(this.spawn == null) {
            p.sendMessage(" ");
            p.sendMessage(ChatUtils.format(prefix + "&cТочка спавна не установлена!"));
            p.sendMessage(" ");
            return;
        }
     
        if(this.playersList.contains(id)) {
            p.sendMessage(" ");
            p.sendMessage(ChatUtils.format(prefix + "&cВы уже на арене!"));
            p.sendMessage(" ");
            return;
        }
     
        if(!data.contains(id.toString())) {
            user.createNewProfile(id);
        }
     
        saveInventory(id);
        saveBackLocation(id);
        saveGamemode(id);
     
        clearInventory(id);
        kit.warrior(id);
     
        teleport(id, this.spawn);
     
        p.sendMessage(" ");
        p.sendMessage(ChatUtils.format(prefix + "&aВы успешно вошли на арену!"));
        p.sendMessage(" ");
        return;
    }


Именно эта строка закрывает доступ далее:
Код:
        if(this.spawn == null) {
            p.sendMessage(" ");
            p.sendMessage(ChatUtils.format(prefix + "&cТочка спавна не установлена!"));
            p.sendMessage(" ");
            return;
        }



По поводу уверености, ДА уверен т.к. сохраняемая локация одна под названием 'spawn'
 
Куда должно сохраняться? В кэш, конфиг, бд?
Пока просто находится в коде, далее буду сохранять в конфиг, не уверен что из за этого проблема что сразу не сохраняю в конфиг, он в любом случае должен сохранятся в массив если я правильный термин подобрал.
Проше говоря в:
Код:
private Location spawn;
 
Метод setSpawn(); в другом классе:
Ты упомянул, что установка точки спауна и сам метод setSpawn() находятся в разных классах. Но при этом будто бы вызываешь метод текущего класса.

Всё ещё неясно, как у тебя всё организовано, поэтому приведи полный код всех классов:
1) В котором происходит установка точки спауна
2) В котором находится метод setSpawn()
3) В котором происходит чтение поля с точкой спауна

А лучше всего выгрузить проект полностью в гит.

Уверен, что при установке и получении локации используется один и тот же объект?
ДА уверен т.к. сохраняемая локация одна под названием 'spawn'
Тут речь про java-объекты. А судя по тому, что ты пишешь, у тебя они всё-таки разные похоже
 
1) В котором происходит установка точки спауна
Код:
package me.classicffa.ru;

import java.util.UUID;

import org.bukkit.Location;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player;

import me.classicffa.ru.base.ArenaManager;
import me.classicffa.ru.utils.ChatUtils;

public class CommandFFA implements CommandExecutor {
 
    private ArenaManager arenaManager;
    private FileManager fileManager;
 
    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
        arenaManager = new ArenaManager();
        fileManager = new FileManager();
     
        FileConfiguration config = fileManager.getConfig();
        String prefix = ChatUtils.format(config.getString("Prefix"));
     
        if(!(sender instanceof Player)) {
         
            if(args.length == 0) {
             
                sender.sendMessage(" ");
                sender.sendMessage(ChatUtils.format(prefix + "&cusage: /ffa help"));
                sender.sendMessage(" ");
                return true;
            }
         
            if(args.length == 1) {
             
                if(args[0].equals("help")) {
                 
                    sender.sendMessage(" ");
                    sender.sendMessage(ChatUtils.format(" &7> > > &fClassic&bFFA &7< < < "));
                    sender.sendMessage(" ");
                    sender.sendMessage(ChatUtils.format("&f&lCOMMANDS:"));
                    sender.sendMessage(ChatUtils.format("&cComing soon..."));
                    sender.sendMessage(" ");
                 
                    return true;
                }
             
                sender.sendMessage(" ");
                sender.sendMessage(ChatUtils.format(prefix + "&cusage: /ffa help"));
                sender.sendMessage(" ");
                return true;
            }
         
            if(args.length >= 2) {
             
                sender.sendMessage(" ");
                sender.sendMessage(ChatUtils.format(prefix + "&cusage: /ffa help"));
                sender.sendMessage(" ");
             
            }
         
            return true;
        }
     
        Player p = (Player) sender;
     
        if(args.length == 0) {
         
            p.sendMessage(" ");
            p.sendMessage(ChatUtils.format(prefix + "&cusage: /ffa help"));
            p.sendMessage(" ");
            return true;
        }
     
        if(args.length == 1) {
         
            if(args[0].equals("help")) {
             
                if(!p.hasPermission("classicffa.help")) {
                    p.sendMessage(" ");
                    p.sendMessage(ChatUtils.format(prefix + "&cYou dont have permission!"));
                    p.sendMessage(" ");
                    return true;
                }else {
                 
                    p.sendMessage(" ");
                    p.sendMessage(ChatUtils.format(" &7> > > &fClassic&bFFA &7< < < "));
                    p.sendMessage(" ");
                    p.sendMessage(ChatUtils.format("&f&lCOMMANDS:"));
                    p.sendMessage(ChatUtils.format("&cComing soon..."));
                    p.sendMessage(" ");
                 
                }
             
                return true;
            }
         
            if(args[0].equals("setspawn")) {
             
                if(!p.hasPermission("classicffa.setspawn")) {
                    p.sendMessage(" ");
                    p.sendMessage(ChatUtils.format(prefix + "&cYou dont have permission!"));
                    p.sendMessage(" ");
                    return true;
                }else {
                 
                    Location spawnLocation = p.getLocation();
                    setSpawn(spawnLocation);
                 
                    p.sendMessage(" ");
                    p.sendMessage(ChatUtils.format(prefix + "&eSPAWN &7- &aset location complete!"));
                    p.sendMessage(" ");
                 
                }
             
                return true;
            }
         
            UUID id = p.getUniqueId();
         
            if(args[0].equals("join")) {
             
                if(!p.hasPermission("classicffa.join")) {
                    p.sendMessage(" ");
                    p.sendMessage(ChatUtils.format(prefix + "&cYou dont have permission!"));
                    p.sendMessage(" ");
                    return true;
                }else {
                 
                    joinArena(id);
                 
                }
             
                return true;
            }
         
            if(args[0].equals("leave") || args[0].equals("quit")) {
             
                if(!p.hasPermission("classicffa.leave")) {
                    p.sendMessage(" ");
                    p.sendMessage(ChatUtils.format(prefix + "&cYou dont have permission!"));
                    p.sendMessage(" ");
                    return true;
                }else {
                 
                    leaveArena(id);
                 
                }
             
                return true;
            }
         
            p.sendMessage(" ");
            p.sendMessage(ChatUtils.format(prefix + "&cusage: /ffa help"));
            p.sendMessage(" ");
            return true;
        }
     
        if(args.length >= 2) {
         
            p.sendMessage(" ");
            p.sendMessage(ChatUtils.format(prefix + "&cusage: /ffa help"));
            p.sendMessage(" ");
         
        }
     
        return true;
    }
 
 
    //
 
 
    private void setSpawn(Location location) {
        arenaManager.setSpawn(location);
    }
 
    private void joinArena(UUID id) {
        arenaManager.onJoin(id);
    }
 
    private void leaveArena(UUID id) {
        arenaManager.onLeave(id);
    }

}


2) В котором находится метод setSpawn()
3) В котором происходит чтение поля с точкой спауна
Код:
package me.classicffa.ru.base;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.UUID;
import org.bukkit.Bukkit;
import org.bukkit.GameMode;
import org.bukkit.Location;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player;
import org.*********ventory.ItemStack;
import me.classicffa.ru.FileManager;
import me.classicffa.ru.utils.ChatUtils;
import me.classicffa.ru.utils.User;

public class ArenaManager {
 
    private Location spawn;
    private ArrayList<UUID> playersList = new ArrayList<>();
 
    //
 
    private HashMap<UUID, ItemStack[]> inventorySaved = new HashMap<>();
    private HashMap<UUID, GameMode> gamemodeSaved = new HashMap<>();
    private HashMap<UUID, Location> backLocationSaved = new HashMap<>();
    private HashMap<UUID, Boolean> flySaved = new HashMap<>();
 
    //
 
    private FileManager fileManager;
    private User user;
    private Kit kit;
 
    //
 
    public void onJoin(UUID id) {
        fileManager = new FileManager();
        kit = new Kit();
        String prefix = ChatUtils.format("&fClassic&bFFA &8> ");
     
        Player p = Bukkit.getServer().getPlayer(id);
        FileConfiguration data = fileManager.getData();
     
        if(this.spawn == null) {
            p.sendMessage(" ");
            p.sendMessage(ChatUtils.format(prefix + "&cТочка спавна не установлена!"));
            p.sendMessage(" ");
            return;
        }
     
        if(this.playersList.contains(id)) {
            p.sendMessage(" ");
            p.sendMessage(ChatUtils.format(prefix + "&cВы уже на арене!"));
            p.sendMessage(" ");
            return;
        }
     
        if(!data.contains(id.toString())) {
            user.createNewProfile(id);
        }
     
        saveInventory(id);
        saveBackLocation(id);
        saveGamemode(id);
        saveFly(id);
        setFly(id, false);
     
        clearInventory(id);
        kit.warrior(id);
     
        teleport(id, this.spawn);
     
        p.sendMessage(" ");
        p.sendMessage(ChatUtils.format(prefix + "&aВы успешно вошли на арену!"));
        p.sendMessage(" ");
        return;
    }
 
    public void onLeave(UUID id) {
        String prefix = ChatUtils.format("&fClassic&bFFA &8> ");
     
        Player p = Bukkit.getServer().getPlayer(id);
     
        if(!this.playersList.contains(id)) {
            p.sendMessage(" ");
            p.sendMessage(ChatUtils.format(prefix + "&cВы не на арене!"));
            p.sendMessage(" ");
            return;
        }
     
        clearInventory(id);
        giveInventory(id);
        setGamemode(id, getSavedGamemode(id));
        setFly(id, getFly(id));
     
        teleport(id, getBackLocation(id));
        clearHashMap(id);
     
        p.sendMessage(" ");
        p.sendMessage(ChatUtils.format(prefix + "&cВы успешно вышли из арены!"));
        p.sendMessage(" ");
        return;
    }
 
    private void clearHashMap(UUID id) {
        this.backLocationSaved.remove(id);
        this.flySaved.remove(id);
        this.gamemodeSaved.remove(id);
        this.inventorySaved.remove(id);
    }
 
 
    //
 
 
    public void setSpawn(Location location) {
        this.spawn = location;
    }
 
    public Location getSpawn() {
        return this.spawn;
    }
 
    public void addPlayersList(UUID id) {
        this.playersList.add(id);
    }
 
    public void removePlayersList(UUID id) {
        this.playersList.remove(id);
    }
 
    public ArrayList<UUID> getPlayersList() {
        return this.playersList;
    }
 
 
    //
 
 
    private boolean getFly(UUID id) {
        return this.flySaved.get(id);
    }
 
    private void saveFly(UUID id) {
        flySaved.put(id, Bukkit.getServer().getPlayer(id).getAllowFlight());
    }
 
    private void setFly(UUID id, boolean bool) {
        Bukkit.getServer().getPlayer(id).setAllowFlight(bool);
    }
 
    private void setGamemode(UUID id, GameMode gamemode) {
        Bukkit.getServer().getPlayer(id).setGameMode(gamemode);
    }
 
    private void saveGamemode(UUID id) {
        this.gamemodeSaved.put(id, Bukkit.getPlayer(id).getGameMode());
    }
 
    private GameMode getSavedGamemode(UUID id) {
        return this.gamemodeSaved.get(id);
    }
 
    private void saveInventory(UUID id) {
        this.inventorySaved.put(id, Bukkit.getServer().getPlayer(id).getInventory().getContents());
    }
 
    private void giveInventory(UUID id) {
        Bukkit.getServer().getPlayer(id).getInventory().setContents(this.inventorySaved.get(id));
    }
 
    public void saveBackLocation(UUID id) {
        this.backLocationSaved.put(id, Bukkit.getServer().getPlayer(id).getLocation());
    }
 
    public Location getBackLocation(UUID id) {
        return this.backLocationSaved.get(id);
    }
 
    private void clearInventory(UUID id) {
        Bukkit.getServer().getPlayer(id).getInventory().clear();
    }
 
    private void teleport(UUID id, Location location) {
        Bukkit.getServer().getPlayer(id).teleport(location);
    }

}

(!!!) с GitHub-ом ещё не знакомился :|
 
Код:
package me.classicffa.ru;

import java.util.UUID;

import org.bukkit.Location;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player;

import me.classicffa.ru.base.ArenaManager;
import me.classicffa.ru.utils.ChatUtils;

public class CommandFFA implements CommandExecutor {
 
    private ArenaManager arenaManager;
    private FileManager fileManager;
 
    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
        arenaManager = new ArenaManager();
        fileManager = new FileManager();
   
        FileConfiguration config = fileManager.getConfig();
        String prefix = ChatUtils.format(config.getString("Prefix"));
   
        if(!(sender instanceof Player)) {
       
            if(args.length == 0) {
           
                sender.sendMessage(" ");
                sender.sendMessage(ChatUtils.format(prefix + "&cusage: /ffa help"));
                sender.sendMessage(" ");
                return true;
            }
       
            if(args.length == 1) {
           
                if(args[0].equals("help")) {
               
                    sender.sendMessage(" ");
                    sender.sendMessage(ChatUtils.format(" &7> > > &fClassic&bFFA &7< < < "));
                    sender.sendMessage(" ");
                    sender.sendMessage(ChatUtils.format("&f&lCOMMANDS:"));
                    sender.sendMessage(ChatUtils.format("&cComing soon..."));
                    sender.sendMessage(" ");
               
                    return true;
                }
           
                sender.sendMessage(" ");
                sender.sendMessage(ChatUtils.format(prefix + "&cusage: /ffa help"));
                sender.sendMessage(" ");
                return true;
            }
       
            if(args.length >= 2) {
           
                sender.sendMessage(" ");
                sender.sendMessage(ChatUtils.format(prefix + "&cusage: /ffa help"));
                sender.sendMessage(" ");
           
            }
       
            return true;
        }
   
        Player p = (Player) sender;
   
        if(args.length == 0) {
       
            p.sendMessage(" ");
            p.sendMessage(ChatUtils.format(prefix + "&cusage: /ffa help"));
            p.sendMessage(" ");
            return true;
        }
   
        if(args.length == 1) {
       
            if(args[0].equals("help")) {
           
                if(!p.hasPermission("classicffa.help")) {
                    p.sendMessage(" ");
                    p.sendMessage(ChatUtils.format(prefix + "&cYou dont have permission!"));
                    p.sendMessage(" ");
                    return true;
                }else {
               
                    p.sendMessage(" ");
                    p.sendMessage(ChatUtils.format(" &7> > > &fClassic&bFFA &7< < < "));
                    p.sendMessage(" ");
                    p.sendMessage(ChatUtils.format("&f&lCOMMANDS:"));
                    p.sendMessage(ChatUtils.format("&cComing soon..."));
                    p.sendMessage(" ");
               
                }
           
                return true;
            }
       
            if(args[0].equals("setspawn")) {
           
                if(!p.hasPermission("classicffa.setspawn")) {
                    p.sendMessage(" ");
                    p.sendMessage(ChatUtils.format(prefix + "&cYou dont have permission!"));
                    p.sendMessage(" ");
                    return true;
                }else {
               
                    Location spawnLocation = p.getLocation();
                    setSpawn(spawnLocation);
               
                    p.sendMessage(" ");
                    p.sendMessage(ChatUtils.format(prefix + "&eSPAWN &7- &aset location complete!"));
                    p.sendMessage(" ");
               
                }
           
                return true;
            }
       
            UUID id = p.getUniqueId();
       
            if(args[0].equals("join")) {
           
                if(!p.hasPermission("classicffa.join")) {
                    p.sendMessage(" ");
                    p.sendMessage(ChatUtils.format(prefix + "&cYou dont have permission!"));
                    p.sendMessage(" ");
                    return true;
                }else {
               
                    joinArena(id);
               
                }
           
                return true;
            }
       
            if(args[0].equals("leave") || args[0].equals("quit")) {
           
                if(!p.hasPermission("classicffa.leave")) {
                    p.sendMessage(" ");
                    p.sendMessage(ChatUtils.format(prefix + "&cYou dont have permission!"));
                    p.sendMessage(" ");
                    return true;
                }else {
               
                    leaveArena(id);
               
                }
           
                return true;
            }
       
            p.sendMessage(" ");
            p.sendMessage(ChatUtils.format(prefix + "&cusage: /ffa help"));
            p.sendMessage(" ");
            return true;
        }
   
        if(args.length >= 2) {
       
            p.sendMessage(" ");
            p.sendMessage(ChatUtils.format(prefix + "&cusage: /ffa help"));
            p.sendMessage(" ");
       
        }
   
        return true;
    }
 
 
    //
 
 
    private void setSpawn(Location location) {
        arenaManager.setSpawn(location);
    }
 
    private void joinArena(UUID id) {
        arenaManager.onJoin(id);
    }
 
    private void leaveArena(UUID id) {
        arenaManager.onLeave(id);
    }

}



Код:
package me.classicffa.ru.base;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.UUID;
import org.bukkit.Bukkit;
import org.bukkit.GameMode;
import org.bukkit.Location;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player;
import org.*********ventory.ItemStack;
import me.classicffa.ru.FileManager;
import me.classicffa.ru.utils.ChatUtils;
import me.classicffa.ru.utils.User;

public class ArenaManager {
 
    private Location spawn;
    private ArrayList<UUID> playersList = new ArrayList<>();
 
    //
 
    private HashMap<UUID, ItemStack[]> inventorySaved = new HashMap<>();
    private HashMap<UUID, GameMode> gamemodeSaved = new HashMap<>();
    private HashMap<UUID, Location> backLocationSaved = new HashMap<>();
    private HashMap<UUID, Boolean> flySaved = new HashMap<>();
 
    //
 
    private FileManager fileManager;
    private User user;
    private Kit kit;
 
    //
 
    public void onJoin(UUID id) {
        fileManager = new FileManager();
        kit = new Kit();
        String prefix = ChatUtils.format("&fClassic&bFFA &8> ");
   
        Player p = Bukkit.getServer().getPlayer(id);
        FileConfiguration data = fileManager.getData();
   
        if(this.spawn == null) {
            p.sendMessage(" ");
            p.sendMessage(ChatUtils.format(prefix + "&cТочка спавна не установлена!"));
            p.sendMessage(" ");
            return;
        }
   
        if(this.playersList.contains(id)) {
            p.sendMessage(" ");
            p.sendMessage(ChatUtils.format(prefix + "&cВы уже на арене!"));
            p.sendMessage(" ");
            return;
        }
   
        if(!data.contains(id.toString())) {
            user.createNewProfile(id);
        }
   
        saveInventory(id);
        saveBackLocation(id);
        saveGamemode(id);
        saveFly(id);
        setFly(id, false);
   
        clearInventory(id);
        kit.warrior(id);
   
        teleport(id, this.spawn);
   
        p.sendMessage(" ");
        p.sendMessage(ChatUtils.format(prefix + "&aВы успешно вошли на арену!"));
        p.sendMessage(" ");
        return;
    }
 
    public void onLeave(UUID id) {
        String prefix = ChatUtils.format("&fClassic&bFFA &8> ");
   
        Player p = Bukkit.getServer().getPlayer(id);
   
        if(!this.playersList.contains(id)) {
            p.sendMessage(" ");
            p.sendMessage(ChatUtils.format(prefix + "&cВы не на арене!"));
            p.sendMessage(" ");
            return;
        }
   
        clearInventory(id);
        giveInventory(id);
        setGamemode(id, getSavedGamemode(id));
        setFly(id, getFly(id));
   
        teleport(id, getBackLocation(id));
        clearHashMap(id);
   
        p.sendMessage(" ");
        p.sendMessage(ChatUtils.format(prefix + "&cВы успешно вышли из арены!"));
        p.sendMessage(" ");
        return;
    }
 
    private void clearHashMap(UUID id) {
        this.backLocationSaved.remove(id);
        this.flySaved.remove(id);
        this.gamemodeSaved.remove(id);
        this.inventorySaved.remove(id);
    }
 
 
    //
 
 
    public void setSpawn(Location location) {
        this.spawn = location;
    }
 
    public Location getSpawn() {
        return this.spawn;
    }
 
    public void addPlayersList(UUID id) {
        this.playersList.add(id);
    }
 
    public void removePlayersList(UUID id) {
        this.playersList.remove(id);
    }
 
    public ArrayList<UUID> getPlayersList() {
        return this.playersList;
    }
 
 
    //
 
 
    private boolean getFly(UUID id) {
        return this.flySaved.get(id);
    }
 
    private void saveFly(UUID id) {
        flySaved.put(id, Bukkit.getServer().getPlayer(id).getAllowFlight());
    }
 
    private void setFly(UUID id, boolean bool) {
        Bukkit.getServer().getPlayer(id).setAllowFlight(bool);
    }
 
    private void setGamemode(UUID id, GameMode gamemode) {
        Bukkit.getServer().getPlayer(id).setGameMode(gamemode);
    }
 
    private void saveGamemode(UUID id) {
        this.gamemodeSaved.put(id, Bukkit.getPlayer(id).getGameMode());
    }
 
    private GameMode getSavedGamemode(UUID id) {
        return this.gamemodeSaved.get(id);
    }
 
    private void saveInventory(UUID id) {
        this.inventorySaved.put(id, Bukkit.getServer().getPlayer(id).getInventory().getContents());
    }
 
    private void giveInventory(UUID id) {
        Bukkit.getServer().getPlayer(id).getInventory().setContents(this.inventorySaved.get(id));
    }
 
    public void saveBackLocation(UUID id) {
        this.backLocationSaved.put(id, Bukkit.getServer().getPlayer(id).getLocation());
    }
 
    public Location getBackLocation(UUID id) {
        return this.backLocationSaved.get(id);
    }
 
    private void clearInventory(UUID id) {
        Bukkit.getServer().getPlayer(id).getInventory().clear();
    }
 
    private void teleport(UUID id, Location location) {
        Bukkit.getServer().getPlayer(id).teleport(location);
    }

}

(!!!) с GitHub-ом ещё не знакомился :|
Каждый раз при вводе команды ты создаёшь новый ArenaManager, поэтому каждый раз ты работаешь с разными объектами арены. В этом и проблема
 
Каждый раз при вводе команды ты создаёшь новый ArenaManager, поэтому каждый раз ты работаешь с разными объектами арены. В этом и проблема

А даже так, я просто таким способом пытался получать методы с других классов.
Потому что других методов особо не знаю кроме как сделать методы статичными, но слышал так делать плохо.
Не подскажешь случаем чем заменить?
 
получать методы с других классов
Вроде как-то так обычно делают:
В мейн классе при запуске создаётся экземпляр класса и геттер на него, а в классе, в котором нужно получить доступ делаешь конструктор со своим плагином, который мейн класс и потом через него получаешь класс и его методы.

В мейн классе:
private ТвойМанагер твойМанагер;
private КлассВКоторомуНуженДоступ классВКоторомНуженДоступ;
onEnable { твойМанагер = new ТвойМанагер(); классВКоторомНуженДоступ = new КлассВКоторомуНуженДоступ(this) }
getТвойМанагер { return твойМанагер; }

В классах, в которых должны получить доступ к другим таким классам:
private ТвойПлагин твойПлагин;
public ЭтотКласс(ТвойПлагин твойПлагин) { this.твойПлагин = твойПлагин; }
Теперь можно твойПлагин.getТвойМанагер()
 
Вроде как-то так обычно делают:
В мейн классе при запуске создаётся экземпляр класса и геттер на него, а в классе, в котором нужно получить доступ делаешь конструктор со своим плагином, который мейн класс и потом через него получаешь класс и его методы.

В мейн классе:
private ТвойМанагер твойМанагер;
private КлассВКоторомуНуженДоступ классВКоторомНуженДоступ;
onEnable { твойМанагер = new ТвойМанагер(); классВКоторомНуженДоступ = new КлассВКоторомуНуженДоступ(this) }
getТвойМанагер { return твойМанагер; }

В классах, в которых должны получить доступ к другим таким классам:
private ТвойПлагин твойПлагин;
public ЭтотКласс(ТвойПлагин твойПлагин) { this.твойПлагин = твойПлагин; }
Теперь можно твойПлагин.getТвойМанагер()


Вроде как бы понятно но не очень :D
Можно пример кодом если не сложно?
А то я что то пытаюсь но особо не получается, думаю что то делаю неправильно(
 
Можно пример кодом
Мне кажется, код из моего примера даже может работать хд

Я чуть больше, чем никак, как в прошлый раз, посмотрел код, а не одну фразу ответа Dymeth и...
arenaManager = new ArenaManager();
Проще всего мне сейчас будет сказать удалить эту строчку и
private ArenaManager arenaManager;
тут добавить = new AreaManager();
 
Мне кажется, код из моего примера даже может работать хд

Я чуть больше, чем никак, как в прошлый раз, посмотрел код, а не одну фразу ответа Dymeth и...

Проще всего мне сейчас будет сказать удалить эту строчку и

тут добавить = new AreaManager();


то есть...
Код:
private ArenaManager arenaManager = new ArenaManager();
Разве это будет работать?
 
Вот из твоего примера я не понял не многое так как нет такового примера кодом, ты там пишешь 'ТвойМанагер, классВКоторомНуженДоступ, ЭтотКласс' не особо понятно, извини я не наглею, просто я просил код примером например с названием плагина TEST.

Вопрос следующий, будет ли работать так?

Main class.
Код:
private ArenaManager arenaManager;

private static TEST istance;
public static TEST getIstance() { return istance; }

public void onEnable() {
istance = this;

arenaManager = new ArenaManager();

}

public ArenaManager getArenaManager() {
return arenaManager;
}


Класс которому нужно передать доступ к другому классу и его методам.
Код:
private TEST plugin = TEST.getIstance();

public void onMethod() {
ArenaManager arenaManager = plugin.getArenaManager();


}

Не тестил, не знаю вообще правильно ли написал и работает ли вообще.
Интересуюсь здесь.
 
то есть...
Код:
private ArenaManager arenaManager = new ArenaManager();
Разве это будет работать?
Должно.

Со статик инстансом тоже нормальный вариант, тогда не нужно передавать плагин в конструкторе, как я предлагал.
Класс которому нужно передать
Должно работать.
 
Должно.

Со статик инстансом тоже нормальный вариант, тогда не нужно передавать плагин в конструкторе, как я предлагал.

Должно работать.


Не работает выводит ошибку, смысла скидывать не вижу буду решать проблему своими силами, всем спасибо кто ответил и пытался помочь

ТЕМА ЗАКРЫТА!
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх