SkyBlock Minecraft Addon #15 - Improved menussteemCreated with Sketch.

in #utopian-io5 years ago (edited)
By planting spruce trees, players were able to produce cheap dirt by converting coarse dirt to podzol, which could have been used to duplicate dirt.

Hello everyone,

This time, I wanted to make some already existing features and functions better. I have gathered some of these improvements on the issue page on GitHub together. These improvements are going to make the experience of SKYBLOCK.SK easier and more comfortable. Especially the menus are now easier to navigate through, thanks to the "back" item, which allows getting to the previous menu with only one click. I also tried to use a feature called custom syntax in skript-mirror, a dependency of SKYBLOCK.SK. Can this feature replace long functions with human readable text (syntax)? You have to read through of you want to know. :P

1. Repository

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

2. Index

  1. Repository
  2. Index
  3. New Features
    3.1. Added custom syntax using skript-mirror in gui.sk
    3.2. Added a "go back to the previous menu" button/item
    3.3. Completed challenges are now glowing
    3.4. Podzol can't be changed back to dirt anymore
  4. Pull requests
  5. GitHub Account
  6. How to contribute

3. New Features

3.1. Added custom syntax using skript-mirror in gui.sk

I know already for some time that there is a very nice feature in skript-mirror, which allows custom syntax for Skript. I really liked the Idea of having it included in SKYBLOCK.SK and replace some functions which are too long in my opinion.

One of them is the setguiitem, which has 8 parameters.

setguiitem(player,integer,item,integer,text,text,text,boolean)
As you can see, it is quite big without any real data. I already can remember all the parameters, because I used it the last two days quite often but if I were a beginner, I wouldn't be comfortable with this function. Instead I would really like to have a custom syntax which makes sense and is easy to remember.

A small example on how custom syntax can be created.

I never really used the custom syntax of skript-mirror, but I wanted to try it out. On my little test file, everything worked fine and that's why I'm now started to add custom syntax into the gui.sk add-on, which has one of the most painful function parameters to remember in SKYBLOCK.SK.

Creating a new custom effect is pretty easy; I just have to make some patterns which should be detected once the skript is loading. Here I wanted to make patterns for the setguiitem function. Because gui.sk is not only interesting for SKYBLOCK.SK itself but also for other skript users, I also added multiple patterns which allow more use cases with this custom syntax.

Here, you can see the custom syntax which I created to replace the setguiitem function.

As you can see above, this doesn't seem to be that hard. Now while it doesn't look hard, there are some things that make it harder.


  1. Skript might already use some patterns:
    Because Skript and other add-ons for Skript also search for patterns, we can easily encounter some problems. I have to be sure to not get in contact with these, since this would mess up our pattern and maybe also other skripts, which could lead to frustration later for users of the add-on, since detecting the cause would be impossible without knowing how gui.sk works.

  2. Skript is sometimes weird:
    As I tried to create this custom syntax above and use it with triggers, it worked fine. But in some cases, also in my case, I ran into problems once I wanted to set the slot, in which the item should be placed. Because I didn't know what I did wrong exactly, I tried around 2 hours to find out that my problem was the type of the variable.

    Here is an example of things that can get weird:

    As you can see, the first custom syntax has the slot directly set, while the second custom syntax below (which is exactly the same) has the slot set as a variable. Which turns out is not the same type.

    Because I really didn't know if that was a bug or not, I created an issue on the issue page of skript-mirror.

    By using %int% instead of %integer% in my custom syntax for the setguiitem function replacement, I could fix it with that change.

  3. skript-mirror is still pretty new:
    skript-mirror is a very nice tool to get Java into Skript and also for things like custom Skript syntax. But skript-mirror is very new and could may contain some bugs. I encountered one bug, which happens if I reload the whole SKYBLOCK.SK add-on in one step by entering the /sk reload SkyBlock/ command, the custom syntax isn't loading first, unfortunately. Which means that the custom syntax doesn't work until the skripts, which contain the custom syntax are reloaded again. While there are some workarounds for that, I didn't want to add workarounds, as long as there are functions, which are working perfectly fine.

    As I tried to replicate the error to create another issue on the skript-mirror issue page, I found myself not able to replicate the same error outside of SKYBLOCK.SK, maybe there are too many files or folders. I hope I find a solution to replicate the error to report it soon.

    Until the custom syntax is not loading directly on load, I can't use it, as this would make SKYBLOCK.SK unstable. But it is here and it works, if it loads in the right order in the future. Server operators, who only use the gui.sk file might also not get this behaviour, because they may don't have so many subfolders.


Now with that said, I'm really glad that the custom syntax of skript-mirror exists. I'm still very excited to replace setguiitem in the future, as you can see below.

Commit: https://github.com/Abwasserrohr/SKYBLOCK.SK/pull/122/commits/f49056a357111fee507f857bde89c891194b5352

3.2. Added a "go back to the previous menu" button/item

Having a main menu, which can be opened using /island is very comfortable and easy to use. But because all the menus, which where reachable through it didn't have any "go back to the previous menu" button/item, users had to go out of the menu, reopen the main menu using /island and find what they want again.

This is now no longer needed, since all menus have now an item in their slot, which reopens the previous menu page. With that, the whole experience is better. I also improved the look of many menus. To show off the new functionality, I have added a video where I go through the menu.

