forum

BeatmapStation - search beatmaps, and download them from your in-game messages

posted
Total Posts
64
Topic Starter
Eber

BeatmapStation
A tool to search beatmaps, and download them from replays or messages-ingame

Hi guys! I've been developing this project for almost 2 years, and today I decided to release it to the community.
It's a desktop application made to make easier the task of searching and downloading new beatmaps:
Features
- Real-time recognition of beatmaps sent to you by in-game messages, and download them if you haven't them.

- Search beatmaps filtering them by title, artist, source, ranking status or even in-game stats, like AR, CS, OD, Stars amount, and much more other filters

- Select how many maps you want from multiple searches.

- It's possible to set and save your preferred filters under a name and a color, so you can reuse them later.

- It can download beatmaps from replays, just drag 'n drop them on the app's window to start the download.

- It can keep track of what maps you already have, so they won't be downloaded twice.

- By using the in-game command "/savelog", it's possible to download maps from #spectator and #multiplayer.

- Auto-installs downloaded maps.

- Minimize it to the system tray if you don't wanna it opened all the time.

- Pause your downloads whenever you want

- It supports multiple languages (current English, Brazilian Portuguese, Spanish, Russian and German).

How it works?
- The maps are downloaded using mirrors (actually the app uses mog's one and another one to download unranked beatmaps or when the first doesn't have a requested beatmap). After the download they're sent to osu!'s song folder, making the game installing them.

- By reading the osu!.db file, the app can keep track of already installed maps.

- Chat recognition works by activating the osu's option "Log private messages", or using the in-game "/savelog" command.

- You can drag and drop replay files in the main screen to download them. Their information are gathered using the osu! API.

- Also, the searching feature works by gathering the results from Rivenation's osu!search. His powerful tool returns precise results, and integrated with this app, you can now search for beatmaps and download them without even opening your browser.

- It can be minimized to the system tray to not stay open all the time.


About the in-game chat recognition

The chat message auto-recognition will only work if you activate the in-game option "Log private messages",
since they can't be recognized from anywhere else.
How to activate the option in-game

This way the game will log all your chat messages in the the Chat folder, located in the osu!'s folder.

