A few days ago i wrote a little tool which you might find use for. Since we all know writing an updater is by far the most time consuming and tedious thing to do when it comes to creating a bot, i made this thing that basically takes the list of accessors from RSBot, and dumps them into a couple of hashmaps for use with reflection.
I reckon it can be quite helpful for ensuring the bot works well whilst still not having an updater completed.
It will output something like this when ran:
rsbot-v2.ms Revision #640
Class 'RSNPCNode': eea
Class 'RSNPC': fs
Class 'RSNPCDef': pha
Class 'RSPlayer': fha
Class 'Model': ka
Class 'RSPlayerComposite': uea
Class 'RSCharacter': kn
Class 'RSAnimable': fb
Class 'Graphic': sj
Class 'LDModel': ub
Class 'RSInterface': vfa
Class 'Signlink': kk
Class 'Client': client
Class 'NodeSub': dg
Class 'Node': pb
Class 'RSItemDef': th
Class 'RSItem': ma
Class 'NodeDeque': ro
Class 'NodeListCache': gj
Class 'RSInteractable': kf
Class 'RSInteractableDef': ww
Class 'StatusNodeList': vm
Class 'StatusNode': va
Class 'StatusNodeListLoader': bw
Class 'RSObjectDef': qfa
Class 'RSObject': kd
Class 'RSObject': tu
Class 'RSObject': ah
Class 'RSObject': uba
Class 'RSObject': sl
Class 'RSObject': nq
Class 'RSObject': et
Class 'RSObject': eca
Class 'RSObjectComposite': jh
Class 'RSGround': ih
Class 'RSAnimableNode': daa
Class 'RSGroundEntity': jg
Class 'RSGroundObject': em
Class 'RSItemDefLoader': uq
Class 'Cache': qr
Class 'NodeSubQueue': dr
Class 'HashTable': du
Class 'RSObjectDefLoader': wb
Class 'MenuGroupNode': fa
Class 'MenuItemNode': li
Class 'DetailInfoNode': up
Class 'DetailInfo': qv
Class 'TileData': s
Class 'Render': ha
Class 'RenderData': ofa
Class 'RSGroundData': kb
Class 'Reference': rk
Class 'HardReference': dt
Class 'SoftReference': kr
Class 'ServerData': fi
Class 'Settings': rl
Class 'RSInterfaceNode': ff
Class 'ChatLine': fk
Field [Model] getModel: nq.mb
Field [[Ljava/lang/String;] RSNPCDef.getActions: pha.U
Field [Ljava/lang/String;] RSNPCDef.getName: pha.ob
Field [I] RSNPCDef.getType: pha.nb
Field [StatusNodeList] StatusNodeListLoader.getList: bw.a
Field [RenderData] getRenderData: gf.P
Field [I] getZNear: gf.Y
Field [I] getZFar: gf.D
Field [I] getXMultiplier: gf.G
Field [I] getYMultiplier: gf.eb
Field [I] getAbsoluteX1: gf.N
Field [I] getAbsoluteX2: gf.db
Field [I] getAbsoluteY1: gf.ab
Field [I] getAbsoluteY2: gf.kb
Field [Ljava/lang/String;] RSItemDef.getName: th.g
Field [[Ljava/lang/String;] RSItemDef.getGroundActions: th.i
Field [RSItemDefLoader] RSItemDef.getLoader: th.s
Field [I] RSItemDef.getID: th.eb
Field [I] RSItemDef.getCertTemplateID: th.ab
Field [I] RSItemDef.getCertID: th.ab
Field [Z] RSItemDef.isMembersObject: th.R
Field [I] RSItemDef.getTeam: th.B
Field [[Ljava/lang/String;] RSItemDef.getActions: th.f
Field [Ljava/lang/String;] ChatLine.getName: fk.f
Field [Ljava/lang/String;] ChatLine.getMessage: fk.j
Field [RSInteractable] RSInteractableDef.getRSInteractable: ww.o
Field [I] RSInteractable.getX: kf.m
Field [I] RSInteractable.getY: kf.j
Field [B] RSInteractable.getPlane: kf.p
Field [I] RSInterfaceNode.getMainID: ff.o
Field [I] ServerData.getWorldID: fi.h
Field [Model] getModel: kd.model
Field [RSNPCDef] RSNPC.getRSNPCDef: fs.sd
Field [I] RSNPC.getLevel: fs.md
Field [[[I] RSGroundData.getBlocks: kb.w
Field [I] RSGroundData.getX: kb.h
Field [I] RSGroundData.getY: kb.x
Field [F] getZOff: fu.g
Field [F] getZX: fu.z
Field [F] getZY: fu.x
Field [F] getZZ: fu.E
Field [F] getXOff: fu.r
Field [F] getXX: fu.t
Field [F] getXY: fu.l
Field [F] getXZ: fu.o
Field [F] getYOff: fu.i
Field [F] getYX: fu.H
Field [F] getYY: fu.D
Field [F] getYZ: fu.C
Field [Model] getModel: sl.model
Field [RSAnimable] RSAnimableNode.getRSAnimable: daa.d
Field [RSAnimableNode] RSAnimableNode.getNext: daa.h
Field [RSNPC] RSNPCNode.getRSNPC: eea.i
Field [Ljava/lang/ref/SoftReference;] SoftReference.getReference: kr.B
Field [Ljava/awt/EventQueue;] Signlink.getEventQueue: kk.g
Field [I] Graphic.getID: sj.b
Field [Ljava/lang/String;] RSCharacter.getMessage: kn.Mb
Field [I] RSCharacter.getOrientation: kn.lb
Field [I] RSCharacter.getAnimation: kn.Cb
Field [I] RSCharacter.isMoving: kn.Jc
Field [[Graphic] RSCharacter.getGraphicsData: kn.zb
Field [[I] RSCharacter.getLocationY: kn.Pc
Field [[I] RSCharacter.getLocationX: kn.Oc
Field [I] RSCharacter.getLoopCycleStatus: kn.ab
Field [I] RSCharacter.getHPRatio: kn.wb
Field [I] RSCharacter.getHeight: kn.zc
Field [I] RSCharacter.getInteracting: kn.gc
Field [Model] RSCharacter.getModel: kn.model
Field [Ljava/lang/String;] MenuItemNode.getAction: li.G
Field [Ljava/lang/String;] MenuItemNode.getOption: li.M
Field [NodeDeque] NodeListCache.getNodeList: gj.i
Field [J] Node.getID: pb.g
Field [Node] Node.getPrevious: pb.h
Field [Node] Node.getNext: pb.d
Field [Cache] RSObjectDefLoader.getCache: wb.g
Field [Ljava/lang/Object;] HardReference.get: dt.B
Field [StatusNode] StatusNodeList.getHead: vm.f
Field [StatusNode] StatusNodeList.getNext: vm.k
Field [[Node] HashTable.getBuckets: du.l
Field [Node] NodeDeque.getTail: ro.k
Field [Node] NodeDeque.getCurrent: ro.u
Field [[I] Settings.getData: rl.l
Field [I] Reference.getIndex: rk.x
Field [[I] RSObjectDef.getChildrenIDs: qfa.J
Field [Ljava/lang/String;] RSObjectDef.getName: qfa.b
Field [[Ljava/lang/String;] RSObjectDef.getActions: qfa.jb
Field [NodeSub] NodeSub.getPrevSub: dg.p
Field [NodeSub] NodeSub.getNextSub: dg.t
Field [RSAnimableNode] RSGround.getRSAnimableList: ih.n
Field [RSInteractable] RSGround.getBoundary1: ih.a
Field [RSInteractable] RSGround.getBoundary2: ih.k
Field [RSInteractable] RSGround.getWallDecoration1: ih.g
Field [RSInteractable] RSGround.getWallDecoration2: ih.i
Field [RSInteractable] RSGround.getFloorDecoration: ih.j
Field [RSGroundEntity] RSGround.getGroundObject: ih.l
Field [I] RSItem.getID: ma.m
Field [I] RSItem.getStackSize: ma.j
Field [I] RSInterface.getMasterX: vfa.masterX
Field [I] RSInterface.getMasterY: vfa.masterY
Field [[RSInterface] RSInterface.getComponents: vfa.Db
Field [I] RSInterface.getType: vfa.Cb
Field [I] RSInterface.getSpecialType: vfa.b
Field [[Ljava/lang/String;] RSInterface.getActions: vfa.pd
Field [Z] RSInterface.isInventoryInterface: vfa.Ib
Field [Ljava/lang/String;] RSInterface.getToolTip: vfa.Xb
Field [I] RSInterface.getX: vfa.bb
Field [I] RSInterface.getY: vfa.kd
Field [I] RSInterface.getWidth2: vfa.yc
Field [I] RSInterface.getHeight2: vfa.t
Field [I] RSInterface.getBoundsArrayIndex: vfa.Fc
Field [I] RSInterface.getBorderThickness: vfa.Rb
Field [I] RSInterface.getXRotation: vfa.uc
Field [I] RSInterface.getComponentIndex: vfa.oc
Field [I] RSInterface.getHeight: vfa.o
Field [I] RSInterface.getHorizontalScrollBarSize: vfa.od
Field [I] RSInterface.getHorizontalScrollBarThumbPosition: vfa.fb
Field [I] RSInterface.getHorizontalScrollBarThumbSize: vfa.yc
Field [I] RSInterface.getID: vfa.P
Field [Z] RSInterface.isHorizontallyFlipped: vfa.Dc
Field [Z] RSInterface.isVerticallyFlipped: vfa.lc
Field [I] RSInterface.getComponentStackSize: vfa.hb
Field [I] RSInterface.getComponentID: vfa.dd
Field [Ljava/lang/String;] RSInterface.getComponentName: vfa.g
Field [I] RSInterface.getModelZoom: vfa.fd
Field [I] RSInterface.getModelID: vfa.nb
Field [I] RSInterface.getModelType: vfa.s
Field [I] RSInterface.getParentID: vfa.Sb
Field [Ljava/lang/String;] RSInterface.getSelectedActionName: vfa.Bb
Field [I] RSInterface.getShadowColor: vfa.Gc
Field [Ljava/lang/String;] RSInterface.getText: vfa.U
Field [I] RSInterface.getTextColor: vfa.ac
Field [I] RSInterface.getTextureID: vfa.Y
Field [I] RSInterface.getVerticalScrollBarSize: vfa.Lc
Field [I] RSInterface.getVerticalScrollBarPosition: vfa.pb
Field [I] RSInterface.getVerticalScrollBarThumbSize: vfa.t
Field [I] RSInterface.getWidth: vfa.Yb
Field [I] RSInterface.getYRotation: vfa.f
Field [I] RSInterface.getZRotation: vfa.Hb
Field [Model] getModel: uba.model
Field [I] DetailInfo.getDetailLevel: qv.c
Field [StatusNode] StatusNode.getNext: va.b
Field [StatusNode] StatusNode.getPrevious: va.f
Field [NodeSub] NodeSubQueue.getTail: dr.a
Field [NodeSub] NodeSubQueue.getCurrent: dr.r
Field [NodeSubQueue] Cache.getList: qr.c
Field [I] Cache.getInitialCount: qr.r
Field [I] Cache.getSpaceLeft: qr.t
Field [HashTable] Cache.getTable: qr.i
Field [Cache] RSItemDefLoader.getCache: uq.i
Field [Z] RSItemDefLoader.isMembers: uq.l
Field [NodeSubQueue] MenuGroupNode.getItems: fa.F
Field [Ljava/lang/String;] MenuGroupNode.getOption: fa.D
Field [I] MenuGroupNode.size: fa.G
Field [I] RSPlayer.getTeam: fha.ad
Field [RSPlayerComposite] RSPlayer.getComposite: fha.hd
Field [Ljava/lang/String;] RSPlayer.getName: fha.nd
Field [I] RSPlayer.getLevel: fha.ed
Field [Model] RSObject.getModel: eca.ob
Field [S] RSAnimable.getX1: fb.O
Field [S] RSAnimable.getY1: fb.B
Field [S] RSAnimable.getY2: fb.H
Field [S] RSAnimable.getX2: fb.I
Field [DetailInfo] DetailInfoNode.getDetailInfo: up.s
Field [[[I] TileData.getHeights: s.c
Field [Model] getModel: tu.model
Field [I] RSPlayerComposite.getNPCID: uea.o
Field [[S] LDModel.getIndices1: ub.Jb
Field [[S] LDModel.getIndices2: ub.bb
Field [[S] LDModel.getIndices3: ub.U
Field [[I] LDModel.getXPoints: ub.X
Field [[I] LDModel.getYPoints: ub.Xb
Field [[I] LDModel.getZPoints: ub.qb
Field [Model] RSGroundObject.getModel: em.model
Field [Model] getModel: et.eb
Field [Model] getModel: ah.mb
Static Field [HashTable] getRSNPCNC: bp.B
Static Field [[I] getRSNPCIndexArray: go.Y
Static Field [I] getRSNPCCount: caa.j
Static Field [[RSPlayer] getRSPlayerArray: nj.k
Static Field [[I] getRSPlayerIndexArray: qia.r
Static Field [I] getRSPlayerCount: id.i
Static Field [RSPlayer] getMyRSPlayer: vaa.x
Static Field [I] getBaseX: eaa.f
Static Field [I] getBaseY: wb.u
Static Field [I] getPublicChatMode: dw.R
Static Field [I] getLoopCycle: iha.J
Static Field [I] getSelfInteracting: eaa.f
Static Field [[[[B] getGroundByteArray: r.z
Static Field [I] getPlane: ko.i
Static Field [I] getCamPosX: cj.L
Static Field [I] getCamPosY: wt.x
Static Field [I] getCamPosZ: hm.b
Static Field [I] getCameraPitch: hp.e
Static Field [I] getCameraYaw: vk.H
Static Field [[Ljava/awt/Rectangle;] getRSInterfaceBoundsArray: ei.L
Static Field [[Z] getValidRSInterfaceArray: eia.d
Static Field [Ljava/lang/String;] getCurrentUsername: mn.d
Static Field [Ljava/lang/String;] getCurrentPassword: dg.k
Static Field [Ljava/awt/Canvas;] getCanvas: gga.m
Static Field [input/Keyboard] getKeyboard: vf.c
Static Field [input/Mouse] getMouse: cv.x
Static Field [Callback] getCallback: client.callback
Static Field [[I] getSkillExperiencesMax: pha.rb
Static Field [I] getMinimapScale: pd.g
Static Field [[I] getCURVECOS: uf.Fb
Static Field [[I] getCURVESIN: uf.Cb
Static Field [I] getMinimapSetting: up.N
Static Field [I] getMinimapAngle: og.F
Static Field [F] getMinimapOffset: ea.m
Static Field [Z] isSpellSelected: hc.d
Static Field [I] isItemSelected: ew.o
Static Field [Ljava/lang/String;] getSelectedItemName: rd.b
Static Field [HashTable] getRSItemHashTable: og.G
Static Field [StatusNodeListLoader] getRSInteractableDefListLoader: gia.B
Static Field [RSObjectDefLoader] getRSObjectDefLoader: sl.M
Static Field [[[[RSGround] getRSGroundArray: sv.k
Static Field [[ChatLine] getChatLines: au.e
Static Field [Z] isMenuCollapsed: uq.z
Static Field [NodeSubQueue] getCollapsedMenuItems: vs.f
Static Field [I] getMenuWidth: oga.c
Static Field [MenuGroupNode] getCurrentMenuGroupNode: qo.K
Static Field [I] getSubMenuWidth: rr.i
Static Field [I] getSubMenuX: mda.l
Static Field [I] getSubMenuY: ta.h
Static Field [I] getMenuOptionsCount: wp.a
Static Field [I] getMenuOptionsCountCollapsed: gw.j
Static Field [Z] isMenuOpen: jba.q
Static Field [I] getMenuX: oga.c
Static Field [I] getMenuY: ww.n
Static Field [NodeDeque] getMenuItems: vj.g
Static Field [RSItemDefLoader] getRSItemDefLoader: qw.u
Static Field [I] getDestX: jp.M
Static Field [I] getDestY: eda.e
Static Field [DetailInfoNode] getDetailInfoNode: we.T
Static Field [[TileData] getTileData: ko.e
Static Field [[RSGroundData] getRSGroundDataArray: la.o
Static Field [ServerData] getWorldData: kd.rb
Static Field [[I] getSkillLevels: in.K
Static Field [[I] getSkillExperiences: al.Q
Static Field [[I] getSkillLevelMaxes: hv.S
Static Field [I] getLoginIndex: qk.f
Static Field [Settings] getSettingArray: u.j
Static Field [HashTable] getRSInterfaceNC: gha.f
Static Field [I] getGUIRSInterfaceIndex: ks.c
Static Field [[[RSInterface] getRSInterfaceCache: pn.F
Of course, this probably still has some flaws, and can be adjusted to parse the other information contained in the file as well, however i just pulled down the basics for this. Not too hard adjusting it to your own needs really.
Good luck!
EDIT: I forgot to include one class in package, redownload and it’ll be fine. Sorry about that!