Kepler - Java v14+ server (SnowStorm, BattleBall, Camera, Wobble Squabble)

Quackster

a devbest user says what
Aug 22, 2010
1,763
1,234
Hey guys, just did a small update to Kepler since it was never fully "finished" - only in a workable hotel state pretty much. Here's my changelog below which should make the server more enjoyable to use.

Changelog

- Club gifts added (default is one gift per month).
- Club clothes added (user editor is updated on login and HC purchase).
- Added user shutup/listen in rooms.
- Fixed populated rooms not showing in the navigator.
- Fixed diving score for longer usernames.
- Added same IP check for MUS camera packet handling so random connections cannot imitate a user.

To change the club gift interval edit the following in the in the settings table:

(The server will need to be started at least once with correct db details before these values appear in the database)

club.gift.timeunit (right now it's DAYS, can be , etc)
club.gift.interval (default is 31 of that interval)

So if you change the interval to 7 and keep the timeunit to DAYS, the gift will be once per week instead of month

If you're already using Kepler, run this migrate SQL for v1.16

Code:
CREATE TABLE `users_club_gifts` (
  `user_id` int(11) NOT NULL,
  `sprite` varchar(50) NOT NULL,
  `date_received` bigint(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

CREATE TABLE `users_mutes` (
  `user_id` int(11) NOT NULL,
  `muted_id` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

ALTER TABLE `users` ADD `club_gift_due` BIGINT(11) NOT NULL DEFAULT '0' AFTER `club_expiration`;

UPDATE catalogue_items SET sale_code = (SELECT sprite FROM items_definitions WHERE items_definitions.id = catalogue_items.definition_id) WHERE page_id = 27 AND is_package = 0;

ALTER TABLE `settings` CHANGE `value` `value` TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '';

UPDATE users SET club_subscribed = 0;

Screenshots

K7jcvCW.png


pVSXPFk.png


Download

Compiled v1.16 jar is available:
 

Quackster

a devbest user says what
Aug 22, 2010
1,763
1,234
Okay so the next update ended up being far more larger than I expected, at first it was to fix the voting system so that room rating votes expire after a month, and then I noticed a part of the gift system was broken, and then I noticed there was some issues with the catalogue and other items, and the list of things to do became bigger and bigger..

Changelog

- Added: Wobble Squabble! Yes, Wobble Squabble is now added. [MENTION=566036]m.tiago[/MENTION] I hope you enjoy. :): Logic has been shamelessly taken from Blunk.
- Added: New voting/room rating system where votes expire after a month, like official Habbo.
- Added: Completely redid the catalogue with the correct (official) texts, added some pages, and fixed some categories of items.
- Added: The Club Shop catalogue page (the special club furniture you can purchase) if you're HC, it only shows if you're a member of Habbo Club.
- Added: Missing HC carpet for gifts.
- Added: Presents page.
- Added: Grunge furni line.
- Added: Romantique furni line.
- Added: All Area coloured items.
- Added: All Pura coloured items.
- Added: All Iced coloured items.

- Fixed: "Unexpected exception in the selector loop." with the help of [MENTION=2000144688]hella[/MENTION]s
- Fixed: Can longer swim after diving in the non-accessible pool area.
- Fixed: Deliver present information window (open opening present) now correctly shows posters and coloured items (example, rollers and mode furniture are white but are defined with colours).
- Fixed: All item names and descriptions.

Battleball bugs fixed:

- Fixed: Teleportation of other users when using cannon power up in BattleBall.
- Fixed: Still able to bounce after using the bomb power up while bouncing in BattleBall.

Screenshots

Wobble Squabble:

uRCPPa0.png


rLNf3Ol.png


Catalogue screenshots:

HC Club Shop page:
lUvwcTK.png


HC Info page(s):
uqXqW8p.png


All Area colours
bLVIHbZ.png


Trax soundsets sorted into their categories:
Nyx8k1l.png


Using proper deals icon for rollers:
5shQUDB.png


Download

The compiled binary is available at:

If you're already using 1.16 then I suggest you run this migration sql file otherwise you will not be able to take advantage of the newest features. Always do a backup before making permanent changes to the database.

The migration SQL:

DCRs

I've uploaded my personal DCRs for everyone to use, which I strongly recommend using as a lot of missing stuff has been added back, such as soundsets and missing c_images.

 
Last edited:

Quackster

a devbest user says what
Aug 22, 2010
1,763
1,234
Small hotfix to address hitting from far away distance in Wobble Squabble, ticket checking for both players in Wobble Squabble and also using latest SQL in release, no migration is necessary, unless you're using an older version (if you're running v1.16 then use the v1.17 migration).

 

Macemore

Circumcised pineapples
Aug 26, 2011
1,681
819
Great work Alex! Thank you for your contribution to this dying community.

Is it possible to make room votes expiration to be configurable? Enable/Disable, and configure the expiration timeframe?
 

Quackster

a devbest user says what
Aug 22, 2010
1,763
1,234
Great work Alex! Thank you for your contribution to this dying community.

Is it possible to make room votes expiration to be configurable? Enable/Disable, and configure the expiration timeframe?
Yeah it's possible, do you require it so urgently?
 

Sledmore

Chaturbate Livestreamer
Staff member
FindRetros Moderator
Jul 24, 2010
5,194
3,901
Incredible mate, love it. The attention to detail on the entire project & features is admirable. Releasing it as-well is awesome, most people would keep a project like this as a personal trophy.

Good job with this, Alex!
 

Quackster

a devbest user says what
Aug 22, 2010
1,763
1,234
Absolutely not, I just thought of it when I read your update log. Thanks mate!!

Alright, it's not configurable yet, by the way. I was just saying that it's possible for me to make it configurable.

Incredible mate, love it. The attention to detail on the entire project & features is admirable. Releasing it as-well is awesome, most people would keep a project like this as a personal trophy.

Good job with this, Alex!
Thanks Sledmore! I noticed there wasn't any decent Shockwave servers so I'm trying to revive the community. :)
 

bumzag

New Member
Oct 3, 2017
3
0
@Quackster

Who the hell is Aaron and why do you hate him so much? Lmao
Also why is there a dump of default users for people like Meth0d and Nillus with admin rights in holodb.txt?
 

Quackster

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

Who the hell is Aaron and why do you hate him so much? Lmao
Also why is there a dump of default users for people like Meth0d and Nillus with admin rights in holodb.txt?
Aaron is a user called Sojobo who created Phoenix and has no talent, as he ripped off open source work.

The holodb.txt is from Holograph servers used for the development of Kepler.
 

Parsov

Member
May 18, 2016
315
206
@Quackster

Who the hell is Aaron and why do you hate him so much? Lmao
Also why is there a dump of default users for people like Meth0d and Nillus with admin rights in holodb.txt?

Nillus was one of the first Habbo Server developers along side with Jaex and more legends from back in the day. Back then C# Emulators were only becoming a thing as most of them were using Visual Basic. Aaron was some lad who took Uber Server and then started to sell it which is not good and that's why at the end he got sued.

Kepler

What is this?

Kepler is a Habbo Hotel emulator that is designed to fully emulate the v14 version from 2008 era. The server is written in Java (JDK 11) and it's using various libraries, which means it's multiplatform, as in supports a wide range of operating systems. Windows, Linux distros, etc.

The server has many features added, and a lot of configuration settings. Most of the configuration settings will be explained below.

Libraries Used

- Netty

- HikariCP

- SLF4J

- Log4j

- Apache Commons-Configuration

Features

  • User
    • Login by SSO ticket
    • Load fuserights
    • Load credits
    • In-game register


  • Navigator
    • Lists all public rooms
    • Lists all private rooms
    • Navigator category management with rank checking for private rooms
    • Navigator category management with rank checking for public rooms
    • Show recent private rooms created in the categories even if the room owner wasn't online
    • Create private rooms using the navigator
    • Show own rooms
    • Hide room owner name
    • Edit room settings
    • Delete room
  • Habbo Club
    • Purchase Habbo club
    • Expiry of Habbo club
    • Show days left
  • Messenger
    • Search users on console
    • Send user a friend request
    • Accept friend request
    • Reject friend request
    • Send friend message
    • Delete friend
    • Change messenger motto
    • Mark messages are read
    • Show offline messages
    • Follow friend
    • Automatic update friends list
  • Private room
    • Walking
    • Walk to door
    • Chat (and message gets worse quality if you're further away from someone in public rooms)
    • Shout
    • Whisper
    • Password protect room
    • Use room doorbell
  • Public Room
    • All possible public rooms added (some may be missing)
    • All public rooms are fully furnished to what official Habbo had
    • Sitting on furniture in public rooms
    • Walk between public rooms
  • Lido and Diving Deck
    • Change clothes working (with curtain closing)
    • Pool lift door closes and opens depending if a user is inside or not
    • Buying tickets work for self and other players
    • Diving
    • Swimming
    • Queue works (line up on first tile and the user automatically walks when there is a free spot)
    • Lido voting
  • Item
    • Show own hand (inventory) with items in it
    • Place room items
    • Move and rotate room items
    • Pickup room item
    • Place wall items
    • Pickup wall items
    • Stack items
    • Apply room decorations
  • Completed Item Interactions
    • Dice
    • Bottles
    • Teleporters
    • Rollers
    • Scoreboard
    • Lert
    • Camera
    • Gate
    • Trax
  • Catalogue
    • Show catalogue pages
    • Show catalogue items and deals (aka packages)
    • Purchase items and packages
    • Purchase items with credits
  • Games
    • Chess
    • Tic-Tac-Toe
  • BattleBall
    • Join games
    • Cancel games
    • Spectate games
    • All power ups
    • Flood fill
  • Ranked features
    • Add badge automatically if they are a certain rank
    • Command registration checking
  • Commands
    • :about
    • :help
    • :reload items/settings/models
    • :pickall
    • :whosonline/usersonline
    • :givedrink <target>
    • :afk/idle
    • :motto
    • :givebadge
    • :setprice <sale code> <price>
    • :setconfig <config entry in settings table> <new value>
    • :hotelalert <msg>
    • :talk <msg>

Screenshots

(Hotel view)

8eFvtdA.png


(Automatic rare cycler)

8RTFFqD.png


(Camera)

emseVbU.png


(BattleBall)

a3MgkzU.png


eUGmcwR.png


(Chess)

xundc8M.png


(Tic Tac Toe)

tTG5SVE.png


Frequently Asked Questions (FAQ)

What database system does this use?

Kepler was designed with MariaDB in mind, which is a fork of MySQL and it's compatible with all programs libraries designed to work with MySQL.

How can I customise my server?

Upon initial loading of Kepler, it will insert its default configuration options into the settings table, from there, you can edit the automatic rare system, enable/disable and set the welcome message, and many other types of configurations.

What's the automatic rare system?

This is a system designed to rotate a selection of rares in however many days/hours/minutes you set. To edit this, adjust the following:

  • rare.cycle.refresh.timeunit

  • rare.cycle.refresh.interval

The following valid timeunits are: DAYS/HOURS/MINUTES/SECONDS and the interval is how many of that timeunit you want before the next rare happens.

For example, if I set the interval to 1 and then the timeunit to DAYS, then a new rare will cycle every 1 DAYS.

How do I configure rare prices?

First of all, it finds any items with the catalogue header and "catalog_rares_headline1" and with a minimum rank allowed of 5, and considers any items in those pages to be rares.

To configure prices, in the "settings" table, the entry "rare.cycle.pages" has a value looking like this:

Code:
28,3|29,3|31,3|32,3|33,3|34,3|35,3|36,3|40,3|43,3|30,6|37,6|38,6|39,6|44,6

The first number is the page id, the second number is the number of hours required (taking in the credit scheduler into account) before that item is affordable. This doesn't control which items end up in the rare cycle by the way, just the hours required.

For example, if you set 20 credits every 15 minutes, and made it so you need 3 hours to earn an item, it would cost 240 credits.

How do people get credits?

The current system is designed so you need to be in a room when you get credits, not afk on the hotel view, there's three settings which adjust how many credits you get, and how often.

  • How many credits to receieve: credits.scheduler.amount
  • How many timeunits you set are required, in numbers (eg 1 for 1 DAY): credits.scheduler.interval
  • The unit how often to get credits (DAYS/HOURS/MINUTES/SECONDS): credits.scheduler.timeunit

Is there an RCON library to change users looks etc remotely?

Yes, have a look at by [MENTION=1333470627]Hoshiko[/MENTION]:





Download:

The full source is at:

Compiled jar:

Massive Thanks To:

  • Hoshiko
  • ThuGie
  • Alito
  • Ascii
  • Lightbulb
  • Raptosaur
  • Romuald
  • Glaceon
  • Nillus
  • Holo Team
  • Meth0d
  • office.boy
A bit late but great release! Love it.
 

Quackster

a devbest user says what
Aug 22, 2010
1,763
1,234
Thanks @Cheeky68! I feel bad I forgot to post on the thread about the new update.

Kepler has been released for v1.18, contains v15 support which is mainly the jukebox and Trax machine playlists! But also bugs have been fixed and some functionality has changed, read the changelog below.

Changelog

  • Fixed: Tiles getting locked when users leave room while walking.
  • Fixed: Fixed cannon and bomb power up not always working with its intended behaviour.
  • Fixed: Stuck players in queue on Wobble Squabble.
  • Fixed: NullPointerException when searching rooms.
  • Fixed: CARRYDRINK handling for Mochamaster
  • Fixed: Grunge bench and shelf length and width.
  • Fixed: Habbo Club gifts.
  • Fixed: Camera not working.
  • Fixed: Various vending machines.
  • Added: Bomb radius power up increased in BattleBall.
  • Added: Prevent people from using a node category for their private rooms.
  • Added: Item queue saving to limit database stress.
  • Added: Burning songs.
  • Added: Fully implemented Jukebox.
  • Added: Ability to disable the credits scheduler.
  • Added: Ability to change rares page text with "rare.cycle.page.text" configuration, with {rareCountdown} being the variable to use for the countdown until the next rare.
  • Added: REMOVEITEM handle (ability to delete floor furniture).
  • Added: Refresh figure while inside room for v17.
  • Changed: Distance checking on Wobble Squabble hits.
  • Changed: Soundset items no longer get deleted from the database and inserted again when inserting and ejecting soundsets from the Trax machine.
  • Changed: Allow people to queue songs on the Jukebox.

Migration to v1.18 SQL from v1.17:

If you want to use the v15 features, go to settings.ini and replace the "version" setting with 15 from 14, and then replace hh_messenger.cct, hh_furni_classes.cct and hh_soundmachine.cct with the files attached below.

qYffHuI.png


J0zzqjD.gif
 

Attachments

  • v15_ccts.zip
    241.1 KB · Views: 24

Cheeky68

New Member
Jan 2, 2018
17
15
Np, I check often your github even if my project is late because my job... no time at this moment...



Perfect work as always! Many fix, jukebox, it is evolving so well, compatibility with different versions... Awesone. But the best is the meaning of detail.

I've question... do you think to add moderation system?


I find it unfortunate that people prefer newer versions... i must to be very nostalgic x)
 

Users who are viewing this thread

Top