Otherwise you'll need to use the /savelog in-game command every time you wanna download a map that someone sent to you. Also, this command can be used in chat rooms like #multiplayer or #spectator.
It works in public rooms too (#osu and language-specific channels), but I wouldn't recommend to use it that way, 'cause they usually have a huge amount of links and it won't be possible to take control of each one.

Don't worry, I'm not interested in your conversations and the app won't share your chat logs with other persons, and will only be used to recognize beatmaps sent to you.




Download

Current version: v2018.08.11.2.4

- To use the app, you need Java 8 Update 161 (or higher). You can download it here.
- BeatmapStation won't work with Java feature releases (like Java 9 or Java 10). Please make sure you have installed only the aforementioned public releases to use it.

Download link (mega.nz)
How to install
- Download the .zip from the link above and extract the .jar from it.
- Open it. A set-up screen will appear.
- Follow the 2 steps (set the API key and the game folder).
- It'll load your beatmap library (it'll do it only in the first time, don't worry).
- The app will open when it finishes loading the maps.


Changelog

Click to open

Eber wrote:

2018.08.11.2.4
- Text width calculation was using a native method that wasn't working in other operating systems other than Windows. Now it should be working in a more reliable way.
- Now a error message will be showed when you try to run the app in any Java that's not 8
- BeatmapStation won't die anymore if the Chat folder doesn't exist. (reported by Fusyon and Haibara-Chan).
- Added a error reporting dialog.

Eber wrote:

2018.07.29.2.3
- App's directory shouldn't be attempted to be created inside the app's jar when in operating systems that aren't Windows. (reported by Moltqn)
- Checking if a beatmap is being downloaded is now a synchronized method, to avoid throwing a ConcurrentModificationException.
- Chat handler won't die anymore if an exception is thrown.

Eber wrote:

2018.07.28.2.2
- Now the single-instance system should be working.
- Fixed some problems of the language system, making it check the update only for the selected language.
- Errors thrown during the splash screen will now be displayed in a dialog box.
- Fixed downloads being downloaded 'till the end, even if they were cancelled by the user. (reported by [ Neopolitan ])
- Fixed tray window positioning for people who anchor the task bar in other places other than the bottom. (reported by [ Neopolitan ])

Eber wrote:

2018.07.23.2.1
- Fixed a bug where the app would try to load a language file even if it didn't existed, leading to an endless splash screen loading.

Eber wrote:

2018.07.22.2.0
+ You can now set and save your own filters on the search dialog
+ A new pagination system
+ Beatmapset cover images
+ A cool dark theme to the search dialog
+ Beatmaps' files will be opened, instead of just sending them to osu!'s folder when received from #spectator or #multiplayer channels
+ Now LOVED ranked status is supported!
+ The app will now warn when a new update is out
+ BeatmapStation is now limited to run with just one instance at the time.
+ Now the app pulls changes and new language files from GitHub
+ Changed config file's format
- Fixed wrong usernames when multiple people send to you beatmap links on the chat at the same time.
- Fixed search dialog using favorite values as BPM values
- Fixed downloaded beatmaps disappearing from the game
- Many other little bugs that I fixed but they were so insignificant that I forgot about them lol

Eber wrote:

2018.04.11.1.2
+ Fixed some incorrect phrasing on English and Spanish translations.
- Fixed a bug where the amount of visible beatmaps in the search results would not update (thanks for DJNeonNight for reporting it).

Eber wrote:

2018.04.09.1.1
+ Added Spanish translation (thanks for DJNeonNight).
+ Added translators credits to the settings screen.
+ Added a little warning when the language is changed on the settings screen.
- Fixed some bugs related to the configuration file.


Special thanks

- Thanks for my friend Fusyon, for making some icons for the app.
- Rivenation, for letting me use osu!search to gather the searching requests. Without him a lot of the user experience would be lost. Please thank him on the osu!search's topic.
- Thanks for my friends Vvdczinho, Lewd Imouto, Acooler and Coconutt, for helping me testing this app.
- Thanks for peppy for being nice and letting me release this.

- Thanks for DJNeonNight for translating this app to Spanish.


Translations & Bugs

I've translated the app to English and Brazilian Portuguese (my native language).
But other people have took their time to make it available in other languages:
• Spanish (made by DJNeonNight).
• Russian (made by i3ym).

If you're interested in helping translating it to your language, please make a pull request on its GitHub repository. You can pick whatever language file you wanna from there and translate it to your local tongue.

Also, I'll be really glad in solving any bug that you find on the program.
If you found one, please go the app's installation directory (%appdata%/beatmap-station), and send me the the files inside the logs folder. They're the files where the app drops the errors.
If possible, please describe the conditions that made the bug occur. I'll sure take a look on it and solve when I have some time.
You can send them to me by creating an issue on the GitHub repo, sending me a PM or just posting it on this thread.


Don't forget to leave your feedback about the program! :)
abraker
nice UI
hirohi
Nice work!🙌 Been followed your job along those 2 years and it's really impressive you could deploy it. Cheers! 👏
Topic Starter
Eber

abraker wrote:

nice UI

Thanks! I paid a special attention to integrate the functionality with a good design.

[ H I R O ] wrote:

Nice work!🙌 Been followed your job along those 2 years and it's really impressive you could deploy it. Cheers! 👏

Thanks man. It took a lot of time and effort to get finally done to be released. Fortunately, I could push it to a very functional state.
Shad0wz
It's a good and useful program if you aren't a supporter, nice work dude, plus you can filter maps by AR and other stuff, which is really nice too, it's a nice program overall :D
Luuukee N7
nice... up
maot
Nice man! You did a thing i was about to start to do. By the way nice design :)
Poseidon
Add pp and ill ditch osu!direct
FunYellow
Cara, parabéns por esse prorana, ficou show <3
ladywarrior23
:thinking:
Booze
this is great

i'd love a button that would give you a random beatmap within the filters you set
Ideal
opa :eyes:
YohanSabrac
bom :3
SynnerStar
carai man ótimo trabalho!!!parabéns por fazer algo tão bom assim dar certo ^^
Topic Starter
Eber
Hi guys! I just updated the app with a few little fixes and the Spanish translation made by DJNeonNight. Please thank him for taking his time to do it ^-^

Also, thanks for all the people that are giving feedback, that means a lot for me.

Shad0wz wrote:

It's a good and useful program if you aren't a supporter, nice work dude, plus you can filter maps by AR and other stuff, which is really nice too, it's a nice program overall :D
Thank you so much for your feedback, though I don't think this app can replace osu! supporter in any ways.

Poseidon wrote:

Add pp and ill ditch osu!direct
Soon™. osu! direct is faster by the way.

Maot wrote:

Nice man! You did a thing i was about to start to do. By the way nice design :)
During these 2 years, I was thinking that it was almost impossible that some other person didn't have a similar idea. I'm glad that I could release it anyway.

