Ljava.lang.String Error

Discussion in 'Plugin Development' started by BazzBerry, Jan 10, 2014.

Thread Status:
Not open for further replies.
  1. Offline

    BazzBerry

    Hi there. I'm trying to make a kit system for my Capture the Flag plugin.
    All was going well - and then I ran into this problem and I can't sort it out.

    [​IMG]

    There aren't any errors in the console.

    Code:java
    1. if(args.length == 1) {
    2. String check = args[1];
    3. if(dbm.checkKit(p, check) == 0) {
    4. p.sendMessage(prefix + ChatColor.DARK_RED + "Invalid kit!");
    5. }
    6. else {
    7. dbm.setKit(p, args);
    8. p.sendMessage(prefix + ChatColor.DARK_RED + "You have switched to the " + args + " kit.");
    9. if(mip && blue.contains(p.getName()) || red.contains(p.getName())) {
    10. p.sendMessage(prefix + ChatColor.DARK_RED + "Changing kit on next death.");
    11. }
    12. }
    13. }


    Code:java
    1. public int checkKit(Player p, String kit) {
    2. int result = 0;
    3. if(!plg.db.isOpen()) plg.db.open();
    4. try {
    5. PreparedStatement s = plg.db.prepare("SELECT " + kit + " FROM kits WHERE playername='" + p.getName() + "'");
    6. ResultSet resultset = s.executeQuery();
    7. resultset.next();
    8. result = resultset.getInt(kit);
    9. } catch (SQLException e) {
    10. e.printStackTrace();
    11. }
    12. return result;
    13. }


    Any help would be greatly appreciated - this is giving me a headache.

    Bump :( Anyone have any ideas?

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 6, 2016
  2. Offline

    xBlackLightx

    Would you mind putting in the entire class so that I can the context?
    BazzBerry
     
  3. Offline

    BazzBerry

    Which one? The one with checkKit in it?


    databasemethods (line 46)
    Code:java
    1. package Database;
    2.  
    3. import java.sql.PreparedStatement;
    4. import java.sql.ResultSet;
    5. import java.sql.SQLException;
    6.  
    7. import net.ixios.mc.CaptureTheFlag;
    8.  
    9. import org.bukkit.Bukkit;
    10. import org.bukkit.entity.Player;
    11.  
    12. public class DatabaseMethods {
    13. CaptureTheFlag plg;
    14.  
    15. public DatabaseMethods(CaptureTheFlag plg) {
    16. this.plg = plg;
    17. }
    18. @SuppressWarnings("deprecation")
    19. public void addKill(final Player p){
    20. Bukkit.getScheduler().scheduleAsyncDelayedTask(plg, new Runnable(){
    21. @Override
    22. public void run(){
    23. if(plg.db.isOpen()){
    24. try {
    25. PreparedStatement s = plg.db.prepare("UPDATE stats SET kills=kills+1 WHERE playername='" + p.getName() + "'");
    26. s.executeUpdate();
    27.  
    28. } catch (SQLException e) {
    29. // TODO Auto-generated catch block
    30. e.printStackTrace();
    31. }
    32. }else{
    33. plg.db.open();
    34. try {
    35. PreparedStatement s = plg.db.prepare("UPDATE stats SET kills=kills+1 WHERE playername='" + p.getName() + "'");
    36. s.executeUpdate();
    37.  
    38. } catch (SQLException e) {
    39. // TODO Auto-generated catch block
    40. e.printStackTrace();
    41. }
    42. }
    43. }
    44. },1L);
    45. }
    46. public int checkKit(Player p, int check) {
    47. int result = 0;
    48. if(!plg.db.isOpen()) plg.db.open();
    49. try {
    50. PreparedStatement s = plg.db.prepare("SELECT " + check + " FROM kits WHERE playername='" + p.getName() + "'");
    51. ResultSet resultset = s.executeQuery();
    52. resultset.next();
    53. result = resultset.getInt(check);
    54. } catch (SQLException e) {
    55. e.printStackTrace();
    56. }
    57. return result;
    58. }
    59. public void setKit(final Player p, String[] args){
    60. if(!plg.db.isOpen()) plg.db.open();
    61. try {
    62. PreparedStatement s = plg.db.prepare("UPDATE selectedkits SET selected='" + args + "' WHERE playername='" + p.getName() + "'");
    63. s.executeUpdate();
    64. } catch (SQLException e) {
    65. e.printStackTrace();
    66. }
    67. }
    68. @SuppressWarnings("deprecation")
    69. public void addDeath(final Player p){
    70. Bukkit.getScheduler().scheduleAsyncDelayedTask(plg, new Runnable(){
    71. @Override
    72. public void run(){
    73. if(plg.db.isOpen()){
    74. try {
    75. PreparedStatement s = plg.db.prepare("UPDATE stats SET deaths=deaths+1 WHERE playername='" + p.getName() + "'");
    76. s.executeUpdate();
    77.  
    78. } catch (SQLException e) {
    79. // TODO Auto-generated catch block
    80. e.printStackTrace();
    81. }
    82. }else{
    83. plg.db.open();
    84. try {
    85. PreparedStatement s = plg.db.prepare("UPDATE stats SET deaths=deaths+1 WHERE playername='" + p.getName() + "'");
    86. s.executeUpdate();
    87.  
    88. } catch (SQLException e) {
    89. // TODO Auto-generated catch block
    90. e.printStackTrace();
    91. }
    92. }
    93. }
    94. },1L);
    95. }
    96. @SuppressWarnings("deprecation")
    97. public void addCapture(final Player p){
    98. Bukkit.getScheduler().scheduleAsyncDelayedTask(plg, new Runnable(){
    99. @Override
    100. public void run(){
    101. if(plg.db.isOpen()){
    102. try {
    103. PreparedStatement s = plg.db.prepare("UPDATE stats SET captures=captures+1 WHERE playername='" + p.getName() + "'");
    104. s.executeUpdate();
    105.  
    106. } catch (SQLException e) {
    107. // TODO Auto-generated catch block
    108. e.printStackTrace();
    109. }
    110. }else{
    111. plg.db.open();
    112. try {
    113. PreparedStatement s = plg.db.prepare("UPDATE stats SET captures=captures+1 WHERE playername='" + p.getName() + "'");
    114. s.executeUpdate();
    115.  
    116. } catch (SQLException e) {
    117. // TODO Auto-generated catch block
    118. e.printStackTrace();
    119. }
    120. }
    121. }
    122. },1L);
    123. }
    124. @SuppressWarnings("deprecation")
    125. public void addWin(final Player p){
    126. Bukkit.getScheduler().scheduleAsyncDelayedTask(plg, new Runnable(){
    127. @Override
    128. public void run(){
    129. if(plg.db.isOpen()){
    130. try {
    131. PreparedStatement s = plg.db.prepare("UPDATE stats SET wins=wins+1 WHERE playername='" + p.getName() + "'");
    132. s.executeUpdate();
    133.  
    134. } catch (SQLException e) {
    135. // TODO Auto-generated catch block
    136. e.printStackTrace();
    137. }
    138. }else{
    139. plg.db.open();
    140. try {
    141. PreparedStatement s = plg.db.prepare("UPDATE stats SET wins=wins+1 WHERE playername='" + p.getName() + "'");
    142. s.executeUpdate();
    143.  
    144. } catch (SQLException e) {
    145. // TODO Auto-generated catch block
    146. e.printStackTrace();
    147. }
    148. }
    149. }
    150. },1L);
    151. }
    152. @SuppressWarnings("deprecation")
    153. public void addLoss(final Player p){
    154. Bukkit.getScheduler().scheduleAsyncDelayedTask(plg, new Runnable(){
    155. @Override
    156. public void run(){
    157. if(plg.db.isOpen()){
    158. try {
    159. PreparedStatement s = plg.db.prepare("UPDATE stats SET losses=losses+1 WHERE playername='" + p.getName() + "'");
    160. s.executeUpdate();
    161.  
    162. } catch (SQLException e) {
    163. // TODO Auto-generated catch block
    164. e.printStackTrace();
    165. }
    166. }else{
    167. plg.db.open();
    168. try {
    169. PreparedStatement s = plg.db.prepare("UPDATE stats SET losses=losses+1 WHERE playername='" + p.getName() + "'");
    170. s.executeUpdate();
    171.  
    172. } catch (SQLException e) {
    173. // TODO Auto-generated catch block
    174. e.printStackTrace();
    175. }
    176. }
    177. }
    178. },1L);
    179. }
    180. @SuppressWarnings("deprecation")
    181. public void addPoints(final Player p, final int a){
    182. Bukkit.getScheduler().scheduleAsyncDelayedTask(plg, new Runnable(){
    183. @Override
    184. public void run(){
    185. if(plg.db.isOpen()){
    186. try {
    187. PreparedStatement s = plg.db.prepare("UPDATE stats SET points=points+" + a + " WHERE playername='" + p.getName() + "'");
    188. s.executeUpdate();
    189.  
    190. } catch (SQLException e) {
    191. // TODO Auto-generated catch block
    192. e.printStackTrace();
    193. }
    194. }else{
    195. plg.db.open();
    196. try {
    197. PreparedStatement s = plg.db.prepare("UPDATE stats SET points=points+" + a + " WHERE playername='" + p.getName() + "'");
    198. s.executeUpdate();
    199.  
    200. } catch (SQLException e) {
    201. // TODO Auto-generated catch block
    202. e.printStackTrace();
    203. }
    204. }
    205. }
    206. },1L);
    207. }
    208. @SuppressWarnings("deprecation")
    209. public void removePoints(final Player p, final int a){
    210. Bukkit.getScheduler().scheduleAsyncDelayedTask(plg, new Runnable(){
    211. @Override
    212. public void run(){
    213. if(plg.db.isOpen()){
    214. try {
    215. PreparedStatement s = plg.db.prepare("UPDATE stats SET points=points-" + a + " WHERE playername='" + p.getName() + "'");
    216. s.executeUpdate();
    217. PreparedStatement f = plg.db.prepare("UPDATE stats SET points = '0' WHERE points < '0'");
    218. f.executeUpdate();
    219. } catch (SQLException e) {
    220. // TODO Auto-generated catch block
    221. e.printStackTrace();
    222. }
    223. }else{
    224. plg.db.open();
    225. try {
    226. PreparedStatement s = plg.db.prepare("UPDATE stats SET points=points+" + a + " WHERE playername='" + p.getName() + "'");
    227. s.executeUpdate();
    228.  
    229. } catch (SQLException e) {
    230. // TODO Auto-generated catch block
    231. e.printStackTrace();
    232. }
    233. }
    234. }
    235. },1L);
    236. }
    237. }
    238.  


    Main class (line 206):
    Code:java
    1. package net.ixios.mc;
    2.  
    3. import java.sql.SQLException;
    4. import java.util.ArrayList;
    5. import java.util.logging.Logger;
    6.  
    7. import lib.PatPeter.SQLibrary.Database;
    8. import lib.PatPeter.SQLibrary.MySQL;
    9.  
    10. import org.apache.commons.lang.StringUtils;
    11. import org.bukkit.Bukkit;
    12. import org.bukkit.ChatColor;
    13. import org.bukkit.command.Command;
    14. import org.bukkit.command.CommandSender;
    15. import org.bukkit.entity.Player;
    16. import org.bukkit.event.EventHandler;
    17. import org.bukkit.event.Listener;
    18. import org.bukkit.event.player.PlayerInteractEvent;
    19. import org.bukkit.event.server.ServerListPingEvent;
    20. import org.bukkit.plugin.java.JavaPlugin;
    21.  
    22. import Database.DatabaseMethods;
    23. import Util.SpawnConfigYML;
    24. import Util.SpawnUtil;
    25.  
    26. public class CaptureTheFlag extends JavaPlugin implements Listener{
    27. public int remain = 6000;
    28. public int starting = 60;
    29. public int holdingTime = 5;
    30. public int inGameId = 1;
    31. public int preGameId = 2;
    32. public int redFlags = 0;
    33. public int blueFlags = 0;
    34. public boolean suddenDeath = false;
    35. public int mapCycle;
    36. public boolean mip = false;
    37. public boolean holding = false;
    38. public ArrayList<String> kits = new ArrayList<String>();
    39. public ArrayList<String> red = new ArrayList<String>();
    40. public ArrayList<String> blue = new ArrayList<String>();
    41. public ArrayList<String> blueCarrier = new ArrayList<String>();
    42. public ArrayList<String> redCarrier = new ArrayList<String>();
    43. public SpawnConfigYML sgy;
    44. public SpawnUtil su;
    45. public InGame ig;
    46. public PreGame pg;
    47. public PlayerListener pl;
    48. public DatabaseMethods dbm;
    49. String nextMap;
    50. public Database db;
    51. public String toolMap = null;
    52. public String toolFlag = null;
    53. public boolean toolEnabled = false;
    54. public Logger log;
    55.  
    56. public String prefix = ChatColor.WHITE + "[" + ChatColor.BLUE + "Zinnia" + ChatColor.GOLD + "CTF" + ChatColor.WHITE + "] " + ChatColor.GREEN;
    57.  
    58. public void onEnable(){
    59. log = this.getLogger();
    60. getConfig().options().copyDefaults(true);
    61. saveDefaultConfig();
    62. getServer().getPluginManager().registerEvents(new PlayerListener(this), this);
    63. getServer().getPluginManager().registerEvents(this, this);
    64. this.sgy = new SpawnConfigYML(this);
    65. this.su = new SpawnUtil(this);
    66. this.ig = new InGame(this);
    67. this.pg = new PreGame(this);
    68. this.pl = new PlayerListener(this);
    69. this.dbm = new DatabaseMethods(this);
    70.  
    71. if(getConfig().getBoolean("startOnBoot")){
    72. pg.startGame();
    73. }else{
    74. log.warning("startOnBoot set to false! Games not starting when the server boots.");
    75. }
    76. if(!getConfig().isSet("nextMap")){
    77. getConfig().set("nextMap", "SET THIS");
    78. }else{
    79. nextMap = getConfig().getString("nextMap");
    80. }
    81. if(!getConfig().isSet("mapCycle")) {
    82. getConfig().set("mapCycle", 1);
    83. } else {
    84. mapCycle = getConfig().getInt("mapCycle");
    85. }
    86. db = new MySQL(getLogger(), "[XiosWar]", getConfig().getString("host"),
    87. getConfig().getInt("port"), getConfig().getString("db"),
    88. getConfig().getString("user"), getConfig().getString("pass"));
    89. if (!db.isOpen()) {
    90. if (db.open()) {
    91. getLogger().info("MySQL connection successful...");
    92. } else {
    93. getLogger().severe("MySQL connection failed!");
    94. }
    95. }
    96. if(!db.isOpen()){
    97. log.severe("SQL NOT CONFIGURED SHUTTING DOWN CTF! PLEASE CONFIGURE CORRECTLY THEN REBOOT!");
    98. log.severe("SQL NOT CONFIGURED SHUTTING DOWN CTF! PLEASE CONFIGURE CORRECTLY THEN REBOOT!");
    99. log.severe("SQL NOT CONFIGURED SHUTTING DOWN CTF! PLEASE CONFIGURE CORRECTLY THEN REBOOT!");
    100. log.severe("SQL NOT CONFIGURED SHUTTING DOWN CTF! PLEASE CONFIGURE CORRECTLY THEN REBOOT!");
    101. log.severe("SQL NOT CONFIGURED SHUTTING DOWN CTF! PLEASE CONFIGURE CORRECTLY THEN REBOOT!");
    102. Bukkit.shutdown();
    103. }
    104. if(db.isOpen()){
    105. try {
    106. db.query("CREATE TABLE IF NOT EXISTS stats(playername varchar(50) NOT NULL, PRIMARY KEY(playername))");
    107. db.query("ALTER TABLE stats ADD kills int(11);");
    108. db.query("ALTER TABLE stats ADD deaths int(11);");
    109. db.query("ALTER TABLE stats ADD captures int(11);");
    110. db.query("ALTER TABLE stats ADD wins int(11);");
    111. db.query("ALTER TABLE stats ADD losses int(11);");
    112. db.query("ALTER TABLE stats ADD points int(11);");
    113. } catch (SQLException ex) {
    114. getLogger().severe(ex.getMessage());
    115. }
    116. }
    117. }
    118.  
    119. public void onDisable(){
    120. saveConfig();
    121. red.clear();
    122. blue.clear();
    123. blueCarrier.clear();
    124. redCarrier.clear();
    125. mip = false;
    126. suddenDeath = false;
    127. }
    128.  
    129. public boolean onCommand(CommandSender sender, Command cmd, String label,
    130. String[] args) {
    131. if(cmd.getName().equalsIgnoreCase("teamchat")){
    132. if(sender instanceof Player){
    133. Player p = (Player)sender;
    134. if(args.length == 0) {
    135. p.sendMessage(prefix + ChatColor.DARK_RED + "Please type a message to send to your team!");
    136. return false;
    137. }
    138. String msg = StringUtils.join(args, " ");
    139. if (blue.contains(p.getName())) {
    140. for (Player pall: Bukkit.getOnlinePlayers()) {
    141. if (blue.contains(pall.getName())) {
    142. pall.sendMessage(prefix + ChatColor.BLUE + "[TEAM]" + " " + ChatColor.WHITE + p.getName() + ":" + " " + msg);
    143. }
    144. }
    145. }
    146. else if (red.contains(p.getName())) {
    147. for (Player pall: Bukkit.getOnlinePlayers()) {
    148. if(red.contains(pall.getName())) {
    149. pall.sendMessage(prefix + ChatColor.GOLD + "[TEAM]" + " " + ChatColor.WHITE + p.getName() + ":" + " " + msg);
    150. }
    151. }
    152. }
    153. else {
    154. p.sendMessage(prefix + ChatColor.DARK_RED + "You are not on a team!");
    155. }
    156. }
    157. return false;
    158. }
    159. else if(cmd.getName().equalsIgnoreCase("score")) {
    160. if(mip) {
    161. Player p = (Player)sender;
    162. p.sendMessage(prefix + "Current Scores:");
    163. p.sendMessage(prefix + ChatColor.GOLD + "Yellow: " + ChatColor.DARK_AQUA + redFlags);
    164. p.sendMessage(prefix + ChatColor.BLUE + "Blue: " + ChatColor.DARK_AQUA + blueFlags);
    165. }
    166. else {
    167. Player p = (Player)sender;
    168. p.sendMessage(prefix + ChatColor.DARK_RED + "There is no match in progress!");
    169. }
    170. return false;
    171. }
    172. else if(cmd.getName().equalsIgnoreCase("kit")){
    173. if(sender instanceof Player){
    174. Player p = (Player)sender;
    175. if(args.length == 0) {
    176. kits.clear();
    177. p.sendMessage(prefix + ChatColor.DARK_RED + "Your available kits:");
    178. if(dbm.checkKit(p, "archer") == 1) {
    179. kits.add("Archer");
    180. }
    181. if(dbm.checkKit(p, "warrior") == 1) {
    182. kits.add("Warrior");
    183. }
    184. if(dbm.checkKit(p, "arsonist") == 1) {
    185. kits.add("Arsonist");
    186. }
    187. if(dbm.checkKit(p, "tank") == 1) {
    188. kits.add("Tank");
    189. }
    190. boolean first = true;
    191. StringBuilder sb = new StringBuilder();
    192. for (String s : kits) {
    193. if (first) {
    194. first = false;
    195. sb.append(ChatColor.GOLD).append(s);
    196. } else {
    197. sb.append(ChatColor.DARK_AQUA).append(", ").append(ChatColor.GOLD).append(s);
    198. }
    199. }
    200. p.sendMessage(prefix + sb.toString());
    201. p.sendMessage(prefix + "Purchase more kits at [URL]http://store.zinnia-mc.net[/URL]");
    202. return true;
    203. }
    204. if(args.length == 1) {
    205. String[] check = args;
    206. if(dbm.checkKit(p, check) == 0) {
    207. p.sendMessage(prefix + ChatColor.DARK_RED + "Invalid kit!");
    208. }
    209. else {
    210. dbm.setKit(p, args);
    211. p.sendMessage(prefix + ChatColor.DARK_RED + "You have switched to the " + args + " kit.");
    212. if(mip && blue.contains(p.getName()) || red.contains(p.getName())) {
    213. p.sendMessage(prefix + ChatColor.DARK_RED + "Changing kit on next death.");
    214. }
    215. }
    216. }
    217. }
    218. return true;
    219. }
    220. else if(cmd.getName().equalsIgnoreCase("ctf")){
    221. if(sender instanceof Player){
    222. Player p = (Player)sender;
    223. if(p.hasPermission("ctf.admin")){
    224. if(args.length == 0) {
    225. p.sendMessage(prefix + ChatColor.DARK_RED + "Originally developed by Jake0o0o and re-coded by BazzBerry for the Zinnia Minecraft network.");
    226. p.sendMessage(prefix + ChatColor.DARK_RED + "Visit our network at [URL]http://zinnia-mc.net[/URL]!");
    227. return true;
    228. }
    229. if(args.length == 3){
    230. if(args[0].equalsIgnoreCase("setspawn")) {
    231. String map = args[1];
    232. String team = args[2];
    233. if(team.equals("red")){
    234. su.setRedLocation(p.getLocation(), map);
    235. p.sendMessage(prefix + ChatColor.GOLD + "Yellow" + ChatColor.DARK_RED + "spawn point has been set on map '" + map + ChatColor.DARK_RED + "'.");
    236. }
    237. else if(team.equals("blue")){
    238. su.setBlueLocation(p.getLocation(), map);
    239. p.sendMessage(prefix + ChatColor.BLUE + "Blue" + ChatColor.DARK_RED + "spawn point has been set on map '" + map + ChatColor.DARK_RED + "'.");
    240. }
    241. }
    242. else if(args[0].equalsIgnoreCase("setflag")){
    243. String map = args[1];
    244. String team = args[2];
    245. if(team.equals("red")){
    246. su.setRedFlagLocation(p.getLocation(), map);
    247. p.sendMessage(prefix + ChatColor.GOLD + "Yellow" + ChatColor.DARK_RED + "flag location has been set on map '" + ChatColor.DARK_RED + "'.");
    248. }
    249. else if(team.equals("blue")){
    250. su.setBlueFlagLocation(p.getLocation(), map);
    251. p.sendMessage(prefix + ChatColor.BLUE + "Blue" + ChatColor.DARK_RED + "flag location has been set on map '" + ChatColor.DARK_RED + "'.");
    252. }
    253. }else{
    254. Bukkit.broadcastMessage(prefix+ ChatColor.DARK_RED + "Unknown command. Use /ctf help for a list of valid commands.");
    255. }
    256. } else if(args.length == 1){
    257. if(args[0].equalsIgnoreCase("setlobby")){
    258. su.setLobbyLocation(p.getLocation());
    259. p.sendMessage(prefix + "Lobby position set.");
    260. }else if(args[0].equalsIgnoreCase("help")){
    261. p.sendMessage(ChatColor.RED + "==CTF Help==");
    262. p.sendMessage(ChatColor.RED + "/ctf count <stop|start> " + ChatColor.GRAY + "- " + ChatColor.GOLD + "Stops or starts count");
    263. p.sendMessage(ChatColor.RED + "/ctf setspawn <map> <team> " + ChatColor.GRAY + "- " + ChatColor.GOLD + "Sets spawn.");
    264. p.sendMessage(ChatColor.RED + "/ctf setflag <map> <team> " + ChatColor.GRAY + "- " + ChatColor.GOLD + "Sets flag spawn.");
    265. p.sendMessage(ChatColor.RED + "/ctf start " + ChatColor.GRAY + "- " + ChatColor.GOLD + "Starts game");
    266. p.sendMessage(ChatColor.RED + "/ctf stop " + ChatColor.GRAY + "- " + ChatColor.GOLD + "Stops game");
    267. p.sendMessage(ChatColor.RED + "/ctf help " + ChatColor.GRAY + "- " + ChatColor.GOLD + "Displays help");
    268. p.sendMessage(ChatColor.RED + "/ctf mapinfo <author|name> <map> <setTo> " + ChatColor.GRAY + "- " + ChatColor.GOLD + "Sets map info");
    269. p.sendMessage(ChatColor.RED + "/teamchat (/tc) " + ChatColor.GRAY + "- " + ChatColor.GOLD + "Sends a message to your teammates.");
    270. p.sendMessage(ChatColor.RED + "/score " + ChatColor.GRAY + "- " + ChatColor.GOLD + "Displays current score");
    271. }else if(args[0].equalsIgnoreCase("stop")){
    272. remain = 0;
    273. p.sendMessage(prefix + ChatColor.DARK_RED + "Game ended prematurely.");
    274. }else if(args[0].equalsIgnoreCase("start")){
    275. starting = 0;
    276. p.sendMessage(prefix + ChatColor.DARK_RED + "Game started prematurely.");
    277. }
    278. else{
    279. Bukkit.broadcastMessage(prefix + ChatColor.DARK_RED + "Unknown command. Use /ctf help for a list of valid commands.");
    280. }
    281. } else if(args.length == 2){
    282. if(args[0].equalsIgnoreCase("count")){
    283. if(args[1].equalsIgnoreCase("stop")){
    284. Bukkit.getScheduler().cancelTask(preGameId);
    285. Bukkit.broadcastMessage(prefix + ChatColor.DARK_RED + "Start counter has been paused.");
    286. }else if(args[1].equalsIgnoreCase("start")){
    287. pg.startGame();
    288. }else{
    289. Bukkit.broadcastMessage(prefix + ChatColor.DARK_RED + "Unknown command. Use /ctf help for a list of valid commands.");
    290. }
    291. }else if(args[0].equalsIgnoreCase("tool")){
    292. if(args[1].equalsIgnoreCase("enable")){
    293.  
    294. }else if(args[1].equalsIgnoreCase("disable")){
    295. toolMap = null;
    296. toolFlag = null;
    297. toolEnabled = false;
    298. }
    299. }else{
    300. Bukkit.broadcastMessage(prefix + ChatColor.DARK_RED + "Unknown command. Use /ctf help for a list of valid commands.");
    301. }
    302. } else if(args.length == 4){
    303. if(args[0].equalsIgnoreCase("tool")){
    304. if(args[1].equalsIgnoreCase("set")){
    305. if(args[2].equalsIgnoreCase("map")){
    306. toolMap = args[3];
    307. }else if(args[2].equalsIgnoreCase("flag")){
    308. toolFlag = args[3];
    309. }
    310. }else{
    311. Bukkit.broadcastMessage(prefix + ChatColor.DARK_RED + "Unknown command. Use /ctf help for a list of valid commands.");
    312. }
    313. }
    314. else if(args[0].equalsIgnoreCase("mapinfo")){
    315. String type = args[1];
    316. String map = args[2];
    317. String setTo = args[3];
    318.  
    319. getConfig().set("mapInfo." + map + "." + type, setTo);
    320. p.sendMessage(prefix + ChatColor.DARK_RED + "Map information updated!");
    321. }
    322. }
    323. }
    324. }
    325. }
    326. return false;
    327. }
    328. @SuppressWarnings("deprecation")
    329. public void spawnFlags() {
    330. su.getBlueFlagLocation().getBlock().setTypeId(35);
    331. su.getBlueFlagLocation().getBlock().setData((byte) 11);
    332. su.getRedFlagLocation().getBlock().setTypeId(35);
    333. su.getRedFlagLocation().getBlock().setData((byte) 4);
    334.  
    335. }
    336. @SuppressWarnings("deprecation")
    337. @EventHandler
    338. public void spawnSelect(PlayerInteractEvent e){
    339. if(toolEnabled){
    340. if(e.getPlayer().hasPermission("ctf.admin")){
    341. if(e.getPlayer().getItemInHand().getTypeId() == getConfig().getInt("toolId")){
    342. if(toolFlag.equals("red")){
    343. su.setRedFlagLocation(e.getClickedBlock().getLocation(), toolMap);
    344. }else if(toolFlag.equals("blue")){
    345. su.setBlueFlagLocation(e.getClickedBlock().getLocation(), toolMap);
    346.  
    347. }
    348. }
    349. }
    350. }
    351. }
    352. @EventHandler
    353. public void slPing(ServerListPingEvent event){
    354. if(mip){
    355. event.setMotd(ChatColor.DARK_RED + "Match in progress.");
    356. }else if(!mip){
    357. event.setMotd(ChatColor.DARK_GREEN + "Lobby - " + ChatColor.DARK_RED + starting + ChatColor.DARK_GREEN + " seconds until start.");
    358. }
    359. }
    360. }
    361.  
    362.  


    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 6, 2016
  4. BazzBerry
    You're trying to use the actual 'args' array object, not something that's in it (args[0], args[1] etc).
     
  5. Offline

    BlackHead

    Args doesn't look like a normal text. You should use this:

    Code:java
    1. StringBuilder sb = new StringBuilder();
    2. for (int i = 0; i < args.length; i++){
    3. sb.append(args[i]).append(" ");
    4. }
    5.  
    6. String allArgs = sb.toString().trim();[/i]


    allArgs is now the text you want.
     
  6. Offline

    BazzBerry

    Ok - I did that, and now I'm getting errors for previous uses that worked before; if you haven't noticed, I'm kind of a newbie with java. Database methods has not changed from my post before this one.

    The method checkKit(Player, int) in the type DatabaseMethods is not applicable for the arguments (Player, String)CaptureTheFlag.java/CTF2/src/net/ixios/mcline 187Java Problem
    The method checkKit(Player, int) in the type DatabaseMethods is not applicable for the arguments (Player, String)CaptureTheFlag.java/CTF2/src/net/ixios/mcline 184Java Problem
    The method checkKit(Player, int) in the type DatabaseMethods is not applicable for the arguments (Player, String)CaptureTheFlag.java/CTF2/src/net/ixios/mcline 206Java Problem
    The method checkKit(Player, int) in the type DatabaseMethods is not applicable for the arguments (Player, String)CaptureTheFlag.java/CTF2/src/net/ixios/mcline 181Java Problem
    The method checkKit(Player, int) in the type DatabaseMethods is not applicable for the arguments (Player, String)CaptureTheFlag.java/CTF2/src/net/ixios/mcline 178Java Problem

    Code:java
    1. package net.ixios.mc;
    2.  
    3. import java.sql.SQLException;
    4. import java.util.ArrayList;
    5. import java.util.logging.Logger;
    6.  
    7. import lib.PatPeter.SQLibrary.Database;
    8. import lib.PatPeter.SQLibrary.MySQL;
    9.  
    10. import org.apache.commons.lang.StringUtils;
    11. import org.bukkit.Bukkit;
    12. import org.bukkit.ChatColor;
    13. import org.bukkit.command.Command;
    14. import org.bukkit.command.CommandSender;
    15. import org.bukkit.entity.Player;
    16. import org.bukkit.event.EventHandler;
    17. import org.bukkit.event.Listener;
    18. import org.bukkit.event.player.PlayerInteractEvent;
    19. import org.bukkit.event.server.ServerListPingEvent;
    20. import org.bukkit.plugin.java.JavaPlugin;
    21.  
    22. import Database.DatabaseMethods;
    23. import Util.SpawnConfigYML;
    24. import Util.SpawnUtil;
    25.  
    26. public class CaptureTheFlag extends JavaPlugin implements Listener{
    27. public int remain = 6000;
    28. public int starting = 60;
    29. public int holdingTime = 5;
    30. public int inGameId = 1;
    31. public int preGameId = 2;
    32. public int redFlags = 0;
    33. public int blueFlags = 0;
    34. public boolean suddenDeath = false;
    35. public int mapCycle;
    36. public boolean mip = false;
    37. public boolean holding = false;
    38. public ArrayList<String> kits = new ArrayList<String>();
    39. public ArrayList<String> red = new ArrayList<String>();
    40. public ArrayList<String> blue = new ArrayList<String>();
    41. public ArrayList<String> blueCarrier = new ArrayList<String>();
    42. public ArrayList<String> redCarrier = new ArrayList<String>();
    43. public SpawnConfigYML sgy;
    44. public SpawnUtil su;
    45. public InGame ig;
    46. public PreGame pg;
    47. public PlayerListener pl;
    48. public DatabaseMethods dbm;
    49. String nextMap;
    50. public Database db;
    51. public String toolMap = null;
    52. public String toolFlag = null;
    53. public boolean toolEnabled = false;
    54. public Logger log;
    55.  
    56. public String prefix = ChatColor.WHITE + "[" + ChatColor.BLUE + "Zinnia" + ChatColor.GOLD + "CTF" + ChatColor.WHITE + "] " + ChatColor.GREEN;
    57.  
    58. public void onEnable(){
    59. log = this.getLogger();
    60. getConfig().options().copyDefaults(true);
    61. saveDefaultConfig();
    62. getServer().getPluginManager().registerEvents(new PlayerListener(this), this);
    63. getServer().getPluginManager().registerEvents(this, this);
    64. this.sgy = new SpawnConfigYML(this);
    65. this.su = new SpawnUtil(this);
    66. this.ig = new InGame(this);
    67. this.pg = new PreGame(this);
    68. this.pl = new PlayerListener(this);
    69. this.dbm = new DatabaseMethods(this);
    70.  
    71. if(getConfig().getBoolean("startOnBoot")){
    72. pg.startGame();
    73. }else{
    74. log.warning("startOnBoot set to false! Games not starting when the server boots.");
    75. }
    76. if(!getConfig().isSet("nextMap")){
    77. getConfig().set("nextMap", "SET THIS");
    78. }else{
    79. nextMap = getConfig().getString("nextMap");
    80. }
    81. if(!getConfig().isSet("mapCycle")) {
    82. getConfig().set("mapCycle", 1);
    83. } else {
    84. mapCycle = getConfig().getInt("mapCycle");
    85. }
    86. db = new MySQL(getLogger(), "[XiosWar]", getConfig().getString("host"),
    87. getConfig().getInt("port"), getConfig().getString("db"),
    88. getConfig().getString("user"), getConfig().getString("pass"));
    89. if (!db.isOpen()) {
    90. if (db.open()) {
    91. getLogger().info("MySQL connection successful...");
    92. } else {
    93. getLogger().severe("MySQL connection failed!");
    94. }
    95. }
    96. if(!db.isOpen()){
    97. log.severe("SQL NOT CONFIGURED SHUTTING DOWN CTF! PLEASE CONFIGURE CORRECTLY THEN REBOOT!");
    98. log.severe("SQL NOT CONFIGURED SHUTTING DOWN CTF! PLEASE CONFIGURE CORRECTLY THEN REBOOT!");
    99. log.severe("SQL NOT CONFIGURED SHUTTING DOWN CTF! PLEASE CONFIGURE CORRECTLY THEN REBOOT!");
    100. log.severe("SQL NOT CONFIGURED SHUTTING DOWN CTF! PLEASE CONFIGURE CORRECTLY THEN REBOOT!");
    101. log.severe("SQL NOT CONFIGURED SHUTTING DOWN CTF! PLEASE CONFIGURE CORRECTLY THEN REBOOT!");
    102. Bukkit.shutdown();
    103. }
    104. if(db.isOpen()){
    105. try {
    106. db.query("CREATE TABLE IF NOT EXISTS stats(playername varchar(50) NOT NULL, PRIMARY KEY(playername))");
    107. db.query("ALTER TABLE stats ADD kills int(11);");
    108. db.query("ALTER TABLE stats ADD deaths int(11);");
    109. db.query("ALTER TABLE stats ADD captures int(11);");
    110. db.query("ALTER TABLE stats ADD wins int(11);");
    111. db.query("ALTER TABLE stats ADD losses int(11);");
    112. db.query("ALTER TABLE stats ADD points int(11);");
    113. } catch (SQLException ex) {
    114. getLogger().severe(ex.getMessage());
    115. }
    116. }
    117. }
    118.  
    119. public void onDisable(){
    120. saveConfig();
    121. red.clear();
    122. blue.clear();
    123. blueCarrier.clear();
    124. redCarrier.clear();
    125. mip = false;
    126. suddenDeath = false;
    127. }
    128.  
    129. public boolean onCommand(CommandSender sender, Command cmd, String label,
    130. String[] args) {
    131. if(cmd.getName().equalsIgnoreCase("teamchat")){
    132. if(sender instanceof Player){
    133. Player p = (Player)sender;
    134. if(args.length == 0) {
    135. p.sendMessage(prefix + ChatColor.DARK_RED + "Please type a message to send to your team!");
    136. return false;
    137. }
    138. String msg = StringUtils.join(args, " ");
    139. if (blue.contains(p.getName())) {
    140. for (Player pall: Bukkit.getOnlinePlayers()) {
    141. if (blue.contains(pall.getName())) {
    142. pall.sendMessage(prefix + ChatColor.BLUE + "[TEAM]" + " " + ChatColor.WHITE + p.getName() + ":" + " " + msg);
    143. }
    144. }
    145. }
    146. else if (red.contains(p.getName())) {
    147. for (Player pall: Bukkit.getOnlinePlayers()) {
    148. if(red.contains(pall.getName())) {
    149. pall.sendMessage(prefix + ChatColor.GOLD + "[TEAM]" + " " + ChatColor.WHITE + p.getName() + ":" + " " + msg);
    150. }
    151. }
    152. }
    153. else {
    154. p.sendMessage(prefix + ChatColor.DARK_RED + "You are not on a team!");
    155. }
    156. }
    157. return false;
    158. }
    159. else if(cmd.getName().equalsIgnoreCase("score")) {
    160. if(mip) {
    161. Player p = (Player)sender;
    162. p.sendMessage(prefix + "Current Scores:");
    163. p.sendMessage(prefix + ChatColor.GOLD + "Yellow: " + ChatColor.DARK_AQUA + redFlags);
    164. p.sendMessage(prefix + ChatColor.BLUE + "Blue: " + ChatColor.DARK_AQUA + blueFlags);
    165. }
    166. else {
    167. Player p = (Player)sender;
    168. p.sendMessage(prefix + ChatColor.DARK_RED + "There is no match in progress!");
    169. }
    170. return false;
    171. }
    172. else if(cmd.getName().equalsIgnoreCase("kit")){
    173. if(sender instanceof Player){
    174. Player p = (Player)sender;
    175. if(args.length == 0) {
    176. kits.clear();
    177. p.sendMessage(prefix + ChatColor.DARK_RED + "Your available kits:");
    178. if(dbm.checkKit(p, "archer") == 1) {
    179. kits.add("Archer");
    180. }
    181. if(dbm.checkKit(p, "warrior") == 1) {
    182. kits.add("Warrior");
    183. }
    184. if(dbm.checkKit(p, "arsonist") == 1) {
    185. kits.add("Arsonist");
    186. }
    187. if(dbm.checkKit(p, "tank") == 1) {
    188. kits.add("Tank");
    189. }
    190. boolean first = true;
    191. StringBuilder sb = new StringBuilder();
    192. for (String s : kits) {
    193. if (first) {
    194. first = false;
    195. sb.append(ChatColor.GOLD).append(s);
    196. } else {
    197. sb.append(ChatColor.DARK_AQUA).append(", ").append(ChatColor.GOLD).append(s);
    198. }
    199. }
    200. p.sendMessage(prefix + sb.toString());
    201. p.sendMessage(prefix + "Purchase more kits at [url]http://store.zinnia-mc.net[/url]");
    202. return true;
    203. }
    204. if(args.length == 1) {
    205. String check = args[1];
    206. if(dbm.checkKit(p, check) == 0) {
    207. p.sendMessage(prefix + ChatColor.DARK_RED + "Invalid kit!");
    208. }
    209. else {
    210. dbm.setKit(p, check);
    211. p.sendMessage(prefix + ChatColor.DARK_RED + "You have switched to the " + args + " kit.");
    212. if(mip && blue.contains(p.getName()) || red.contains(p.getName())) {
    213. p.sendMessage(prefix + ChatColor.DARK_RED + "Changing kit on next death.");
    214. }
    215. }
    216. }
    217. }
    218. return true;
    219. }
    220. else if(cmd.getName().equalsIgnoreCase("ctf")){
    221. if(sender instanceof Player){
    222. Player p = (Player)sender;
    223. if(p.hasPermission("ctf.admin")){
    224. if(args.length == 0) {
    225. p.sendMessage(prefix + ChatColor.DARK_RED + "Originally developed by Jake0o0o and re-coded by BazzBerry for the Zinnia Minecraft network.");
    226. p.sendMessage(prefix + ChatColor.DARK_RED + "Visit our network at [url]http://zinnia-mc.net[/url]!");
    227. return true;
    228. }
    229. if(args.length == 3){
    230. if(args[0].equalsIgnoreCase("setspawn")) {
    231. String map = args[1];
    232. String team = args[2];
    233. if(team.equals("red")){
    234. su.setRedLocation(p.getLocation(), map);
    235. p.sendMessage(prefix + ChatColor.GOLD + "Yellow" + ChatColor.DARK_RED + "spawn point has been set on map '" + map + ChatColor.DARK_RED + "'.");
    236. }
    237. else if(team.equals("blue")){
    238. su.setBlueLocation(p.getLocation(), map);
    239. p.sendMessage(prefix + ChatColor.BLUE + "Blue" + ChatColor.DARK_RED + "spawn point has been set on map '" + map + ChatColor.DARK_RED + "'.");
    240. }
    241. }
    242. else if(args[0].equalsIgnoreCase("setflag")){
    243. String map = args[1];
    244. String team = args[2];
    245. if(team.equals("red")){
    246. su.setRedFlagLocation(p.getLocation(), map);
    247. p.sendMessage(prefix + ChatColor.GOLD + "Yellow" + ChatColor.DARK_RED + "flag location has been set on map '" + ChatColor.DARK_RED + "'.");
    248. }
    249. else if(team.equals("blue")){
    250. su.setBlueFlagLocation(p.getLocation(), map);
    251. p.sendMessage(prefix + ChatColor.BLUE + "Blue" + ChatColor.DARK_RED + "flag location has been set on map '" + ChatColor.DARK_RED + "'.");
    252. }
    253. }else{
    254. Bukkit.broadcastMessage(prefix+ ChatColor.DARK_RED + "Unknown command. Use /ctf help for a list of valid commands.");
    255. }
    256. } else if(args.length == 1){
    257. if(args[0].equalsIgnoreCase("setlobby")){
    258. su.setLobbyLocation(p.getLocation());
    259. p.sendMessage(prefix + "Lobby position set.");
    260. }else if(args[0].equalsIgnoreCase("help")){
    261. p.sendMessage(ChatColor.RED + "==CTF Help==");
    262. p.sendMessage(ChatColor.RED + "/ctf count <stop|start> " + ChatColor.GRAY + "- " + ChatColor.GOLD + "Stops or starts count");
    263. p.sendMessage(ChatColor.RED + "/ctf setspawn <map> <team> " + ChatColor.GRAY + "- " + ChatColor.GOLD + "Sets spawn.");
    264. p.sendMessage(ChatColor.RED + "/ctf setflag <map> <team> " + ChatColor.GRAY + "- " + ChatColor.GOLD + "Sets flag spawn.");
    265. p.sendMessage(ChatColor.RED + "/ctf start " + ChatColor.GRAY + "- " + ChatColor.GOLD + "Starts game");
    266. p.sendMessage(ChatColor.RED + "/ctf stop " + ChatColor.GRAY + "- " + ChatColor.GOLD + "Stops game");
    267. p.sendMessage(ChatColor.RED + "/ctf help " + ChatColor.GRAY + "- " + ChatColor.GOLD + "Displays help");
    268. p.sendMessage(ChatColor.RED + "/ctf mapinfo <author|name> <map> <setTo> " + ChatColor.GRAY + "- " + ChatColor.GOLD + "Sets map info");
    269. p.sendMessage(ChatColor.RED + "/teamchat (/tc) " + ChatColor.GRAY + "- " + ChatColor.GOLD + "Sends a message to your teammates.");
    270. p.sendMessage(ChatColor.RED + "/score " + ChatColor.GRAY + "- " + ChatColor.GOLD + "Displays current score");
    271. }else if(args[0].equalsIgnoreCase("stop")){
    272. remain = 0;
    273. p.sendMessage(prefix + ChatColor.DARK_RED + "Game ended prematurely.");
    274. }else if(args[0].equalsIgnoreCase("start")){
    275. starting = 0;
    276. p.sendMessage(prefix + ChatColor.DARK_RED + "Game started prematurely.");
    277. }
    278. else{
    279. Bukkit.broadcastMessage(prefix + ChatColor.DARK_RED + "Unknown command. Use /ctf help for a list of valid commands.");
    280. }
    281. } else if(args.length == 2){
    282. if(args[0].equalsIgnoreCase("count")){
    283. if(args[1].equalsIgnoreCase("stop")){
    284. Bukkit.getScheduler().cancelTask(preGameId);
    285. Bukkit.broadcastMessage(prefix + ChatColor.DARK_RED + "Start counter has been paused.");
    286. }else if(args[1].equalsIgnoreCase("start")){
    287. pg.startGame();
    288. }else{
    289. Bukkit.broadcastMessage(prefix + ChatColor.DARK_RED + "Unknown command. Use /ctf help for a list of valid commands.");
    290. }
    291. }else if(args[0].equalsIgnoreCase("tool")){
    292. if(args[1].equalsIgnoreCase("enable")){
    293.  
    294. }else if(args[1].equalsIgnoreCase("disable")){
    295. toolMap = null;
    296. toolFlag = null;
    297. toolEnabled = false;
    298. }
    299. }else{
    300. Bukkit.broadcastMessage(prefix + ChatColor.DARK_RED + "Unknown command. Use /ctf help for a list of valid commands.");
    301. }
    302. } else if(args.length == 4){
    303. if(args[0].equalsIgnoreCase("tool")){
    304. if(args[1].equalsIgnoreCase("set")){
    305. if(args[2].equalsIgnoreCase("map")){
    306. toolMap = args[3];
    307. }else if(args[2].equalsIgnoreCase("flag")){
    308. toolFlag = args[3];
    309. }
    310. }else{
    311. Bukkit.broadcastMessage(prefix + ChatColor.DARK_RED + "Unknown command. Use /ctf help for a list of valid commands.");
    312. }
    313. }
    314. else if(args[0].equalsIgnoreCase("mapinfo")){
    315. String type = args[1];
    316. String map = args[2];
    317. String setTo = args[3];
    318.  
    319. getConfig().set("mapInfo." + map + "." + type, setTo);
    320. p.sendMessage(prefix + ChatColor.DARK_RED + "Map information updated!");
    321. }
    322. }
    323. }
    324. }
    325. }
    326. return false;
    327. }
    328. @SuppressWarnings("deprecation")
    329. public void spawnFlags() {
    330. su.getBlueFlagLocation().getBlock().setTypeId(35);
    331. su.getBlueFlagLocation().getBlock().setData((byte) 11);
    332. su.getRedFlagLocation().getBlock().setTypeId(35);
    333. su.getRedFlagLocation().getBlock().setData((byte) 4);
    334.  
    335. }
    336. @SuppressWarnings("deprecation")
    337. @EventHandler
    338. public void spawnSelect(PlayerInteractEvent e){
    339. if(toolEnabled){
    340. if(e.getPlayer().hasPermission("ctf.admin")){
    341. if(e.getPlayer().getItemInHand().getTypeId() == getConfig().getInt("toolId")){
    342. if(toolFlag.equals("red")){
    343. su.setRedFlagLocation(e.getClickedBlock().getLocation(), toolMap);
    344. }else if(toolFlag.equals("blue")){
    345. su.setBlueFlagLocation(e.getClickedBlock().getLocation(), toolMap);
    346.  
    347. }
    348. }
    349. }
    350. }
    351. }
    352. @EventHandler
    353. public void slPing(ServerListPingEvent event){
    354. if(mip){
    355. event.setMotd(ChatColor.DARK_RED + "Match in progress.");
    356. }else if(!mip){
    357. event.setMotd(ChatColor.DARK_GREEN + "Lobby - " + ChatColor.DARK_RED + starting + ChatColor.DARK_GREEN + " seconds until start.");
    358. }
    359. }
    360. }
    361.  
    362.  
     
  7. BazzBerry
    Your checkKit() method requires an integer, but you're trying to give it a string instead. I didn't go through all of your code, so I don't really know what the integer is for.
     
  8. Offline

    BazzBerry


    Basically I have it in the SQL that for each kit, it's either 0 or 1.
    0 for false, 1 for true. It's an integer.

    I just want to input a string - such as checkKit(p, "archer") and have it check if the column archer is set to 0 or 1.

    Edit: Got it to work. Thanks for the help.
     
  9. Offline

    RawCode

    arrays does not have .toString method and return getClass.getName() if you try to print them.

    you must set index of your array in order to display object stored inside.
    Code:java
    1. "You have switched to the " + args[2] + " kit.")
     
  10. Offline

    Sagacious_Zed Bukkit Docs

  11. Offline

    RawCode

  12. Offline

    Sagacious_Zed Bukkit Docs

    RawCode You misunderstood, Arrays.toString is a static method, thus
    Code:java
    1. "You have switched to the " + Arrays.toString(args) + " kit.")


    It would however print it out as an Array
    Code:
    [<args[0]>, <args[n]>]
     
  13. Offline

    RawCode

    Sagacious_Zed
    I have explained why "printing" array pointer will return string like one TS posted.
    Iteration\enums\whatever on arrays is not issue at all.

    http://grepcode.com/file/repository.../java/util/Arrays.java#Arrays.toString(int[])
    Code:java
    1. 3860 public static String toString(int[] a) {
    2. 3861 if (a == null)
    3. 3862 return "null";
    4. 3863 int iMax = a.length - 1;
    5. 3864 if (iMax == -1)
    6. 3865 return "[]";
    7. 3866
    8. 3867 StringBuilder b = new StringBuilder();
    9. 3868 b.append('[');
    10. 3869 for (int i = 0; ; i++) {
    11. 3870 b.append(a[i]);
    12. 3871 if (i == iMax)
    13. 3872 return b.append(']').toString();
    14. 3873 b.append(", ");
    15. 3874 }
    16. 3875 }[/i]

    Also this method is not native, it will be faster to iterate array with for (String s : array){} then using it.
     
  14. Offline

    Sagacious_Zed Bukkit Docs

    RawCode I am working under the assumption that the OP did intend to print the contents of an array. Which case there is a method in Java to print out the contents of an array.

    But yes, your explanation of why it prints out the hash is correct
     
    RawCode likes this.
Thread Status:
Not open for further replies.

Share This Page