Last month’s development updates

Normally this is a daily update on the status of the work done behind the scenes.

But the updates broke and I had to fix it. here is the whole list of updates that happened in the last month. We will resume daily updates from now on.
Our webserver is completely open source, hosted on GitHub. You can help improve the server by fixing issues here.

New Request feature

You can now change the price of a shop request without changing the requested quantity.
Simply make a request of something you are already requesting and leave the quantity away, just give a price.
It will then change the request price and charge/refund you the money as required.

User pages now contain shop history

Based on this discussion in the forum, I took a look at the shop manager and changed the way how things are setup in terms of the user history. So from now on, the “Users” section of the shop manager only shows the general stats about all active users. If you want to see detailed shopping history of a specific user, this will be now on the user page instead. There is now also pagination, so you can browse through 100% of the sales history.

Take a look!

Small Lot manager improvement

The Lot manager now shows you why lots are not in the list of available lots to chose from. There are 4 possible reasons:

  • You just cannot afford it
  • Draftland lots are only available if you own the corresponding kingdom lots
  • Kingdom street lots are only available if you own at least 1 main lot
  • You cannot buy a lot that you have dibs on.

The system simply shows how many lots were hidden for each of those 4 reasons (if applicable). I hope this clarifies the form contents a bit better.

Massive Nether region reset!

I have discovered with the help of the lag mapping tool that there is an area in the nether that caused extreme levels of lag:

Yellow here means that a chunk as loaded at least once when lag occurred, Red means the chunks were loaded when the worst lag occurred and blue means the chunk was live ALWAYS when lag was occurred. So the yellow areas one can ignore, but the red and blue ones means that this area has been the single biggest source of lag for the whole server, and it’s huge. Every square in this is 16 blocks. It spanned 2×2 regions or more precisely 400×400 blocks. When looking closer at the location, I found the following:





What you can see here is a MASSIVE area of lava flow. Someone (I know at least one person who is involved) has made a huge dig of a nether fortress while building a blaze spawner. While the blaze spawner was not an issue, the lava flow created a huge amount of lag. The server basically immediately went from 20 tps to 10 tps lag (minimum TPS, not 1-minute average) the moment I showed up there – despite the fact that I was alone on the server. Since the lava flow area was so huge and distributed over such a wide area, I could not even fix it. I had to reset the wider area of 4 region files, i.e. 1024×1024 blocks.

I won’t start naming names or banning people here, but this should be a reminder NOT to create unnecessary lava flows.

Back-end improvements, disguises

FYI, I am currently working on improvements on the back-end. The goal is to separate the Donator status from the user level. The first result will be that people won’t be called “SettlerDonator” anymore, but “Settler” and “Donator” separately. Currently, the system works with only one set of levels and this requires people to have 2 different, independent  levels at the same time, and eventually more. The ultimate goal is that we can have a set of different levels that can be used to give in-game user rights for specific commands or access to specific things without interfering with other functions. For example, we will be able to give access to lots by group membership or hand out specific disguises by achievements.

This change is quite involved however since the system is working with the current levels in MANY parts of the code and all of those need to be changed. While I have the code reasonably compartmentalized for other things (like deposit etc), the userlevels are spread all over the system. I made some way forward by finding all the functions that change, check or manage userlevels and consolidate them in one file, but now I have to make sure they all can deal with several levels being found for one user and to interpret them dynamically instead of relying on hard-coded terms.

So in effect you won’t see a lot of new improvements in the coming few days but some instances where things break for a bit when I screw up the code :D.

Also, disguises are switched off for now until I have time to figure out some strange issues with the plugin we are currently using. Please stand by for updates there.

User Forum posts back on the Profile pages

I just managed to re-add the list of the user forum posts back to the profile pages.

The links are not 100% accurate since the forum is breaking longer threads into pages, and reading the forum posts from the database I am not able to find out which page to go to. But it points to the right thread at least.

New User promotion info on Profile page

We have now a new section in the user profiles that shows the promotion history of a user. Since we keep the records of Citizen promotion only since January 2016, this is not very complete, but I still find the whole thing informative. For example, here’s Sepengo’s page:

Changes to User Promotion voting system

Thanks everyone who contributed to the discussion about the user votes. I have now made the following changes:

  • A proposal will have to include a 100 word reason for the promotion. This reason will be public to potential voters, but the promoters name will remain hidden.
  • I changed the “power” each voter level has. instead of 1-2-4-8 it’s now 1-3-6-10. This makes it easier for higher levels to down-vote a lower rank promotion and therefore requires more broad support for people on the lower rank if someone from a higher rank objects.
  • You can now Vote, Veto, Abstain or “No Vote” on a proposal. If you Abstain, this will be recorded and you won’t be reminded about the proposal anymore. “No Vote yet” will keep the proposal in your reminder. You can still change your mind while the proposal is running.
  • There is now a 1 month deadline for a proposal to be completed instead of 2 months.

Future plans:

  • I want to allow proposals only every second month, e.g. every odd month of the year (Jan, March etc). DONE!
  • The current changes are preliminary and we will see how it goes. Please continue to contribute to the matter and we can then make further changes.

Discord chat updated

I made a small update to the discord chat. Previously messages sent to the global channel with the /g <text> command while someone was mainly in a different channel would not show up on Discord. This is fixed now.