isopaharuntikka wrote:

this is great

i'd love a button that would give you a random beatmap within the filters you set
Thanks for your suggestion man, I appreciate it. But I'm sorry, to do it I would need to get the results from ALL the pages of the current search from osu!search (that would overload hammer Rivenation's servers). So, it aren't likely to happen, unless he makes someone like this in his system, sorry =(

Luuukee N7 wrote:

nice... up

FunYellow wrote:

Cara, parabéns por esse prorana, ficou show <3

sayonara - wrote:

:thinking:

Idealism wrote:

opa :eyes:

YohanSabrac wrote:

bom :3

jhIee0I33 wrote:

carai man ótimo trabalho!!!parabéns por fazer algo tão bom assim dar certo ^^
Valeus. Fico feliz que tenham gostado e deixarem seu comentário na thread : 3
-Makishima S-
Well done, now share source code so people who know how to read alien can check if it's safe.
Sorry, I especially do not trust Java devs and Java apps... well, In general I do not trust Java at all 8-)

Personal problems aside - adding source code as someone who shows up first app here is appreciated for trust issues of many users. Especially when in the past afair there were problems with this.
Topic Starter
Eber

[Taiga] wrote:

Well done, now share source code so people who know how to read alien can check if it's safe.
Sorry, I especially do not trust Java devs and Java apps... well, In general I do not trust Java at all 8-)

Personal problems aside - adding source code as someone who shows up first app here is appreciated for trust issues of many users. Especially when in the past afair there were problems with this.

Hi Taiga! Thanks for your feedback. While I agree that Java is not the safest language, I'm not planning in make open-source the app or share its basecode, at least for the moment.
That's because I worked really hard to finish this project, and it took a great amount of time to do it, and because of this I just don't feel comfortable to release the source.

So, I'd not spent the amount of time and efforts that I spent, to harm the users, you can be sure of this.

I agree that I never published any other app on the forums, and I'm aware that some people can fear downloading the app because it's not open-source. But, for the moment, I'm not gonna share its source.
xenonius
can you add loved and pending to the search filters?

also really nice work you've done here owo

edit: and qualified

edit 2: i'm blind
Topic Starter
Eber

xenonius wrote:

can you add loved and pending to the search filters?

also really nice work you've done here owo

edit: and qualified

Thx for your feedback dude ^-^
You already can filter by qualified maps on the app. If is that what you're meaning:


About the loved ones, I need to talk with Rivenation (the osu!search developer) about if to see if is possible (since the search results are gathered from there).
For the moment, the app can only determine the status rank of the maps.
Acrith
Hey,

Nice tool, tho I can't understand why program is not EXCLUDING already downloaded maps from my osu.db?
Topic Starter
Eber

Acrith wrote:

Hey,

Nice tool, tho I can't understand why program is not EXCLUDING already downloaded maps from my osu.db?

Does it happen only to maps you download from the app, or to maps you already had before?
Also, I think you already know this, but maps you already have will appear with this icon in the search results:

If you're not seeing it where it should be, so yes, we've a problem.

Although I'm aware there're are some bugs in the way which the app handles maps you already have, and even I'm currently working in a next version which will probably fix them, I don't have much time to work on it, so things are going a bit slow.
Moyase
Could you add a way to select all of the maps on a page? or even multiple? It would really help me out... Also i have noticed there seems to be issues if theres 8 or more beatmaps in the queue.... it will not add anymore to the queue after that
Topic Starter
Eber

Moyase wrote:

Could you add a way to select all of the maps on a page? or even multiple? It would really help me out... Also i have noticed there seems to be issues if theres 8 or more beatmaps in the queue.... it will not add anymore to the queue after that

Sorry for replying you so late...
Yeah, I can add it, lets see if I can add it to the next version.
And thanks for reporting this bug, I'll be looking for that.

Also, probably I'll be releasing the next version on this weekend with a lot of bug fixes (like the one Acrith has mentioned), and a few novelties.
iYama
Eu gosto muito dessa ferramenta, parabéns pelo bom trabalho.
A única coisa que acho chata é que o filtro de favoritos nunca funcionou, e eu acho que esse programa seria top para baixar boas unrankeds se o fav funcionasse :/
Você seleciona um mínimo de favoritos, e o programa confunde com mínimo BPM.

Anyway, nice job, thanks :)
Topic Starter
Eber

iYama wrote:

