LandSandBoat / server

:sailboat: LandSandBoat - a server emulator for Final Fantasy XI
https://landsandboat.github.io/server/
GNU General Public License v3.0
301 stars 612 forks source link

Client commands need to be audited #637

Open zach2good opened 3 years ago

zach2good commented 3 years ago

I was flicking around in the wiki and I saw /volunteer, and a few others I didn't recognise. Using /? dumps a list of commands you're allowed to use. We should probably take a look and see if we implement all of these:

/?
/ver
/say
/s
/shout
/sh
/yell
/tell
/t
/party
/p
/linkshell
/l
/linkshell2
/l2
/unity
/u
/assistj
/aj
/assiste
/ae
/emote
/em
/chatmode
/cm
/nominate
/propose
/vote
/volunteer
/vol
/echo
/random
/translate
/macro
/befriend
/attack
/a
/attackoff
/target
/ta
/targetpc
/targetnpc
/targetbnpc
/targetopp
/assist
/as
/item
/itemsearch
/equip
/magic
/ma
/weaponskill
/ws
/monsterskill
/ms
/mount
/mo
/ninjutsu
/nin
/song
/so
/jobability
/ja
/pet
/bstpet
/recast
/returnfaith
/refa
/returntrust
/retr
/heal
/sit
/sitchair
/jump
/fish
/dig
/help
/h
/dismount
/shoot
/range
/ra
/throw
/check
/c
/checkname
/cn
/checkparam
/logout
/shutdown
/search
/sea
/friendlist
/flist
/blacklist
/blist
/mutelist
/mlist
/playtime
/playlog
/clock
/makelinkshell
/makelinkpearl
/makeli
/makelinkshell2
/makelinkpearl2
/makeli2
/breaklinkshell
/breaklinkpearl
/breakli
/keyitem
/quest
/mission
/map
/regionmap
/rmap
/besiegemap
/bmap
/campaignmap
/cmap
/colonizationmap
/colmap
/supportdesk
/sd
/helpdesk
/partycmd
/pcmd
/alliancecmd
/acmd
/join
/decline
/automove
/follow
/lockon
/invite
/inv
/autogroup
/ag
/recruit
/rec
/recruitlist
/rlist
/partyrequestcmd
/prcmd
/anonymous
/anon
/displayhead
/hidefaith
/hidetrust
/emotefaith
/emotetrust
/autotarget
/online
/away
/hide
/invisible
/names
/ignorepet
/ignorefaith
/ignoretrust
/areaeffect
/aoe
/partyinfo
/bank
/locker
/storage
/satchel
/sack
/case
/wardrobe
/wardrobe2
/wardrobe3
/wardrobe4
/bank2
/mailbox
/deliverybox
/sendpost
/layout
/remodel
/garden
/furcc
/layoutctrl
/statusparty
/focustarget
/statustimer
/groundtargetst
/gtst
/targetcharaeffect
/jobmasterdisp
/quarry
/scout
/sprint
/seacom
/sc
/seacomup
/scu
/yellsw
/assistjsw
/assistesw
/mentor
/blockaid
/blockhelp
/battlebgm
/bellsw
/mutebgm
/mutese
/lockstyle
/lockstyleset
/lastsynth
/equipset
/timestamp
/guide
/primer
/point
/bow
/salute
/kneel
/laugh
/cry
/no
/nod
/yes
/wave
/goodbye
/farewell
/welcome
/joy
/cheer
/clap
/praise
/smile
/poke
/slap
/stagger
/sigh
/comfort
/surprised
/amazed
/stare
/blush
/angry
/disgusted
/upset
/muted
/doze
/panic
/grin
/dance
/dance1
/dance2
/dance3
/dance4
/think
/fume
/doubt
/sulk
/psych
/huh
/shocked
/hurray
/toss
/bell
/jobemote
/aim
/?
/servmes
/smes
/linkshellmes
/lsmes
/linkshell2mes
/ls2mes
/wait
/localsettings

Additional Information (Steps to reproduce/Expected behavior) :

zach2good commented 3 years ago

Adding to my original point: /vol doesn't do anything - it fails. I tried /vol 0, /vol 1, /vol Hello /vol <me> etc., they don't fail out. There is no additional packet activity coming from these.

Xaver-DaRed commented 3 years ago

Regarding /vol & /volunteer https://ffxiclopedia.fandom.com/wiki/Command/volunteer

Seems like an old/avandoned feature.

Its a pretty long list. Some are emotes and some are shortened versions of existing commands.

TeoTwawki commented 3 years ago

relevant old old old issue for /nominate : https://github.com/DarkstarProject/darkstar/issues/2900

incidentally the GM message packet works very much like this command and its response command /vote except that the player is forced to answer in the case of the GM message.

TeoTwawki commented 3 years ago

Adding to my original point: /vol doesn't do anything - it fails. I tried /vol 0, /vol 1, /vol Hello /vol <me> etc., they don't fail out. There is no additional packet activity coming from these.

no GM dll in client folder = can't do GM things. there was a leaked copy years ago but SE did a good job of DMCA'ing it out of existence.

ghost commented 3 years ago

I was playing around with the /volunteer command a couple months ago and found that it does send out a packet. Verified that it still does with current retail.

It sends out a packet of type 0x1E, where the body is a 4-byte aligned string: /volunteer Volunteer what without anything targeted results in 1E0A6405566F6C756E7465657220776861740000 (Volunteer what\0\0) /volunteer I choose you with a Savanna Rarab targeted results in 1E127505492063686F6F736520796F7520543120536176616E6E61205261726162000000 (I choose you T1 Savanna Rarab\0\0\0)

A bit useless xD

zach2good commented 3 years ago

@mehvvy A little useless, but there's no harm in handling the packet and providing a binding to it 🤷 , maybe someone later on will find a use for it

WinterSolstice8 commented 2 years ago

(Partial?) /tell audit resulted in #2570