我是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命令
之间循环一个带有可配置滴答的代码我需要循环代码无限次运行
我需要这个代码由另一个类中的命令执行,并使用该类中的字符串。
答案 0 :(得分:0)
超越你的弦乐和玩家混淆......
我认为你正在处理访问修饰符,java中有四个访问修饰符
只能从包中的类访问默认方法或属性。私人只能在课堂上访问。可以从类中继承受保护的内容。
正如我在你的代码中看到的,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方法,否则它会显示空指针异常。