Eu gosto muito dessa ferramenta, parabéns pelo bom trabalho.
A única coisa que acho chata é que o filtro de favoritos nunca funcionou, e eu acho que esse programa seria top para baixar boas unrankeds se o fav funcionasse :/
Você seleciona um mínimo de favoritos, e o programa confunde com mínimo BPM.

Anyway, nice job, thanks :)

Sim, quando eu lancei a primeira versão eu nem tinha percebido isso kkk
Há um tempo me disseram sobre esse problema e eu já corrigi. Falando nisso, a nova versão já tá quase pronta, só falta eu dar uma otimizada. Só ainda não fiz isso por falta de tempo mesmo.

Brigadão pelo feedback!
iYama

Eber wrote:

Sim, quando eu lancei a primeira versão eu nem tinha percebido isso kkk
Há um tempo me disseram sobre esse problema e eu já corrigi. Falando nisso, a nova versão já tá quase pronta, só falta eu dar uma otimizada. Só ainda não fiz isso por falta de tempo mesmo.

Brigadão pelo feedback!
Ok! No aguardo da nova versão <3
Topic Starter
Eber
So, after 4 months, I'm finally releasing a new update.
I'm really sorry for all the delay, but I was busy with other things and I never had the time to work properly on this. I made a lot of changes to the search dialog to make it better.

