Kepler - v13 Emulator [C11, SQLite3, libuv]

Status
Not open for further replies.

Quackster

a devbest user says what
Aug 22, 2010
1,763
1,234
So I decided to make from V13 to V18 because there was features that were missing from V13, such as the ability to delete posters/wall furniture, you could only pick them up meanwhile you had the option to delete floor furniture. Also room rating and recommended rooms are a nice addon too.

Updates


- Added: Floor item placement.
- Added: Wall item placement .
- Added: Furniture pickup.
- Added: Furniture move/rotate support.
- Added: Stacking support.
- Added: Wall and floor decoration support.
- Added: Trophy support.
- Added: Support for items to be placed on top of rugs and stuff without issue.
- Added: Delete room along with furniture, kicks all users inside room.
- Added: Buying catalogue deals
- Added: Ability for room owners to lock their rooms so users would have to knock to enter.
- Added: Add face gestures/mouth movement when user talks
- Added: Show users the current state of public room items when they join, also reset the pool lift/pool change booths if a user disconnects inside of one.
- Added: Recommended rooms on navigator

- Fix: The amount of items received when buying deals
- Fix: Setting password setting when updating flat settings

Some stuff still needs to be polished like for example when you pick up an chair underneath a user it doesn't update them to stand up, and vise-versa, but that can be easily added.

anR7WkQ.png


phBoWe9.png



MLf4ZDk.png


rAI5lwM.png

 
I never thought you'd take it this far in C, I thought you'd loose motivation but you don't stop! Keep on going, love the twitch streams! :D

Thanks ;) there was an early point where I was stuck on a bad bug and I was almost about to give up but that bug has long been fixed. :)
 

Quackster

a devbest user says what
Aug 22, 2010
1,763
1,234
Changelog

- Added: Rollers, which are now fully functional, supports stacked items and players!
- Added: Carry items, ability to use fridge and grab a drink from it, and the player will take a sip from it every defined amount of seconds.
- Added: Furniture interaction, double click furniture to turn them off/on, supports gates, fridges, etc. Still need need to support dice/spinning bottles.
- Added: Delete floor item furniture.
- Added: Delete wall item furniture.

- Fixed: Allow sitting on furniture when the furniture slides.
- Fixed: When grabbing a drink, remove all other drink statuses first, so there isn't duplicate drinking of items within the users status.
- Fixed: If the users destination was changed prior to started to walk, for example it's turned from valid to invalid (such as a gate closing or an item being placed), they'll now stop stepping on to the invalid tile.

(this is an animated gif)
bHLRTk0.gif


Looks awesome! Nice to see some attention being given to the old school era, cool project.

Thanks! :) We're making old school great again ;)
 

Quackster

a devbest user says what
Aug 22, 2010
1,763
1,234
It's that time again, for you know what? Me to cancel the development! Just kidding, here's a changelog:

Changelog

The people who are tagged, are the ones responsible for that feature.

Added: SSO login (@Hoshiko).
Added: Guestroom voting (@Hoshiko).
Added: Carry handitems/drinks.
Added: Favourite rooms.
Added: Room rights.
Added: Room search.
Added: Command processing (@Hoshiko).
Added: Look to user when they speak.
Added: Delete room and all its furniture, will kick all users, too.
Added: AFK timer in rooms (default is 5 minutes)
Added: Lido dive kick timer (default is 1 minute)

Update: Hashing passswords now (using the Argon2 algorithm) (@Hoshiko).
Update: Fancy colorized logging (@Hoshiko).
Update: SQLite performance improvements (connection gets reused, WAL journal_mode enabled) (@Hoshiko).
Update: Clean up correctly after SIGINT/Ctrl-C (@Hoshiko).
Update: Infobus and the Rooftop Rumble now has the correct public items.
Updated: Add scripting protection so only legitimate divers can broadcast their diving moves.

Fixed: Segfault when trying to re-enter a room where the owner wasn't online.
Fixed: Couldn't swim in the pool in the main Lido once entered.

Screenshots

(Fancy logging)
1xsijci.png


(Search rooms)
UTj82n1.png
 

Quackster

a devbest user says what
Aug 22, 2010
1,763
1,234
Well shit I forgot to update this thread, well enjoy a massive post!

On a few things that I'd like to add about the future development of Kepler. Don't worry, the development won't be closed, it's actually more alive than ever before!

Moving from v18 to v21:

I've made the transition from v18 to v21, yes that's right it's yet another version change, the reason being is because the "remixed" v18 dcrs are broken, they did not have working teleporters, they'd always appear in a constant "flashing effect" state, and trax songs would not be playable, this was able to be reproduced on various other servers too (Debbo, Marks, etc). The v13 dcrs still had this functionality working but I did not want to downgrade back to v13.

