Coder Social home page Coder Social logo

quackster / havana Goto Github PK

View Code? Open in Web Editor NEW
110.0 5.0 39.0 7.63 MB

A server created in Java designed to revive Habbo Hotel v31 from the 2009 era.

License: GNU General Public License v3.0

Java 79.18% PHP 0.02% Smarty 20.66% Batchfile 0.07% Shell 0.07%
2009 emulation emulator habbo java server private-server

havana's Introduction

Information

Originally started as a fork from Quackster/Kepler, this is a server created in Java designed to revive Habbo Hotel v31 from the 2009 era and its inception was in early 2018 as a side project. Havana is the most complete v31+ server to date, this was undertaken by various reverse engineering efforts of the Shockwave client throughout the years to achieve this.

Join the Oldskooler Forum discord for retro developers! https://discord.oldskooler.org/

Havana has been an independent project, almost entirely developed by myself for 4 years straight. This project means a lot to me, and was always going to be released as open-source work. I am a firm believer in open-source and free software for everybody.

Sulake used the Adobe/Macromedia Shockwave as its multimedia platform for their game (Habbo Hotel) from 2001-2009. In the last year, Habbo made the move to the Adobe Flash client, and then in 2020 made the switch to the Unity engine, while still maintaining their flash client.

Nowadays, the Shockwave client cannot be played in modern browsers as they have removed NPAPI support due to deprecation, end of life support and therefore must be played on forks of browsers that still have the NPAPI enabled.

The reason why Shockwave emulators exist is for multiple reasons, the first is that Habbo uses a virtual currency called credits which is spent using real money and makes it a pay to win game, our own faithful recreation of Habbo can make credits free for everybody. The second is the fact that modern Habbo still lacks features that were once available to the users that played during the Shockwave-era - and is thus, to be intended to be used for educational purposes only as a preservation effort for an old game.

Features

Server

  • Handshake
    • Login via SSO ticket
    • Login via username/password
    • Diffie-Hellman two-way client/server encryption (v28+)
  • Games
    • Battleball
    • Snowstorm
    • Wobble Squabble
    • Tic Tac Toe (available in Cunningfox Gamehall)
    • Battle Ships (available in Cunningfox Gamehall)
    • Chess (available in Cunningfox Gamehall)
  • Catalogue
    • Main/sub category page support
    • Catalogue pages
    • Catalogue items
    • Purchasing from catalogues
    • Effect previews
    • Pixel rental previews
    • Automatic rotation of collectibles
    • Redemption of vouchers
  • Effects
    • Purchasing effects
    • Effect expiry
    • Configurable effect duration
  • Navigator
    • Recommended rooms
    • List public rooms
    • Room categories
    • Favourite rooms
    • Room search (including filtering with owner:)
  • Rooms
    • Create private rooms
    • Edit private room settings
    • Enter private rooms
    • Private room doorbell
    • Private room ratings (default expiry over 30 days)
    • Enter public rooms
      • Public room furniture
      • Pool ladders (swimming)
      • Pool diving deck (diving)
      • Public room bots (your classics such as Piers the Habbo Kitchen chef!)
      • All Infobus support
    • Show tags on user
  • Items
    • Inventory
    • Item purchasing
    • Sit on chairs
    • Lay on beds
    • Trophies
    • Coin redeeming
    • Dice rolling
    • Wheel of fortune
    • Love randomizer
    • Scoreboard
    • Totem head/leg/planet interaction to gain special totem effects
    • Vending machine interaction
    • Teleporters
    • American idol voting system
    • Rollers
    • Gates
    • One-way gates
    • Photos
    • Song disks
    • Presents
    • Room dimmers
  • Trax Machine
    • Create music
    • Save music
    • Delete music
    • Burn disk
  • Jukebox
    • Play disks
    • Queue multiple disks
  • Camera
    • Take photos
    • Load photos
  • Messenger
    • Status update
    • Send friend request
    • Accept friend request
    • Send instant message
    • Offline messaging
    • Follow friend
    • Invite friends
  • Trading
    • All safe trading features enabled
  • Events
    • Users can host events, is integrated into website
  • Groups
    • Display user favourited group when in-game
  • Achievements
    • American Idol voting
    • Time online
    • Change looks
    • Game played (BattleBall and SnowStorm)
    • Habbo Club membership
    • Happy Hour
    • Consecutive logins
    • Friend referrals
    • Motto
    • Account age
    • Respect earnt
    • Respect given
    • Room entries to private rooms that aren't yours
    • Completing the tutorial
    • Adding tags
    • Trade pass
    • Guides Habbo Club
    • Monthly gifts
    • First gift club sofa
    • Exclusive Habbo Club items
    • Exclusive Habbo Club rooms
    • Habbo club clothing options enabled
  • Ecotron
    • Recycle items
    • Ecotron rewards visible in catalogue
    • Ecotron rewards after recycling items
  • Guides
    • Complete tutorial
    • After tutorial, search for guide
    • Guide must be part of the guide group to join
    • Guide badge progression

