2016-08-11 72 views
-2

我是超新的Java,我需要知道如何從另一個類中獲得一個字符串。如何從另一個類獲得一個字符串

需要的字符串中的類:

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; 
    } 

} 

可有一個人幫我這個:

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); 
    } 
} 

具有字符串中的類?對於bukkit編碼

更多信息:

我使用的插口1.10.2

所有我想要的是循環使用蝕刻命令之間配置蜱代碼

我需要的循環代碼無限次運行

我需要此代碼由另一個類中的命令執行並使用該類中的字符串。

+1

我看不到任何字符串。還有'//我需要這裏的字符串''當你有'Player player'時沒有任何意義# – SomeJavaGuy

+6

你對編碼超級新手,所以你的第一次嘗試就是爲minecraft編寫代碼? –

+1

兔子傢伙告訴你什麼:也許你首先要花幾個星期的時間學習Java的絕對基礎知識,然後纔去嘗試**高級**主題?考慮在嘗試進行跨欄賽前學習爬行。 – GhostCat

回答

0

超越您的字符串和球員的混亂......

我認爲你正在處理的訪問修飾符在Java中四個訪問修飾符

  1. 默認
  2. 私人
  3. 公共及
  4. 受保護

默認方法或屬性只能從包中的類訪問。私人只能在一個班級內訪問。受保護的可以從一個類中繼承並繼承。

正如我在你的代碼中看到的類RainbowTask放在包future.blue.fun.tasks;並且您正嘗試訪問來自包future.blue.fun.commands中的SetGlow類的名爲player的局部變量;

所以你必須讓一個屬性玩家變成一個類變量而不是本地變量。 ,你必須導入包future.blue.fun.commands.SetGlow;在RainbowTask或者你必須讓他們在一個封裝

讓SEEE什麼我做

//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(); 
 

 
\t public void gerPlayer(){ 
 
\t \t player=sg.player; 
 
\t } 
 
\t 
 
    @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; 
 
    } 
 

 
}

注意: - 你必須確保按需方法被稱爲我們分配前值,否則它顯示你空指針異常。