我在這裏有一小段代碼,當有人在TeamSpeak中切換頻道時就會調用它。 clid
是用戶的ID,cid
是頻道ID。整數lobby
和verified
是表示「比賽大廳」和「名稱驗證」頻道的預設ID,並且reg
是用於確定誰在大廳中的ID的Vector
。這個函數之外的唯一其他引用reg
是它的聲明和初始化。以下是代碼:Java停止代碼執行?
public void handleClientMove(int clid, int cid)
{
String name = query.getClientNameFromID(clid);
System.out.println(cid == lobby ? "lobby" : cid == verified ? "verified" : "non-tournament");
if(cid == lobby)
{
System.out.println("Handling Tournament Lobby");
if(!reg.contains(clid))
{
query.clientPoke(clid, "Welcome to the Tourney! Please change your name to include your rank. ex: 'D5 Name', 'M1 Name2'");
reg.add(clid);
}
}
else
{
if(reg.contains(clid)) reg.remove(clid);
}
System.out.println("test01");
if(cid == verified)
{
System.out.println("Handling Name Verified");
if(!isUserRegistered(clid))
{
participants.add(new Player(name, clid, true));
query.clientPoke(clid, "Your name has been verified and you are now entered in the tournament!");
}
}
}
println
語句僅用於調試目的。當我將頻道切換到大廳時(我可以驗證由於調試語句而正確輸入clid
和cid
)它可以正常工作,但是當我加入名稱驗證頻道(此處再次指出適當的參數)時,什麼都不會發生。一點都不。方法頂部的println
語句會運行,但if
塊之間的語句不是,所以在我看來似乎有些東西阻止它通過第一個塊,即使它沒有運行。任何幫助將不勝感激。謝謝!
感謝您的洞察力。原來,而不是要求從數組中刪除CLID自己,我只是刪除索引(因爲CLID是一個整數),並且由於只有一個CLID在數組中(索引0),沒有索引'1'來刪除。我已經通過將'clid'強制轉換爲對象來解決了這個問題。 –