SkyBlock Minecraft Addon #22 - Dynamic challenge repeat limits & storage.sk update

in #utopian-io5 years ago (edited)
Thanks to the new limitedsleep add-on, sleeping in SKYBLOCK.SK is now less stressful, because not everyone has to sleep now, but a specified amount of players to skip the night. I had no better idea for the name of this add-on, if you have a idea, tell me please. =)

Hello everyone,

I have new things to show off about SKYBLOCK.SK today. SKYBLOCK.SK is a Minecraft server add-on based on Skript which allows the server operator to customize almost everything since it doesn't need to be compiled and works with plain files that can be changed with almost any editor.

This time, the challenges got some updates, challenges now use metadata instead of the variable database, which decreased the database size over 40kb by default. Also, other changes where made, like a dynamic challenge repeat amount, which increases over time to give late game players more opportunities to gain more levels and stuff.

1. Repository

https://github.com/Abwasserrohr/SKYBLOCK.SK

2. Index

  1. Repository
  2. Index
  3. New Features and changes
    3.1. Added limitedsleep addon
    3.2. Added dynamic challenge repeat amount
    3.3. Use metadata for challenge configuration
    3.4. Added error message if SKYBLOCK.SK is not in the right folder
    3.5. storage.sk: Added support for all hopper slots to be checked
  4. Pull requests
  5. GitHub Account
  6. How to contribute

3. New Features and changes

3.1. Added limitedsleep addon

Some people wanted to sleep to skip the night in Minecraft. Some don't follow the chat or have no bed to sleep on. This add-on allows a predefined percentage of players to sleep to skip the night. In Minecraft Vanilla, all players would have to sleep, with this new add-on on default configuration, only 40% of the players have to sleep to skip the night, which makes it easier for people to skip the night than before.

As this feature may not be liked by everyone, it can be disabled and also reconfigured to the needs of the server operator.

A pretty small add-on, but that's all it takes to make it, fortunately. I'm counting all players by looping through all of them, then, I also count if the looped player is currently sleeping.

As I have counted all players and all sleeping players, I can then calculate a percentage and look if the percentage is equal or above the threshold. This way seemed like the easiest way of doing it. =)

Again, I sometimes fall back to the tabs instead of spaces as spacing. I'm going to place some sticky notes to my screen to remind me in the future if this doesn't get better... ._.

Pull request: https://github.com/Abwasserrohr/SKYBLOCK.SK/pull/208


3.2. Added dynamic challenge repeat amount

There might be servers where people are allowed to build massive farms and make everything very efficient and big. For this reason, challenges.sk has received an update which allows increasing the challenge repeat limits by solving more challenges.

This now makes it possible to start with a low limit which then gets bigger and bigger over time, the more the player is solving challenges by increasing the challenge experience, the more repeats of challenges are possible. In my opinion, this is a great way of giving the players the opportunity to reach what they want, not instantly but slowly over time.

To show some things off, here is the getcurrentrepeats function, which needs two parameters: experience (number) and repeats (number).

The two parameters who are passed into the function then will be used to calculate the repeats the player is allowed to do based on the challenge experience and the base amount of repeats.

The server operator can modify three variables in this process:

  • xprepeatincrease:
    This variable is the default experience needed to make a repeat increase happen, the server operator can set this low to allow faster level ups or slower ones by increasing the challenge experience threshold. The default is set to 500 challenge experience.
  • repeatincrease:
    With this variable, the server operator can define how much (percentage) the repeats should be increased per experience increase. The default is set to 20 percent.
  • difficulty:
    This part will make it more difficult over time. As this variable will increase the xprepeatincrease variable each time, a repeat increase happens. This is also a percentage, which is set by default to 50 percent.
Here, you can see the challenge menu with the new repeat bonus info block, which also can be disable through the configuration, if the server operator doesn't want to increase the repeats for players.

A while loop then does the job and calculates everything, as long as the experience is equal or higher than the needed experience, it will run and increase the repeats. Once that is no longer the case, the while loop will halt and the function then returns the results.

To not confuse the players with some weird long numbers, all of them get rounded at the end.

I pitched the idea I had with this feature to some players and they liked it. I hope, they also like now how it works... =)

Pull request: https://github.com/Abwasserrohr/SKYBLOCK.SK/pull/209


3.3. Use metadata for challenge configuration

Decreasing the number of variables needed to run SKYBLOCK.SK is important to reduce stress from the database. As some server operators may not change the default settings of Skript, which is file storage, it can't work with too many variable changes at once. That's why it is important to add ways to reduce the amount of storage to reduce writes and reads from the database and move over to other ways which are reliable but less stressful for the server.

One of these is using metadata, which is an included function within bukkit, which is a server software for Minecraft that is used by SKYBLOCK.SK.

While creating SKYBLOCK.SK and the challenges some months back from now, I didn't know about metadata and I'm glad that I now know about it since it is really useful and fast.

Pull request: https://github.com/Abwasserrohr/SKYBLOCK.SK/pull/217


3.4. Added error message if SKYBLOCK.SK is not in the right folder

I encountered some bug reports of server operators who want to run SKYBLOCK.SK but had some weird issues. As SKYBLOCK.SK needs to be placed at the right spot, server operators have to place the folder at the right location.

While this is explained fast and also easy to do, there are always some people who don't read setup notes and then complain. But that said, there is currently no documentation on how to setup SKYBLOCK.SK. I want to create soon some notes on how to set up everything properly.

Now, as there have been some reports that islands aren't loading correctly, the problem wasn't that hard to identify. People didn't place the SkyBlock folder into their scripts folder but rather named it skyblock or something else. While it is nice to customize the folders to make it easier to understand what is in there, SKYBLOCK.SK needs the SkyBlock folder to load islands and configuration files because they're located there.