I recommend you guys to take a look at the screenshots (they're on the main thread) if you wanna see properly how the new features looks like.

Here're all the changes made on this new version:
  1. + You can now set and save your own filters on the search dialog
    You can choose a color for it, besides the name :O

    I had this feature in mind since the first version, but I'm sure that people like -Alice Nakiri- were wanting this live.
  2. + Now the the app is able to remember the last options you used on the search filters
    If you didn't select any filter, it'll remember the last options used, even if you closed the app.
  3. + A new pagination system
    The older one was based on a JavaFX implementation, which was giving me so many troubles and it was turning the task to maintain its code so difficult, that I just made myself. This new one brings us some nice things:
    1. Now, instead of having a ton of buttons to each page of the search results, we've a nice component where you can just type the number of page which you wanna go or simply go through the pages by clicking the previous and next buttons:
    2. Before, everytime you changed the page, the app would create new beatmap cards for every new page requested. (they're the things that represents the results of each page). For instance, if you went through 10 pages of the search, you'd have 180 CARDS, and the worst: they'd rarely be dropped from the memory. But now things are much better: I made the search dialog reuse the same 18 cards everytime you change the page, like a recycle.
  4. + Beatmapset cover images
    This was supposed to exist since the first version, but unfortunately I had to remove it because I was using osu! servers to download them. After founding a way to download them without requesting anything from peppy's servers, I re-added them. Please notice that they won't load for unranked maps and some other maps. Also, it's a bit slow to load all them, but I think it's better to have them than not have.
  5. + A cool dark theme to the search dialog
    Even I liking light themes, I thought a dark theme would be nice, and since some people were saying that "light themes hurt the eyes" I did it. Deep down I knew that a lot of you guys wanted it.

    It also comes with some cool buttons to select and deselect all the cards on a page. (they were suggested by DJNeonNight)
  6. + Now LOVED ranked status is supported!
    We hadn't this before 'cause osu!search didn't support it at the time. When I saw that Rivenation updated his system, I added it to BeatmapStation. So now you can find "Loved" status in the statuses list and be happy searching for them.
  7. + The app will now warn when a new update is out
  8. + BeatmapStation is now limited to run with just one instance at the time.
    This means you can't launch two BeatmapStations and use both at the same time. I don't know even why people would want this lol
  9. + Now that language files are on GitHub, the app will be able to pull new languages, or new changes if they're made there, to ensure that you're using the last revised version of your current selected language.
  10. + Changed config file's format
    Because the older one was terrible and very likely to bug itself.

Finally, but not less important, this new version fixes the following bugs from the previous one:
  1. - Fixed wrong usernames when multiple people send to you beatmap links on the cHat at the same time.
  2. - Fixed search dialog using favorite values as BPM values
    This was reported by Fusyon and iYama
  3. - Fixed downloaded beatmaps disappearing from the game
    This problem was reported by multiple people. This also fixes the bug where the beatmap's thumbnails would be mixed in the song selection menu.
  4. - Many other little bugs that I fixed but they were so insignificant that I forgot about them lol


Also, a huge thanks for DJNeonNight for translating some new verbose to Spanish before the app came out. He's actually the only person keeping the Spanish translation.

And that's it, I hope you guys like this update, and please don't forget to let your feedback here on the thread, I'm missing it alot.
Ganter
I can't install program. Installation screen appears, but there nothing happens. I have installed latest Java version. Tried re-download setup files, reinstall Java and reboot my pc, same result.
Also in %APPDATA% was created beatmap-station folder, with cache, langs and logs folders. Folders cache and logs are empty.
What could be the problem?
https://imgur.com/a/yIVeiJk
dZark
Cant open it, it just keep loading forever just like in @Ganter screen
Topic Starter
Eber

Ganter wrote:

I can't install program. Installation screen appears, but there nothing happens. I have installed latest Java version. Tried re-download setup files, reinstall Java and reboot my pc, same result.
Also in %APPDATA% was created beatmap-station folder, with cache, langs and logs folders. Folders cache and logs are empty.
What could be the problem?
https://imgur.com/a/yIVeiJk

dZark wrote:

Cant open it, it just keep loading forever just like in @Ganter screen
Thanks for reporting it! I'm really sorry for the inconvenience. I released a new version and I hope it's fixed now ^-^.

As the apps was trying to load the language file equivalent to your system's language, even if it didn't exists. That was your case, it was trying to load the ru.lang (the Russian language file), but the app is not even translated to Russian.

If it keeps doesn't working, please try to delete the folder "beatmap-station" on your %appdata%. If it still doesn't work, please contact me.

Again, I'm really sorry for this.
Ganter

Eber wrote:

Ganter wrote:

I can't install program. Installation screen appears, but there nothing happens. I have installed latest Java version. Tried re-download setup files, reinstall Java and reboot my pc, same result.
Also in %APPDATA% was created beatmap-station folder, with cache, langs and logs folders. Folders cache and logs are empty.
What could be the problem?
https://imgur.com/a/yIVeiJk

dZark wrote:

Cant open it, it just keep loading forever just like in @Ganter screen

Thanks for reporting it! I'm really sorry for the inconvenience. I released a new version and I hope it's fixed now ^-^.

As the apps was trying to load the language file equivalent to your system's language, even if it didn't exists. That was your case, it was trying to load the ru.lang (the Russian language file), but the app is not even translated to Russian.

If it keeps doesn't working, please try to delete the folder "beatmap-station" on your %appdata%. If it still doesn't work, please contact me.

Again, I'm really sorry for this.


Thank you! Now everything works.

upd: There is a problem with mog422 mirror, since mog no longer update new beatmaps app can't get any of them.
With old beatmaps works fine.
Topic Starter
Eber

Ganter wrote:

There is a problem with mog422 mirror, since mog no longer update new beatmaps app can't get any of them.
With old beatmaps works fine.

Yeah, I'm sorry for that. I'll be looking into adding new mirrors to the app (currently we have only two of them), but it'll be take a while 'till I find a decent one.

Also, the app has another mirror to download unranked beatmaps and maps which aren't available on mog's one. This one wasn't working properly since yesterday, but now it's seems normal.
Kenyy
My BeatmapStation was working fine yesterday but today it just kept on loading forever and even after i reinstall it didnt fix. Send Help
Topic Starter
Eber

Kenyy23 wrote:

My BeatmapStation was working fine yesterday but today it just kept on loading forever and even after i reinstall it didnt fix. Send Help

Hi, I'm sorry for the inconvenience. I'm already aware of this problem and I'm working in a fix to this (I'm probably gonna release it tomorrow).

What you can do for now is:
- Go to your %appdata%
- Enter in the folder beatmap-station
- Delete the langs folder

Also, before doing this, it'd be better if you checked your task manager to make sure that any instance of the process "javaw.exe" aren't running.

If it doesn't work or if you have any question, please enter in contact with me ^-^
Again, I'm sorry for this.
Kenyy

Eber wrote:

Kenyy23 wrote:

My BeatmapStation was working fine yesterday but today it just kept on loading forever and even after i reinstall it didnt fix. Send Help

Hi, I'm sorry for the inconvenience. I'm already aware of this problem and I'm working in a fix to this (I'm probably gonna release it tomorrow).

What you can do for now is:
- Go to your %appdata%
- Enter in the folder beatmap-station
- Delete the langs folder

Also, before doing this, it'd be better if you checked your task manager to make sure that any instance of the process "javaw.exe" aren't running.

If it doesn't work or if you have any question, please enter in contact with me ^-^
Again, I'm sorry for this.

Its working now, thanks!
Topic Starter
Eber
So, I fixed that bug. It was related to the language system, that was a bit broken, and the single-instance system made on the last version, which wasn't working.