Commits: (these are all included in the pull request #115)
1: Improved the look of the island selection menu & added back item
2: Added back item to the challenge menu
3: Improved overall look of the lootbox menu & added back item
4: Improved overall look of biome menu & added back item
5: Improved overall look & added back item
6: Back item added & language menu improved

3.3. Completed challenges are now glowing

If a user completed a challenge or repeated it until the maximum amount of repeats is reached for that day, the item of the challenge is going to glow to signal the player that this challenge is done and can't be repeated again. This helps players to navigate faster through the inventory.

Here is a little video to show off this small new feature:

Commit: https://github.com/Abwasserrohr/SKYBLOCK.SK/pull/122/commits/e38021a01ff3e37d2b24d3401e61a860882cbae5

3.4. Podzol can't be changed back to dirt anymore

@altonos has created a issue that it is possible to convert coarse dirt to podzol using spruce trees, I had to include it fast into SKYBLOCK.SK to prevent any duplication of dirt. Because dirt is very valuable in SkyBlock, it shouldn't be possible to convert coarse dirt into dirt back. Since breaking podzol with hands produces dirt, my first thought was to simply give podzol as drop instead of dirt if the podzol block is mined by a player. And it works fine that way. @altonos suggested that the coarse dirt crafting recipe could be removed. While that would be possible, these dirt blocks are nice for decoration. I didn’t want to remove these blocks entirely out of the game and only remove the duplication method because of the decoration purpose, these blocks serve.

To show off how players could potentially duplicated dirt using gravel, here is a video on how that worked before the fix, I didn’t know about it and I’m sure that this is something new, otherwise I would have added it from the beginning:

By using the binddirt function, we can force to drop the exact same block as the player mined by changing the last parameter, a boolean to true like in this example:

Commits:
1: Changed binditem function

2: Prevent dirt duplication through podzol revert

4. Pull requests

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

5. GitHub Account

https://github.com/Abwasserrohr

6. How to contribute

You're interested in contributing to SKYBLOCK.SK? Join on the Discord server below to get detailed information on how to contribute. I'm Abwasserrohr there, the sewage pipe guy. =) Also, if you’re already into Skript and have everything you need, you can directly start with pull requests.

Discord: https://discord.gg/FRuK5BC


Thank you for reading my contribution post. This time, I could have made more pictures of all the improvements in the menus, but decided to make some videos instead to not fill up the whole post with huge gifs. As I have seen, @altonos is also using #skript and helped me out finding a way to duplicate dirt. Maybe I found someone who can help me by contributing to SKYBLOCK.SK... =)

In my last contribution post, I used pictures from https://carbon.now.sh. To improve the posts here (hopefully) further more I decided to use screenshots of my editor, which I use to write SKYBLOCK.SK, in Notepad++. Feel free to give feedback, what you guys like more, the carbon one or the screenshots from Notepad++?

If you have feedback to my post, SKYBLOCK.SK as a project or anything else you want to tell me, feel free to tell me. I'm very open to new suggestions, bugs and anything else there could be. :)

Keep on steeming

@immanuel94

Sort:  

Great post once again, Immanuel! Reading about you adding custom syntax using skript-mirror was very interesting. Also the other features you have added are pretty cool, and it's great to see other people (also on this blockchain) reporting bugs, with you subsequently fixing them!

As for the code; I'd love to give some feedback, but since I've never used it before, it's not really possible for me to do so. I did play Minecraft in the past though, so it's pretty funny looking at the code - it's pretty easy to understand! I also watched a let's play by Rooster Teeth recently (Sky Factory), have you seen it?

Anyway, great work once again! Looking forward to seeing future updates from you.


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. =)

I use Skript for SKYBLOCK.SK because of the code, which is easy to understand. That way, server operators, who want to setup a server don't have to learn Java to customize their server like they want.

I haven't looked into a let's play for Sky Factories yet, but I'm looking into one right now. While I try to deliver a good experience with vanilla Minecraft, it is nice to see what is possible with modded Minecraft. Adding some custom things, like robots, which mine for the player are on my to-do list.

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

Nice to see you work so actively on Skyblock

Hello @altonos! =)

I really like SkyBlock as a game myself and that's why I want to get things done currently on SKYBLOCK.SK. If you want, I have some stuff to do there, if you're interested. Thank you again for reporting the issue to me, that players could get that much dirt. ^^

Nice to see thee server being actively worked on! :)

Hello @fgs! =)

Thank you for you feedback. :3

sehr praktisch alles wichtige auf ein blick

Freut mich, dass dir die neue Menü Wege gefallen. =)

das neue Menue im SB ist echt praktisch, gut gemacht!

Gut, dass dir die neuen Menüs auch gefallen. ;)

Wenn du Feedback hast, schreib mir gerne was dazu auf Discord oder hier in die Kommentare.^^

das neue Menue sieht mega cool aus, wurde echt gut gemacht

Hallo @jongartv,

freut mich, dass dir die überarbeiteten Menüs gefallen.^^

Great work ;-) !

Hello @zonguin! ^^

Thank you for your comment. :3

Das neue Menü ist echt gut geworden. Schön übersichtlich.

Ok, vielen dank für dein Feedback. =)

Das neue Menue ist echt toll.

Freut mich, dass dir das neue Menü gefällt.

Falls du noch weiteres Feedback hast, melde dich gerne.^^

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 8 SBD worth and should receive 134 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

Coin Marketplace

STEEM 0.20
TRX 0.13
JST 0.030
BTC 66899.66
ETH 3464.07
USDT 1.00
SBD 2.80