Website

  • Login
  • Register
  • Community
  • Groups
  • Group discussions
  • User referrals
  • Homes
  • Home customisation
  • Housekeeping
    • News
    • Users
    • Room entry badges
    • Infobus management
    • Ban management

(There's a good chance I missed a lot, the CMS itself is very complete)

Screenshots

image

image

image

image

Download

Download the latest development build from the releases page.

Requirements

To be honest, this server doesn't require much. I'd argue that the MariaDB server is more resource demanding than the emulator itself.

  • JDK >= 17
  • MariaDB server
  • At minimum 4 GB of RAM (to be safe)

If you aim to use this for yourself, I recommend setting up your own 2009 figure image renderer with the project I've created here called Minerva to render figures and badges on the website.

You run Minerva as a seperate instance, once it is running, take note how it listens on http://localhost:5000/. The setting in the Havana settings table site.imaging.endpoint called has this variable set by default with that value already, so you should be good to go already with all badges and figures working as they should.

Installation

Install MariaDB server, connect to the database server and import havana.sql (located in /tools/havana.sql).

Download the latest development build from the releases page and rename the files to remove the short build hash version, for convenience.

Install any JDK version that is equal or above >= 17 to run the jar files.

Run both Havana-Server.jar and Havana-Web.jar at least once to generate the necessary configuration files, configure the MySQL attributes to connect to the MariaDB server.

Download the havana_www_28_07_2024.zip file, and then extract it to /tools/www/ this directory is located where you ran Havana-Web.jar.

(This is the default directory for static content within the Havana-Web project, but the directory where it looks for static images can be configured in the Housekeeping settings).

Start Havana-Web via start_web.sh (Unix/Linux distros) or start_web.bat (Windows)

Start Havana-Server via start_server.sh (Unix/Linux distros) or start_server.bat (Windows)

Your server should be up and running and accessible via http://localhost/

I highly recommend this browser to be able to play Adobe Shockwave movies in the present day.

❗ Once registered as an admin, I high recommend running groups.sql against your database, it will create the Habbo Guides, SnowStorm, BattleBall, Wobble Squabble and Lido Diving gaming groups for the website.

And then make yourself admin by setting your rank to 8 in the users table.

Important for Linux users

Install the font manager, to enable the captcha to work on the website.

apt-get install font-manager

License

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

havana's People

Contributors

afa93001d48a avatar ducksane avatar githabbo avatar michaelowens avatar quackster avatar rafaeldamasceno avatar sphynxkitten avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

havana's Issues

Unable to login again after registration

After registering, I am able to login to the game and play. Once I log out and have to login again, the page will simply refresh. If I get the password wrong it will tell me, however with the correct password it will just refresh the page and ask me to login again. I am running release 4abba6a.

I have checked the server and web server logs, however there are no changes to be seen.

To replicate: Fresh DB, Fresh Server install, register, log out, log in.

havana server issue

I got error when i run havana server

2024-03-12T14:42:27.911 INFO  [org.alexdev.havana.Havana] - Setting up game
Exception occurred for definition: 1
java.lang.IllegalArgumentException: No enum constant org.alexdev.havana.game.item.base.ItemBehaviour.SOLİD
	at java.base/java.lang.Enum.valueOf(Enum.java:273)
	at org.alexdev.havana.game.item.base.ItemBehaviour.valueOf(ItemBehaviour.java:3)
	at org.alexdev.havana.game.item.base.ItemDefinition.parseBehaviour(ItemDefinition.java:120)
	at org.alexdev.havana.game.item.base.ItemDefinition.<init>(ItemDefinition.java:60)
	at org.alexdev.havana.dao.mysql.ItemDao.getItemDefinitions(ItemDao.java:43)
	at org.alexdev.havana.game.item.ItemManager.<init>(ItemManager.java:33)
	at org.alexdev.havana.game.item.ItemManager.getInstance(ItemManager.java:199)
	at org.alexdev.havana.Havana.main(Havana.java:129)
Exception occurred for definition: 2
java.lang.IllegalArgumentException: No enum constant org.alexdev.havana.game.item.base.ItemBehaviour.SOLİD
	at java.base/java.lang.Enum.valueOf(Enum.java:273)
	at org.alexdev.havana.game.item.base.ItemBehaviour.valueOf(ItemBehaviour.java:3)
	at org.alexdev.havana.game.item.base.ItemDefinition.parseBehaviour(ItemDefinition.java:120)
	at org.alexdev.havana.game.item.base.ItemDefinition.<init>(ItemDefinition.java:60)
	at org.alexdev.havana.dao.mysql.ItemDao.getItemDefinitions(ItemDao.java:43)
	at org.alexdev.havana.game.item.ItemManager.<init>(ItemManager.java:33)
	at org.alexdev.havana.game.item.ItemManager.getInstance(ItemManager.java:199)
	at org.alexdev.havana.Havana.main(Havana.java:129)
Exception occurred for definition: 3
java.lang.IllegalArgumentException: No enum constant org.alexdev.havana.game.item.base.ItemBehaviour.SOLİD
	at java.base/java.lang.Enum.valueOf(Enum.java:273)
	at org.alexdev.havana.game.item.base.ItemBehaviour.valueOf(ItemBehaviour.java:3)
	at org.alexdev.havana.game.item.base.ItemDefinition.parseBehaviour(ItemDefinition.java:120)
	at org.alexdev.havana.game.item.base.ItemDefinition.<init>(ItemDefinition.java:60)
	at org.alexdev.havana.dao.mysql.ItemDao.getItemDefinitions(ItemDao.java:43)
	at org.alexdev.havana.game.item.ItemManager.<init>(ItemManager.java:33)
	at org.alexdev.havana.game.item.ItemManager.getInstance(ItemManager.java:199)
	at org.alexdev.havana.Havana.main(Havana.java:129)
Exception occurred for definition: 4
java.lang.IllegalArgumentException: No enum constant org.alexdev.havana.game.item.base.ItemBehaviour.SOLİD
	at java.base/java.lang.Enum.valueOf(Enum.java:273)
	at org.alexdev.havana.game.item.base.ItemBehaviour.valueOf(ItemBehaviour.java:3)
	at org.alexdev.havana.game.item.base.ItemDefinition.parseBehaviour(ItemDefinition.java:120)
	at org.alexdev.havana.game.item.base.ItemDefinition.<init>(ItemDefinition.java:60)
	at org.alexdev.havana.dao.mysql.ItemDao.getItemDefinitions(ItemDao.java:43)
	at org.alexdev.havana.game.item.ItemManager.<init>(ItemManager.java:33)
	at org.alexdev.havana.game.item.ItemManager.getInstance(ItemManager.java:199)
	at org.alexdev.havana.Havana.main(Havana.java:129)
Exception occurred for definition: 5
java.lang.IllegalArgumentException: No enum constant org.alexdev.havana.game.item.base.ItemBehaviour.CAN_SİT_ON_TOP
	at java.base/java.lang.Enum.valueOf(Enum.java:273)
	at org.alexdev.havana.game.item.base.ItemBehaviour.valueOf(ItemBehaviour.java:3)
	at org.alexdev.havana.game.item.base.ItemDefinition.parseBehaviour(ItemDefinition.java:120)
	at org.alexdev.havana.game.item.base.ItemDefinition.<init>(ItemDefinition.java:60)
	at org.alexdev.havana.dao.mysql.ItemDao.getItemDefinitions(ItemDao.java:43)
	at org.alexdev.havana.game.item.ItemManager.<init>(ItemManager.java:33)
	at org.alexdev.havana.game.item.ItemManager.getInstance(ItemManager.java:199)
	at org.alexdev.havana.Havana.main(Havana.java:129)
2024-03-12T14:42:28.056 ERROR [ErrorLogger] - Error when executing MySQL query: 
java.lang.IllegalArgumentException: No enum constant org.alexdev.havana.game.item.interactors.InteractionType.CHAİR
	at java.base/java.lang.Enum.valueOf(Enum.java:273)
	at org.alexdev.havana.game.item.interactors.InteractionType.valueOf(InteractionType.java:16)
	at org.alexdev.havana.game.item.base.ItemDefinition.<init>(ItemDefinition.java:61)
	at org.alexdev.havana.dao.mysql.ItemDao.getItemDefinitions(ItemDao.java:43)
	at org.alexdev.havana.game.item.ItemManager.<init>(ItemManager.java:33)
	at org.alexdev.havana.game.item.ItemManager.getInstance(ItemManager.java:199)
	at org.alexdev.havana.Havana.main(Havana.java:129)
Item 2051 (hc2_armchair) has an invalid definition id: 1864
Item 1553 (poster_1006) has an invalid definition id: 251
Item 2075 (basket) has an invalid definition id: 1888
Item 2078 (rare_mnstr) has an invalid definition id: 1891
Item 2079 (rare_beehive_bulb*3) has an invalid definition id: 1892
Item 1603 (hween09_organ) has an invalid definition id: 1448
Item 1604 (sf_mbar) has an invalid definition id: 1449
Item 1605 (rare_xmas_screen) has an invalid definition id: 1458
Item 1606 (valentinescreen) has an invalid definition id: 1459
Item 1607 (beanstalk) has an invalid definition id: 1450
Item 1608 (djesko_turntable) has an invalid definition id: 1451
Item 585 (rubberchair*1) has an invalid definition id: 496
Item 1609 (rare_globe) has an invalid definition id: 1452
Item 586 (rubberchair*2) has an invalid definition id: 497
Item 1610 (rare_hammock) has an invalid definition id: 1453
Item 587 (rubberchair*3) has an invalid definition id: 498
Item 1611 (rare_ironmaiden) has an invalid definition id: 1454
Item 588 (rubberchair*4) has an invalid definition id: 499
Item 1612 (rare_mmmth) has an invalid definition id: 1455
Item 589 (rubberchair*5) has an invalid definition id: 500
Item 1613 (rare_stand) has an invalid definition id: 1456
Item 590 (rubberchair*6) has an invalid definition id: 501
Item 1614 (rare_vdoll) has an invalid definition id: 1457
Item 591 (rubberchair*7) has an invalid definition id: 502
Item 1615 (hween09_wall1) has an invalid definition id: 1474
Item 592 (rubberchair*8) has an invalid definition id: 503
Item 1616 (hween09_win) has an invalid definition id: 1475
Item 593 (spyro) has an invalid definition id: 504
Item 1617 (hween09_chair) has an invalid definition id: 1460

Improve admin rights

Admins cannot pickup furnis from a room.
In reality they only have give rights instead of owner rights.

localhost cms issue

I've changed localhost ip mostly everywhere in the source folder with my custom ip, the cms is reachable but every scripts continue to point to localhost ending up with no images and no working login when accessing from another pc in the same lan

Final chess move isn't sent to losing client

While testing the chess behavior for the queen promotion, I tried to mate and while the game sends the game over notification, it doesn't actually send the winning move to the losing client:

Recording.2024-02-20.123250.mp4

Notice how the board only gets updated after the losing client makes an illegal move and the server then resends the current board state.

Teleporters have unpredictable behavior at times

When I first setup Havana a few months ago I lightly tested the teleporters and everything seemed to be working correctly. This week we have had ~6 concurrent users online poking around and looking for issues and we realized that teleporters can have very unpredictable behavior.

All issues described below happen on the current main branch and were observed when the linked teleporters are in two different rooms.

  • Sometimes you can enter a teleporter, it will take you to the linked tele in another room but you won't be able to exit the tele.
  • Sometimes you can enter a teleporter, it will take you to the room the linked tele is in but you just appear at a random tile in the room instead of walking out of the tele. I've even seen it where you go to the room the linked tele is in but your avatar enters the room from the door.
  • Sometimes teleporters just don't do anything, you walk in and nothing happens.

I tried to reproduce some of these behaviors when the linked teleporters are in the same room and they appeared to work fine in that case, or at least I was not able to reproduce the errors.

When these issues happen there are no error logs in the server. Additionally sometimes they still work completely fine, it's very unpredictable and not always easy to reproduce. I will try to gather some logs this weekend as well as some screen recordings that demonstrate some of the behaviors mentioned above.

Server is running on Ubuntu 20.04 using the latest main branch. Issues can be observed while using both Basilisk portable browser as well as a Shockwave projector.

Housekeeping avatar imager stopped working

In the housekeeping, avatar images get loaded in with the habbo.com.tr domain, but it seems as they just deleted that endpoint. All images are returning 404's now.

Replacing it with the imager used for the regular site would fix this.

Battleball Bugs

Been playing around with Havana for a little while now and it appears Battleball has a couple issues.

  • Part way through the game the score bars begin flickering and jumping around for seemingly no reason.
  • Battleball (and Snowstorm) do not cost tickets, but it should. You can start a game without tickets and it doesn't subtract them when if you have them when you make a game.

Trax is Buggy and Causes Crashes

Set this up quickly to fool around in and I noticed that Trax is very buggy and causes crashes.

I crashed out of the hotel probably half a dozen times last night in the course of about 3 hours playing around with Trax (I'm using the recommended Basilisk Portable). A few of the crashes were Shockwave crashing, others just took me right to the connection error page. The server does not appear to log any errors when this happens (none that I can see in the terminal or in the log files).

Another issue I noticed, and it may be just an issue that was in the original game, but sometimes you can click through the Trax editor and end up leaving your room, which closes the editor and loses anything you haven't saved yet. Also, a few of the sound packs have duplicate sounds or sounds that don't work.

[Request] A video tutorial on how to get this set up along with Minerva

Hi, I'm interested to host this as a pet project for me and my friends, and have been looking at many other releases. However hosting a hotel seems to be a very complicated procedure, unable to get nitro working etc. So this release appeals to me the most.

I'm kinda lost when following the instructions on the main page. Do you think you could make a quick video on how to get a server set up using IIS or some other cloud hosting like Google Cloud or AWS?

Webserver crashes after 30 seconds.

Tried this on both linux and windows with no modications to the server files and can confirm the web server appears to crash/hang after 30 seconds.

No errors present in logs.

Public Open Ports or portfordward

What ports do you have to open on the firewall and on the router and what settings do you have to put in the .ini to make it accessible to the internet or a cloudflare domain for example?

No main manifest attribute

Using latest releases of Havana server gives out this error

''No main manifest attribute in Havana-server.jar''

Captcha not showing. Unable to create account.

Hey there, even with font-manager installed I am unable to see the captcha on my registration page.

(I am running this on Ubuntu Server (headless) )

Is there a quick way I can disable the captcha system on the register page?

also could I possibly get an example of a row in the user table?

BUG in chess- Pawn promotion

There's a bug in chess: the pawn promotion didn't work. A pawn when reaches the first row of the opponent’s side, had to become any other chess piece – Knight, Bishop, Rook, and even a Queen (not King though)

It was perfect if it's possible to add a string "Your turn" / "Opponent turn" and that both side (even those who choose black), play at the bottom of the board

Screen

Battleball score and winner does not match on two clients

My girlfriend and i played a game of battleball yesterday. In the end, her client showed me as the winner, while my client showed HER as the winner. The scores also did not match up. Willing to try to keep reproducing it later today.

Unable to start any games of Snowstorm

I can create a game for Snowstorm, have players join the teams but then when I attempt to start the game no one is taken to the lobby and in the game menu it will show the game is started.

This log is printed when attempting to start the game.

2023-04-29T22:20:40.883 ERROR [ErrorLogger] - Error occurred when handling (170) for user (test):
java.lang.NullPointerException: Cannot invoke "org.alexdev.havana.game.games.snowstorm.mapping.SnowStormMap.getItems()" because the return value of "org.alexdev.havana.game.games.snowstorm.SnowStormGame.getMap()" is null
        at org.alexdev.havana.game.games.snowstorm.SnowStormGame.initialise(SnowStormGame.java:91)
        at org.alexdev.havana.game.games.Game.startGame(Game.java:147)
        at org.alexdev.havana.messages.incoming.games.STARTGAME.handle(STARTGAME.java:55)
        at org.alexdev.havana.messages.MessageHandler.invoke(MessageHandler.java:589)
        at org.alexdev.havana.messages.MessageHandler.handleRequest(MessageHandler.java:568)
        at org.alexdev.havana.server.netty.connections.ConnectionHandler.channelRead0(ConnectionHandler.java:104)
        at org.alexdev.havana.server.netty.connections.ConnectionHandler.channelRead0(ConnectionHandler.java:21)
        at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
        at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:323)
        at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:297)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
        at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1408)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
        at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:930)
        at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:799)
        at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:427)
        at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:328)
        at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:905)
        at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
        at java.base/java.lang.Thread.run(Thread.java:833)

Features broken due to encryption.

  1. Infobus park does not load, just sits on a black screen.
  2. Clicking the ticket machines does nothing.

Reverting the encryption commit fixes both issues. I am not sure how the encryption could possibly impact the ability for the ticket machines to work properly since clicking them doesn't even send a packet to the server.

Housekeeping response time on Bans page

When there's a lot of bans inside the user_bans table, the Bans page in the Housekeeping takes a long time to load.
This could be solved by implementing pagination in the same way it is done on the dashboard (player overview).

Testing with 1375 bans

(Empty cache and hard reload)

  1. 21.17s
  2. 14.92s
  3. 13.74s
  4. 14.35s
  5. 14.25s

avg: 15.69s

[FEATURE REQUEST] Docker container install

I wish there was a docker container that i could just pull and run the Server. This would also allow múltiple Server instantes a long with making backup and restore and migrations way easier.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.