I also fixed other things. Here're all the changes:

  1. - Now the single-instance system should be working.
  2. - Fixed some problems of the language system, making it check the update only for the selected language.
  3. - Errors thrown during the splash screen will now be displayed in a dialog box.
  4. - Fixed downloads being downloaded 'till the end, even if they were cancelled by the user. (reported by [ Neopolitan ])
  5. - Fixed tray window positioning for people who anchor the task bar in other places other than the bottom. (reported by [ Neopolitan ])


Hope you guys like it.
ILikeRamen
Hey could you add an option to hide already installed beatmaps ?
meowing
I've been having an issue with trying to run this on Mac. Loading the jar gives me a message saying "/Users/--------/Documents/BeatmapStation v2018.07.28.2.2.jar/beatmap-station: Not a directory".


When clicking show details.
java.nio.file.FileSystemException: /Users/--------/Documents/BeatmapStation v2018.07.28.2.2.jar/beatmap-station: Not a directory
at java.base/sun.nio.fs.UnixException.translateToIOException(Unknown Source)
at java.base/sun.nio.fs.UnixException.rethrowAsIOException(Unknown Source)
at java.base/sun.nio.fs.UnixException.rethrowAsIOException(Unknown Source)
at java.base/sun.nio.fs.UnixFileSystemProvider.checkAccess(Unknown Source)
at java.base/java.nio.file.Files.createDirectories(Unknown Source)
at com.eber.beatmapstation.Main$1$1.call(Main.java:271)
at com.eber.beatmapstation.Main$1$1.call(Main.java:1)
at javafx.graphics/javafx.concurrent.Task$TaskCallable.call(Unknown Source)
at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
at javafx.graphics/javafx.concurrent.Service.lambda$executeTask$6(Unknown Source)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at javafx.graphics/javafx.concurrent.Service.lambda$executeTask$7(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)


I hope you can help me with this.
Topic Starter
Eber

Moltqn wrote:

I've been having an issue with trying to run this on Mac. Loading the jar gives me a message saying
[...]
I hope you can help me with this.

Thanks for reporting it! I'm sorry for the inconvenience, but I hope it's fixed now.
To be honest, I didn't test this in other operating systems other than Windows, so if you could keep giving your feedback if you see anything weird, I'd really appreciate it =]

As always, I fixed other little things too.

  1. - App's directory shouldn't be attempted to be created inside the app's jar when in operating systems that aren't Windows. (reported by Moltqn)
  2. - Checking if a beatmap is being downloaded is now a synchronized method.
  3. - Chat handler won't die anymore if an exception is thrown.

You can download it on the main thread.

ILikeRamen wrote:

Hey could you add an option to hide already installed beatmaps ?

Yes, I actually can. I'm figuring out how to properly do it since the last update.
I don't wanna to just hide them from the search results (this would lead to an inconsistent amount of beatmaps per page), instead of it I wanna keep the pages filled with beatmaps you don't have.
Maybe this feature will be present on the next update =]
meowing
Another issue has arisen. Clicking "Search Beatmaps" just greys out the button and nothing happens.

