如何从另一个类中获取一个字符串

时间:2016-08-11 13:48:58

标签: java minecraft

我是java的新手,我需要知道如何从另一个类中获取字符串。

需要字符串的类:

package future.blue.fun.tasks;

import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitRunnable;
import org.inventivetalent.glow.GlowAPI;

public class RainbowTask extends BukkitRunnable {

Player player = //I NEED THE STRING HERE;

    @Override
    public void run() {
        GlowAPI.setGlowing(player, GlowAPI.Color.BLUE, player);
        GlowAPI.setGlowing(player, GlowAPI.Color.RED, player);
        GlowAPI.setGlowing(player, GlowAPI.Color.GREEN, player);
        GlowAPI.setGlowing(player, GlowAPI.Color.YELLOW, player);
    }
}

具有字符串的类:

package future.blue.fun.commands;


import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitScheduler;
import org.inventivetalent.glow.GlowAPI;

import future.blue.fun.main;




public class SetGlow implements CommandExecutor {





    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] arg) {
        //THE STRING I NEED
        Player player = Bukkit.getPlayer(arg[1]);.....

        return false;
    }

}

有人可以帮我这个吗?

bukkit coders的更多信息:

我正在使用插头1.10.2

我想要的只是在etch命令

之间循环一个带有可配置滴答的代码

我需要循环代码无限次运行

我需要这个代码由另一个类中的命令执行,并使用该类中的字符串。

1 个答案:

答案 0 :(得分:0)

超越你的弦乐和玩家混淆......

我认为你正在处理访问修饰符,java中有四个访问修饰符

  1. 默认
  2. 私人
  3. 公开和
  4. 受保护的
  5. 只能从包中的类访问默认方法或属性。私人只能在课堂上访问。可以从类中继承受保护的内容。

    正如我在你的代码中看到的,RainbowTask类放在包future.blue.fun.tasks;并且您正在尝试从SetGlow类中访问名为player的局部变量,该变量位于包future.blue.fun.commands中;

    因此,您必须使属性播放器成为类变量而不是本地变量。 你必须导入包future.blue.fun.commands.SetGlow;在RainbowTask或你必须在一个包中制作它们

    让我们看看我做了什么

    //RainbowTask
    
    
    package future.blue.fun.tasks;
    
    import org.bukkit.Bukkit;
    import org.bukkit.entity.Player;
    import org.bukkit.scheduler.BukkitRunnable;
    import org.inventivetalent.glow.GlowAPI;
    import future.blue.fun.commands.SetGlow;
    
    public class RainbowTask extends BukkitRunnable {
    
    Player player;
    SetGlow sg=new SetGlow();
    
    	public void gerPlayer(){
    		player=sg.player;
    	}
    	
        @Override
        public void run() {
            GlowAPI.setGlowing(player, GlowAPI.Color.BLUE, player);
            GlowAPI.setGlowing(player, GlowAPI.Color.RED, player);
            GlowAPI.setGlowing(player, GlowAPI.Color.GREEN, player);
            GlowAPI.setGlowing(player, GlowAPI.Color.YELLOW, player);
        }
    }
    
    
    
    
    
    
    //SetGlow
    
    package future.blue.fun.commands;
    
    
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandExecutor;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;
    import org.bukkit.scheduler.BukkitScheduler;
    import org.inventivetalent.glow.GlowAPI;
    
    import future.blue.fun.main;
    
    
    
    
    public class SetGlow implements CommandExecutor {
    
    
    public Player player;
    
    
        @Override
        public boolean onCommand(CommandSender sender, Command cmd, String label, String[] arg) {
            player = Bukkit.getPlayer(arg[1]);.....
            return false;
        }
    
    }

    注意: - 你必须确保在我们分配值之前调用onCommand方法,否则它会显示空指针异常。