The advantages of using v21 still isn't widescreen (just like oldskool versions), has the oldskool console messenger but has added features like the events system, chat bubbles etc, and with this console, it still gives you the ability to "follow" users despite the console still looking older. :cool:

There won't be any version changes in the future, but I may add the ability to switch on-the-fly between different Shockwave versions of Habbo in later stages of development.

There will be a CMS for Kepler:

I won't say much because I'm not working it - I know who is though, and they'll make a dev thread soon, but it will support registration, login and SSO because the v21 client no longer allows in-game registration.

Open-source contributions:

as you can see by the amount of accepted requests, if you find any bugs and you have the ability to fix yourself, then you can feel free to contribute to the source if you want. Be aware though if I'm working on a feature, and you end up doing the same feature, my changes will take precedent because I'm the owner of the repository. So far I've had four contributors and they're all mentioned in the :about command.

If you do send a pull request, I may accept it and then neaten it up a little bit, or refactor it, but the essence of your work will definitely still be there, I'd only rename functions to fit the Kepler and C naming convention, or I'll make sure that all the variables allocated on the heap are properly disposed of when they're no longer required.

Updates

The Java development is going along super nicely, it's like 2-3 features away from being on par with the C version, and it's a lot more bug-free!

- Added: :givedrink command.
- Added: :sit command.
- Added: Roller animation (you know, when the conveyor belt moves).
- Added: AFK/idle timer like how Habbo does it, after 5 minutes idle, your character sleeps, and after the next 10 minutes your character will be kicked from the room (15 minutes total).
- Added: Walkways between public rooms, Habbo Lido to the diving deck, Lower Hallways, etc.
- Added: Furniture interaction, toggle items on/off, etc.
- Added: Post-It/Sticky handling.
- Added: Vending machine support in both public rooms and user flats (private rooms).
- Added: When writing "o/" your character will wave.

- Modified: LOOKTO so it supports head rotation when users are sitting.
- Modified: Room manager caching system so it only caches rooms that have users inside.

- Fixed: Slide-rollback bug where a user would walk off the roller, but the next cycle would slide you back.
- Fixed: Users with rank 1 couldn't create rooms due to a broken fuseright check.

Pictures

Here's a little gif demonstrating the sitting and giving drink, etc!

2018-05-31_03-00-51.gif


Made my pathfinder more like Habbo, after what [MENTION=389088]HabboTugaa[/MENTION] mentioned.

CWzyIFl.gif


Changelog

The following are my changes:

- Add room dimmer feature.
- Add trax/sound machine feature (with playlists, create/edit/delete songs).
- Add users online command.
- Add pickall command.
- Add sit command
- Add stack height limit for rollers.
- Add turn off room dimmer when picked up.
- Add can't walk diagonal between two non-walkable tiles.

- Fix show last hand items when items are purchased.
- Fix rolling items into the walls.
- Fix rolling items into solid items.
- Fix ChannelClosedException on room leave as the server tried to send a packet to a closed socket, if the user was inside the pool lift or the changing rooms.
- Fix MoodlightDao contains item with the proper query select.
- Fix sit status getting removed when sitting on a chair on a roller.
- Fix dice not resetting when picked up and couldn't re-roll when placed again, the workaround before was to relog.
- Fix when rolling into furniture the entity didn't interact with the furniture (eg from standing into sitting).
- Fix not been able to use dice when being on a tile diagonal next to it.
- Fix diving elevator tile becoming locked after the first diver.
- Revert rollers to actual Habbo logic where it required a free tile in front of each roller to roll into it.

[MENTION=1333470627]Hoshiko[/MENTION]'s changes:

- Add database migrations, which are used by the Docker container to allow for easy database changes during continuous deployment
- Add RetroRCON library, an gRPC service we use to implement RCON (when [MENTION=1333470627]Hoshiko[/MENTION] implements housekeeping features and tidied up the example code, [MENTION=1333470627]Hoshiko[/MENTION] will announce an development thread)
- Add ability to change MySQL port Kepler uses to connect to the database
- Add dispose() method to NettyServer to allow for graceful (disconnecting users) shutdown of Kepler
-
- Port CONVERT_FURNI_TO_CREDITS to the Java version (credits to [MENTION=1333440698]Navine[/MENTION] for the original C implementation)
- Port TRY_LOGIN to the Java version (uses LazySodium for Argon2 password hashing)
- Implement DICE_OFF and THROW_DICE
- Implement GET_SOUND_SETTING and SET_SOUND_SETTING
- Implement :givebadge and :reloadcatalog commands
- Implement getOnlineCount, ping, isUserOnline and refreshAppearance RCON functions
-
- Fix listening on IPv6 addresses
- Fix lingo injections from string values in PlayerDetails.fill and RoomData.fill
- Improve the way currencies are handled, it now is aware of multiple applications modifying currency values
- Improve :status to show JDK information