Log
Exception in thread "JavaFX Application Thread" java.lang.NoSuchMethodError: javafx.scene.text.Font.impl_getNativeFont()Ljava/lang/Object;
at com.eber.beatmapstation.util.Util.computeTextWidth(Util.java:474)
at com.eber.beatmapstation.scene.component.layout.CachedControlPagination.changed(CachedControlPagination.java:200)
at javafx.base/com.sun.javafx.binding.ExpressionHelper$Generic.fireValueChangedEvent(Unknown Source)
at javafx.base/com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(Unknown Source)
at javafx.controls/javafx.scene.control.TextInputControl$TextProperty.fireValueChangedEvent(Unknown Source)
at javafx.controls/javafx.scene.control.TextInputControl$TextProperty.markInvalid(Unknown Source)
at javafx.controls/javafx.scene.control.TextInputControl$TextProperty.controlContentHasChanged(Unknown Source)
at javafx.controls/javafx.scene.control.TextInputControl$TextProperty.access$1600(Unknown Source)
at javafx.controls/javafx.scene.control.TextInputControl.lambda$new$0(Unknown Source)
at javafx.base/com.sun.javafx.binding.ExpressionHelper$SingleInvalidation.fireValueChangedEvent(Unknown Source)
at javafx.base/com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(Unknown Source)
at javafx.controls/javafx.scene.control.TextField$TextFieldContent.insert(Unknown Source)
at javafx.controls/javafx.scene.control.TextInputControl.replaceText(Unknown Source)
at javafx.controls/javafx.scene.control.TextInputControl.filterAndSet(Unknown Source)
at javafx.controls/javafx.scene.control.TextInputControl.access$900(Unknown Source)
at javafx.controls/javafx.scene.control.TextInputControl$TextProperty.doSet(Unknown Source)
at javafx.controls/javafx.scene.control.TextInputControl$TextProperty.set(Unknown Source)
at javafx.controls/javafx.scene.control.TextInputControl.setText(Unknown Source)
at com.eber.beatmapstation.scene.component.layout.CachedControlPagination.<init>(CachedControlPagination.java:112)
at com.eber.beatmapstation.scene.component.layout.CachedBeatmapPagination.<init>(CachedBeatmapPagination.java:62)
at com.eber.beatmapstation.scene.dialog.search.DownloadBeatmaps.<init>(DownloadBeatmaps.java:442)
at com.eber.beatmapstation.scene.DownloadPanel.lambda$10(DownloadPanel.java:187)
at javafx.base/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(Unknown Source)
at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(Unknown Source)
at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(Unknown Source)
at javafx.base/com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(Unknown Source)
at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
at javafx.base/com.sun.javafx.event.EventUtil.fireEventImpl(Unknown Source)
at javafx.base/com.sun.javafx.event.EventUtil.fireEvent(Unknown Source)
at javafx.base/javafx.event.Event.fireEvent(Unknown Source)
at javafx.graphics/javafx.scene.Node.fireEvent(Unknown Source)
at javafx.controls/javafx.scene.control.Button.fire(Unknown Source)
at javafx.controls/com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(Unknown Source)
at javafx.controls/com.sun.javafx.scene.control.inputmap.InputMap.handle(Unknown Source)
at javafx.base/com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(Unknown Source)
at javafx.base/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(Unknown Source)
at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(Unknown Source)
at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(Unknown Source)
at javafx.base/com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(Unknown Source)
at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
at javafx.base/com.sun.javafx.event.EventUtil.fireEventImpl(Unknown Source)
at javafx.base/com.sun.javafx.event.EventUtil.fireEvent(Unknown Source)
at javafx.base/javafx.event.Event.fireEvent(Unknown Source)
at javafx.graphics/javafx.scene.Scene$MouseHandler.process(Unknown Source)
at javafx.graphics/javafx.scene.Scene$MouseHandler.access$1300(Unknown Source)
at javafx.graphics/javafx.scene.Scene.processMouseEvent(Unknown Source)
at javafx.graphics/javafx.scene.Scene$ScenePeerListener.mouseEvent(Unknown Source)
at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(Unknown Source)
at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(Unknown Source)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$2(Unknown Source)
at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(Unknown Source)
at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(Unknown Source)
at javafx.graphics/com.sun.glass.ui.View.handleMouseEvent(Unknown Source)
at javafx.graphics/com.sun.glass.ui.View.notifyMouse(Unknown Source)
at javafx.graphics/com.sun.glass.ui.mac.MacView.notifyMouse(Unknown Source)
ILikeRamen
idk why but i get this error now
worked a few hours ago

java.io.EOFException
at java.io.ObjectInputStream$BlockDataInputStream.peekByte(Unknown Source)
at java.io.ObjectInputStream.skipCustomData(Unknown Source)
at java.io.ObjectInputStream.readSerialData(Unknown Source)
at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.readObject(Unknown Source)
at com.eber.beatmapstation.library.BeatmapLibrary.scan(BeatmapLibrary.java:108)
at com.eber.beatmapstation.Main.show(Main.java:357)
at com.eber.beatmapstation.Main.access$4(Main.java:329)
at com.eber.beatmapstation.Main$1$1.call(Main.java:317)
at com.eber.beatmapstation.Main$1$1.call(Main.java:1)
at javafx.concurrent.Task$TaskCallable.call(Task.java:1423)
at java.util.concurrent.FutureTask.run(Unknown Source)
at javafx.concurrent.Service.lambda$null$493(Service.java:725)
at java.security.AccessController.doPrivileged(Native Method)
at javafx.concurrent.Service.lambda$executeTask$494(Service.java:724)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Topic Starter
Eber

ILikeRamen wrote:

idk why but i get this error now
worked a few hours ago