To make it less confusing, I added a function which will check once on load if SKYBLOCK.SK is placed properly. If it isn't placed at the right spot, it will alert everyone on the server to ensure the server operator gets the information.

Pull request: https://github.com/Abwasserrohr/SKYBLOCK.SK/pull/218


3.5. storage.sk: Added support for all hopper slots to be checked

People are always thinking ahead of what I think, I had to ensure that there will be only the right items put into storage units. Then people thought of making a sorting unit out of it, which didn't work quite well because the storage unit was only able to check the block which has been transferred to the storage unit. While this was nice for normal storage units, people want to step up in their game and evolve.

Now, storage.sk storage units check through all slots of the hopper, which wants to fill stuff into the storage unit, if one item in the hopper matches with the stored item, it gets filled into the unit. That way, people can now create some crazy sorting mechanisms with fewer sorters.

Here is a video which shows how all the slots are now checked, not only the first one, which transferred the item:

Pull request: https://github.com/Abwasserrohr/SKYBLOCK.SK/pull/219


4. Pull requests

https://github.com/Abwasserrohr/SKYBLOCK.SK/pull/209
https://github.com/Abwasserrohr/SKYBLOCK.SK/pull/217
https://github.com/Abwasserrohr/SKYBLOCK.SK/pull/218
https://github.com/Abwasserrohr/SKYBLOCK.SK/pull/219


5. GitHub Account

https://github.com/Abwasserrohr


6. How to contribute

If you want to contribute to SKYBLOCK.SK, contact me here in the comments or on Discord. Please contact me directly, I'm the sewage pipe on Discord. I'm looking forward to meeting people who want to get in touch with Skript and Minecraft.
If you never had anything to do with programming, SKYBLOCK.SK could be a great way to start. Skript is easy to learn and gives you the opportunity to understand how things work and also get the idea behind object-oriented languages, like Java while playing a game.

Discord: https://discord.gg/FRuK5BC


Currently, I'm working on some exiting new features involving inventory mine carts, I hope everything works as expected so I can show this off in the next post. :3

Thank you for reading my contribution post.

This time, most of the changes were made due to requests by players of SKYBLOCK.SK, thank you for your suggestions, @levant, @mcsiempre, and @altonos, you guys really help to get some pretty exciting features into SKYBLOCK.SK.

If you have feedback about this contribution post, the changes I showed today or SKYBLOCK.SK, feel free to share it with me.

Have a nice day

@immanuel94

Sort:  
  • Great article as always with a video, code samples, images and great explanations.
  • Good job on helping with misconfigured installations.
  • I wish sometime I could skip sleep as well.

Your contribution has been evaluated according to Utopian policies and guidelines, as well as a predefined set of questions pertaining to the category.

To view those questions and the relevant answers related to your post, click here.


Need help? Chat with us on Discord.

[utopian-moderator]

Thank you for reviewing my contribution post. =)

Yeah, skipping the sleep could be handy sometimes... :3

Thank you for your review, @helo! Keep up the good work!

Die neuen Features sind sehr nützlich. Ich würde mir noch eine "autocraft" und eine Filterfunktion für Trichter wie im SV wünschen :D

Ja, eine autocraft Funktion würde sicher praktisch sein, werde ich mal schauen, wie wir das einbauen können. =)

Vielen Dank für deine Ideen! ^^

Thanks for the fast implementation of the whished feature.
For me it makes the Skyblock Gameplay much easier.

Thanks for the feedback! =)

If you got some other ideas, just let me know.^^

ich finde die neuen featchers sehr toll

Freut mich, dass dir die neuen Features gefallen! =D

die neuen sachen sind super

Super, dass du die neuen Sachen super findest. :P

klack NOICE

Hi @immanuel94!

Your post was upvoted by @steem-ua, new Steem dApp, using UserAuthority for algorithmic post curation!
Your post is eligible for our upvote, thanks to our collaboration with @utopian-io!
Feel free to join our @steem-ua Discord server

Congratulations! Your post has been selected as a daily Steemit truffle! It is listed on rank 3 of all contributions awarded today. You can find the TOP DAILY TRUFFLE PICKS HERE.

I upvoted your contribution because to my mind your post is at least 10 SBD worth and should receive 103 votes. It's now up to the lovely Steemit community to make this come true.

I am TrufflePig, an Artificial Intelligence Bot that helps minnows and content curators using Machine Learning. If you are curious how I select content, you can find an explanation here!

Have a nice day and sincerely yours,
trufflepig
TrufflePig

Hey, @immanuel94!

Thanks for contributing on Utopian.
We’re already looking forward to your next contribution!

Get higher incentives and support Utopian.io!
Simply set @utopian.pay as a 5% (or higher) payout beneficiary on your contribution post (via SteemPlus or Steeditor).

Want to chat? Join us on Discord https://discord.gg/h52nFrV.

Vote for Utopian Witness!

Congratulations @immanuel94! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :

You made more than 10000 upvotes. Your next target is to reach 11000 upvotes.

You can view your badges on your Steem Board and compare to others on the Steem Ranking
If you no longer want to receive notifications, reply to this comment with the word STOP

To support your work, I also upvoted your post!

Do not miss the last post from @steemitboard:

Carnival Challenge - Here are the winners
Vote for @Steemitboard as a witness to get one more award and increased upvotes!

Coin Marketplace

STEEM 0.18
TRX 0.14
JST 0.029
BTC 57893.29
ETH 3130.56
USDT 1.00
SBD 2.44