UserJoinedRoomHandlerで部屋変数を設定(ユーザーの名前を部屋変数に追加)しようとしています:JAVA拡張機能から:
public class UserJoinedRoomHandler extends BaseServerEventHandler
{
@Override
public void handleServerEvent(ISFSEvent arg0) throws SFSException
{
User user = (User) arg0.getParameter(SFSEventParam.USER);
Room room = (Room) arg0.getParameter(SFSEventParam.ROOM);
trace("add p1 = " + user.getName() + " to room=" + room.getId());
List<RoomVariable> listOfVars = new ArrayList<RoomVariable>();
listOfVars.add( new SFSRoomVariable("player1Name", user.getName()) );
((MyExtension) getParentExtension()).sfsApi.setRoomVariables(user, room, listOfVars); // NullPointerException here :(
}
}
MyExtention init()関数でsfsAPIを取得することに注意してください。
ISFSApi sfsApi = SmartFoxServer.getInstance().getAPIManager().getSFSApi();
私にとってこれはうまくいくはずですが、私が考えることができる唯一のことは、部屋が完全に初期化されていない可能性があるということです(ユーザーはこのイベントが発生する前に部屋を作成したばかりです)。しかし、いずれにせよ、これは些細なシナリオであるべきだと思いましたが、それはすでに私にかなりの数時間の費用がかかりました。
助けてくれてありがとう。