java.io.EOFException
at java.io.ObjectInputStream$BlockDataInputStream.peekByte(Unknown Source)
at java.io.ObjectInputStream.skipCustomData(Unknown Source)
at java.io.ObjectInputStream.readSerialData(Unknown Source)
at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.readObject(Unknown Source)
at com.eber.beatmapstation.library.BeatmapLibrary.scan(BeatmapLibrary.java:108)
at com.eber.beatmapstation.Main.show(Main.java:357)
at com.eber.beatmapstation.Main.access$4(Main.java:329)
at com.eber.beatmapstation.Main$1$1.call(Main.java:317)
at com.eber.beatmapstation.Main$1$1.call(Main.java:1)
at javafx.concurrent.Task$TaskCallable.call(Task.java:1423)
at java.util.concurrent.FutureTask.run(Unknown Source)
at javafx.concurrent.Service.lambda$null$493(Service.java:725)
at java.security.AccessController.doPrivileged(Native Method)
at javafx.concurrent.Service.lambda$executeTask$494(Service.java:724)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

Looks like the app's song library file is corrupted. For now, you can probably solve this doing the following:
While BeatmapStation is closed, please delete the file "songs.db", localized at %appdata%\beatmap-station, and start it. This'll make BeatmapStation check your installed maps again.

I'm sorry for this. I'll take a look at the code when I have some time and try to find a solution for this problem.
ILikeRamen

Eber wrote:

ILikeRamen wrote:

idk why but i get this error now
worked a few hours ago

java.io.EOFException
at java.io.ObjectInputStream$BlockDataInputStream.peekByte(Unknown Source)
at java.io.ObjectInputStream.skipCustomData(Unknown Source)
at java.io.ObjectInputStream.readSerialData(Unknown Source)
at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.readObject(Unknown Source)
at com.eber.beatmapstation.library.BeatmapLibrary.scan(BeatmapLibrary.java:108)
at com.eber.beatmapstation.Main.show(Main.java:357)
at com.eber.beatmapstation.Main.access$4(Main.java:329)
at com.eber.beatmapstation.Main$1$1.call(Main.java:317)
at com.eber.beatmapstation.Main$1$1.call(Main.java:1)
at javafx.concurrent.Task$TaskCallable.call(Task.java:1423)
at java.util.concurrent.FutureTask.run(Unknown Source)
at javafx.concurrent.Service.lambda$null$493(Service.java:725)
at java.security.AccessController.doPrivileged(Native Method)
at javafx.concurrent.Service.lambda$executeTask$494(Service.java:724)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

Looks like the app's song library file is corrupted. For now, you probably solve this doing the following:
While BeatmapStation is closed, please delete the file "songs.db", localized at %appdata%\beatmap-station, and start it. This'll make BeatmapStation check your installed maps again.

I'm sorry for this. I'll take a look at the code when I have some time and try to find a solution for this problem.


Ok thank you it works now
Topic Starter
Eber
BeatmapStation is now translated to Russian! (thanks a lot to i3ym ^-^)
This language should now be available on the settings window without needing to update it.

Also, this weekend I'll probably release a new update which fixes some bugs that prevent the app from running normally for Mac users.
ILikeRamen
I could help with a German Translation c:
Topic Starter
Eber

ILikeRamen wrote:

I could help with a German Translation c:

You're welcome! If you're gonna stick into translating BeatmapStation, please make a pull request on its repository =]

If you have any question, don't hesitate to get in touch with me in any place (in-game, PM, etc). I'm more active on Discord tho: Eber#3054
[ Neopolitan ]
10/10, never buying supp again -q
Haibara-Chan
I kept getting this exception:

https://imgur.com/a/EWe0UGO
Topic Starter
Eber

Haibara-Chan wrote:

I kept getting this exception:

https://imgur.com/a/EWe0UGO

Hi! I'm really sorry for this problem. It should be fixed now.

I'd like to apologize the delay, but I'm finally releasing the new version.
I've fixed some issues that were preventing mac users from opening the app and also opening the search dialog (thanks to Moltqn).

I've also added a error reporting dialog that will appear during the splash screen if the last app's execution had any error. Of course, you can dismiss if you don't wanna to report anything :)

Here's the full changelog:
  1. - Text width calculation was using a native method which wasn't working in some operating systems. Now it should be working in a more reliable way.
  2. - An error message will now appear if an attempt to run the app with any other Java version other than 8.
  3. - BeatmapStation won't die anymore if the Chat folder doesn't exist. (reported by Fusyon and Haibara-Chan).
  4. - Added a error reporting dialog.


Hope you guys like it ^-^
powaful3000
curious how well it will deal with 400k beatmaps




even though everything is on an SSD it seems to be loading forever


https://imgur.com/a/rJHPd4c
show more
Please sign in to reply.

New reply