https://github.com/ananace/flist-sharp
The F-Chat client of the future.
https://github.com/ananace/flist-sharp
Last synced: 12 months ago
JSON representation
The F-Chat client of the future.
- Host: GitHub
- URL: https://github.com/ananace/flist-sharp
- Owner: ananace
- Created: 2016-01-13T05:26:13.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2016-12-25T22:01:38.000Z (over 9 years ago)
- Last Synced: 2025-02-24T05:12:12.577Z (over 1 year ago)
- Language: C#
- Size: 460 KB
- Stars: 3
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
The F-Chat communication library of the future.
====
Just my version of a library for making bots and chat clients to F-Chat, no real such libraries exist after all.
Note that this is still a ways away from being ready for prime-time use.
FList-sharp
-----------
A C# library for utilizing the F-List JSON API as well as FChat system.
### Working
- JSON API
- Ticket aquiring.
- Character data lookup.
- FChat connection.
- Auth & identification.
- Message parsing.
- Still lacking test data for a few message types.
- Events.
- Chat extension.
- Channel management.
- Character management.
- Basic message routing.
### TODO
- Clean up FChat connection, make it more logical.
- Connect should be split further into more functions.
- Add in all the admin features.
- Implement the last of the JSON API
- Add V2 endpoint
ConsoleMessenger
----------------
### Working
- Basic UI.
- Connection.
- Basic ticket store.
- Chatting.
- Channel joining.
- Automatic reconnection.
- Basic settings.
### TODO
- ~~Redo channel buffer to actually calculate message sizes correctly.~~
- ~~Proper scrolling of channel buffer.~~
- Support scrolling back into log files.
- Multi-line input box.
- Finish up input handling.
- ~~Cursor movement, delete, etc...~~
- ~~Command history.~~
- Tab-completion suggestions.
- ~~Add logging support.~~
- ~~Add userlist in some way. (Panel on the side?)~~ Preliminary implementation through `/who`
- Add channel list window.
- Finish status bar.
- ~~Log channel activity.~~
- ~~Add hilight system.~~
- Add tab-completion for nicks in chat.
- ~~Render chat messages properly.~~
- Be more graceful on exits.
- Improve UI.
- Only redraw when strictly needed.
- Use faster redrawing methods where applicable. (ChannelBuffer?)
- Properly clean screen space when redrawing.
- ~~Fix out-of-bounds assert in graphics when resizing.~~
### Implemented Commands
- `/channels` - List all the public channels. (Currently only downloads the list)
- `/clear` - Clears the current chat.
- `/clearall` - Clears all chats.
- `/connect` - Connect to the network using an earlier retrieved ticket.
- `/connect ` - Retrieve a ticket for the given account, then connect to the network.
- `/join ` - Join an official channel.
- `/joinp ` - Join a private channel.
- `/list [public/private]` - Retrieve new lists of public (official) / private channels.
- `/login ` - Identify and log in to the network as the given character.
- `/me ` - Send an emote message to the current channel.
- `/me's ` - Send an emote message to the current channel.
- `/em ` - Send an emote message to the current channel.
- `/em's ` - Send an emote message to the current channel.
- `/priv ` - Start a private conversation with the given character.
- `/prooms` - List all the private rooms. (Currently only downloads the list)
- `/roll ` - Rolls the dice or spins the bottle.
- `/set` - List all the settings along with their current values.
- `/set ` - Retrieves the given setting along with value.
- `/set ` - Set the given setting.
### Settings
- `application.use_test_endpoint` - `bool`, default `true`; should the connection be to test or live?
- `buffer.show_ads` - `bool`, default `true`; Should LFRP Ads be shown?
- `buffer.show_messages` - `bool`, default `true`; Should regular chat messages be shown?
- `buffer.messagetype` - `enum { ANSI, BBCode, Markdown, Plain }`, default `Plain`; How to render the messages?
- `buffer.sys_timeout` - `double?`, default `null`; How long system messages should be shown for? Null disables.
- `buffer.preview_timeout` - `double?`, default `null`; How long preview messages should be shown for? Null disables.
- `buffer.bell_on_highlight` - `bool`, default `false`; Should a bell sound on highlights?
- `buffer.max_messages` - `int`, default `100`; How many messages should be stored in scrollback?