5a9ZINV.png


cY0FAC5.png


Rewrote some of the roller behaviour code, so all entities and items are checked if they can roll in the first loop, and then the second loop will roll the ones which can roll. The end result makes the rollers work like they do on Habbo as an actual queue, if the roller path is almost filled up. :):

NGcoSBy.gif

 
The server pausing bug has been fixed, it was a complicated bug but basically it was opening a transaction to query player data, and then it would happen another transaction inside of that one to query badges, so that's one extra connection being used while the first connection wasn't given back to the pool, as a result the pooling would lock up if many people requested player data at once (eg, when refreshing friends list). So the querying was optimised and the bug was fixed.

Changelog

- Added: Camera.
- Added: Camera catalogue pages (pages 1 & 2).
- Added: Buying film.
- Added: Free 2 pieces of film for every camera purchase.
- Added: Gifting items to other Habbos and yourself.
- Added: Upper Hallways (with all connecting rooms).
- Added: Stop user from walking when they are using teleporters.
- Added: Interacting with wall items.
- Added: Case-insensitive console and room search.
- Added: Old-school Habbo like stacking with z shelves and rollers.
- Added: Your chat message vanishes when chatting and but no one is close enough to hear it (they see your message go up in the air, but you see your message fine).

- Fix: Major critical server freezing bug, where the problem was the database pool became locked up after chaining connections inside another one.
- Fix: Furniture heights on pieces of furniture.
- Fix: Allow user to reach teleporters and ignore max jump/min drop, just like official Habbo.
- Fix: Reset teleporter doors when they're moved, as they'd get saved with the open door state.
- Fix: Ability to place rollers on rugs (Habbo doesn't allow it, but I'll make Kepler allow it).
- Fix: When a user slid into a chair from a roller, they wouldn't automaticall sit (yes, I broke it again...).
- Fix: Lert/Scoreboard not working.
- Fix: Various cases of rollers freezing when an entity handles is around the furniture of a roller.
- Fix: Players had the ability to kick people off sitting on their chair when on rollers.

Oh yes, I added camera. :wink:

N0WEEaQ.png


JlSFcua.png


Upper Hallways has been added (Lower Hallways with all connections was already added ages ago):

A good map of the Upper Hallways:

BWP8ZnA.png

 
Changelog:

- Rollers (now 100%, yes I'm serious), cannot walk into furniture, cannot roll furni or players into each other, etc.
- Players getting stuck when crossing between public rooms (magic tiles, etc) and can't walk until the first user walks out.
- Disable door locations when they're on the same tile as a magic tile, so you don't accidentally get kicked when crossing between rooms.
- Delay player more when using teleporters so they cannot immediately walk out.
- I added Cunning Fox Gamehall rooms (with all walkways connected).
- Added Battleball and Snowstorm lobby.
- Moved all public room furniture and external texts to database (to make deploying easier).
- I added Plasto furniture.
- Added Club Orient / Star Lounge rooms.
- Added join/leave mid-game for Poker (just the support coded for it for now).
- Added select side in Tac Tac Toe and show the players name who's playing.

- Fixed head rotation becoming a bit fucked up when sitting down after standing next to someone who spoke.
- Fixed yellow outline of a tile that didn't exist near chat window..
- Fixed rolling into chair (again).
- Fixed walking into fountain on gamehall.
- Fixed a bug where if a user sat down and another user got up from the chair, a panel would still open.
- Fixed bed planking (but not completely...).

Changes from [MENTION=1333470627]Hoshiko[/MENTION]:

- Fixed room rights not being removed by implementing YOUNOTCONTROLLER.
- Room rights are now no longer being shown in public spaces.
- Fixed NumberFormatException in TRYFLAT.
- Room owners could vote on their own room, this has been fixed.

- Fixed vote UI not disappearing when voting by forcing getVotes RoomDao function to return 0 if the sum of votes is negative.
- Implemented INFO_HOTEL_CLOSED and INFO_HOTEL_CLOSING to notify users of maintenance.
- Implemented HOTEL_LOGOUT for proper user disconnection.

One of the first servers to get Tic Tac Toe working and operational... :D:

(it's live on right now)

sSEhvyF.png


Can no longer roll furniture into furniture:

bhCsHjx.gif


Shutdown command by [MENTION=1333470627]Hoshiko[/MENTION]:

cXsusIU.png


And the logic for the other games (sitting next to a player, etc) is coded as well, but only Tic Tac Toe is complete right now.

k5ayggz.png


bBFloTh.png
 
Status
Not open for further replies.

Users who are viewing this thread

Top