About uncovery

Owner & admin of this server.

Darklands Challenge, anyone?

I have been thinking it would be fun to have a darklands challenge:
You buy a “ticket” for some Uncs (how many, that’s the question) and the system would teleport you to the darklands, but very, very far out (i.e. 200k blocks+). And your challenge would be to try to come back.

Anyone interested in that? If so I could make that, since it’s not difficult. But I would like to hear everyone’s opinion first.

New Shop Manager!

In an effort to further streamline and simplify the website, I have now created a shop manager, similar to the lot manager. At this moment this includes only the personal shop & deposit pages as well as the help informations for shop and deposit, but will eventually grow to host a much more versatile, 100% recursive database where any information can be called through one interface and replace the pages related to the shop in the “Features” menu.

There will be also a revamp of the main menu once the current shop pages in the main menu are removed to make navigation simpler than it is today.

Go-Go Usericon Gadget!

Since I had some quite frustrating day yesterday preparing the server for UUIDs (the server was down for over 1 hour) I now dropped into a more rewarding gadget-frenzy and added a list of usericons to the frontpage that shows all users that logged in during the last 49 hours. The colored bar next to them shows if they are still online or not, and hovering above them shows when they have logged in last time…

have fun!

Code speed-up

I made the userlist now use UUIDs instead of usernames, and now it loads in a few seconds instead of half a minute.
I also optimized the code loading the 2D map, and that one should now also load in 5-7 seconds instead of 20-30.

Yay!

Preparing for 1.8

I have worked in the past months here and there to prepare for the rough outlines of 1.8 by introducing a table of UUIDs (long series of numbers and letters which will replace usernames in the code) and block names (which will replace block numbers).

So far the backend of the whole thing works, and I have the new data for pretty much everything and everyone. The issue however is that the code still uses numbers for blocks (in the shop for example) and usernames to identify people (pretty much everywhere). It is time now, with 1.8 coming, to end that.

So right now I am going through the whole code form top to bottom and change every time where someone is identified with a username to their UUID. At the same time, I have to go through all the tables, add a UUID field, populate that with the UUID that matches the username in the line and then change the code that calls the table to use that new UUID field. Then I can remove the username field from the table.

The biggest advantage of this is that I do not have to deal with differently capitalized usernames anymore: Users used different capitals in-game than when registering on the blog. Some plugins who use tables use capitals, others do not. If I am not sure if 2 tables use the same methods, lookups between two tables have to be done with a “IF a LIKE b” instead of “IF a = b”, which is much, much slower. For example, the fact that the user list takes more than 30 seconds to be generated, is because of this issue.

So expect some small bugs while I am working on the code :). It will probably take 1-2 weeks, depending on what comes up.

Idea for banners

While the possibility to use banners is still some weeks away (1.8 has to be released, then all the plugins updated, and then we need to upgrade), I have been thinking it would be cool if we could have a system where users can define a banner that is unique and cannot be used by other people. Please note this is a draft and I am not even sure if this is feasible. See why below.

To achieve that we would have to:

  1. Disable manual creation of banners. Banners would be made on-line (on a website like this) and then given to yourself with a command (and possibly for money).
  2. Users could reserve an amount of banners for themselves, depending on their user level and donator status. Those reserved banners would belong to them, and nobody else would be able to make the same banners.
  3. Optionally, certain colors or elements would be permitted only for certain userlevels. So for example, only DonatorPlus would be able to use the Creeper logo, and only Elders would be able to use the color Purple
  4. In order to force a certain complexity, there would be a minimum of 4 layers so nobody can reserve a black only banner.
  5. To prevent that people do not make a black only banner by covering up 2 other elements by a black top and black bottom half, a logic would have to be introduced that prevents banner-filling patterns on top of other things. This should be possible, but probably complicated. If this is somehow not possible, the whole thing would become a bit meaningless.
  6. In order to make better use of rare items to be used for banners (creeper & wither skelly heads), we could require people to actually have one of the items in their inventory before they can get a banner.
  7. Potentially we could also limit the amount of layers per user level.
  8. Any pattern/color combination that is not reserved in any way would be available for anyone, anytime.

So I guess the whole thing stands and falls with this question: Can we have a logic, that would prevent reserved banners to be replicated easily with a different, but similar pattern?

One way to do that is to require the reserving user to simply pay attention that they do not create a banner that is easily replicated. The other way is that we simply do not allow more than one of the elements that would in combination cover the whole surface.

Any other ideas that could make this more interesting/feasible?

 

User Icons workaround

So far, we have been retrieving user icons live from the Minotar website. while this works fine 99% of the time, it sometimes fail on the one or other user and this screws up things like the 2D map, the settler test and others.

So I have written now a system that tries to download all current lot owner icons once a day and reloads them from there. If the user does not exist on the local storage, it will still fall back on the Minotar one but still download it for later use. In any case, we rely less on network connections to other servers and this should be a good thing.

Work in progress & the hunt for errors

So some days ago, I tried to get a better grip on errors. Thing is, that normally, when you develop code on a linux box, you do so as a normal user. When something does not work, you need to log in as admin, browse to the folder where the logfiles are, see if you find the appropriate error (if there is one), log back as a normal user, change the code, hope it works, and if it does not, you do the same all over again.

It’s tedious. That’s when you are working on it. When something goes wrong while you are, let’s say, fast asleep, the only chance you have is that your users realize that something goes wrong and post a ticket. You then see the email, log in as admin, look for the error etc.

Important to say that there are a lot of so-called “warnings” and “notices” the system can store if you want which tell you if your code is not 100% written for safety in mind. With 2200 lines of code, I estimate that I have about 200-500 places in the code that create these notices – if I want. 80% of those are not really issues, but how would the system now. The logfile usually only stores the really important errors. The rest just disappears.

So I wanted to get some alerts when something really weird happened and set up an error reporting system that would send me an email when predictable things would go wrong. This would allow me to track errors that I could not quite pin down and send me a lot of information about variables, users and so on at the same time, which would not end up in the log files in the first place.

This worked fine, for 1-2 weeks. I then liked it so much that I used it regularly during writing code, so that I would get an email as a way if the code does what I want. The issue started when I made a mistake when iterating a larger amount of data and the system sent me 800 emails at once. Then, towards the evening, people started complaining that their registration emails would not arrive. I had no idea what happened for 2 days, until on the third day, I remembered that I have a 1000 email quota on the server which has been maxed out and thus also the actual important emails would not be sent anymore.

So I learned finally how to program my own error management system where I can decide what happens with errors instead of having the system write it into a logfile which is annoying to reach. So I had errors written into a database where I can access them from the website, group them by frequency and so see which ones are occuring the most and therefore should be fixed first. That allowed me also to make the system report all the warnings and notices, so that I could better audit the code.

But then I had the idea that I could get something more direct, more like email, but without the quota. I thought about IRC messages, but it’s a bit annoying since the server login etc takes time since the server is not on the local system. So I researched a bit more into instant messaging and found the XMPP protocol (formerly “jabber”), the same as used for google talk or facebook chat

Then I installed a XMPP chat server on the machine, taught the minecraft system how to send messages (that was the hard part) and now I made the system send me instant messages which do not have a quota, arrive instantly, even on my cellphone if I want to, AND I can send myself now all the notices and warnings to properly patch up the code.

So the last 24 hours or so I have been patching a LOT of small stuff in the code, which of course does not go smoothly all the time, but at least the server is code-wise in a much better situation, and getting much better and cleaned up substantially. And if there is an error, I will now about it instantly :-)

On top of that, we can theoretically have users use it. It would be like IRC, but fully locally authenticated, and people could get instant messages on their cellphones when they get an in-game message or their stuff is being sold. Of course this is all just distance future, but still nice as an option to have more feature freak :-)

New Block & Item Directory

I have started to write a new Block & item directory. You can find it in the Money & Trading submenu. I will integrate this with the shop data so we will have a fully circular referenced list of all items, sellers, buyers and transactions eventually. This list will for now help you to find item names. It also contains items and blocks of future versions, since I update the list whenever a weekly build contains new stuff.

New Settler test active now!

I have made the new settler test now active. Since some people in the past pasted the link to users, please note the new link is http://uncovery.me/server-access/buildingrights/.

If you find direct links to the old page somewhere on the website, please tell me so I can change them. The old test will remain active and usable. If people run into trouble with the new test, they can still use the old one for the time being.

Good news, everyone!

Ok, so there are several good news to be shared:

1) The relatively new server list is deleting the vast votes every month. Since we have relatively many votes, we pop up on top of the list now. There are only 5 other server with more votes than us (mostly those with permanently 20 or even 100+ users online), so we are on spot No. 6 and therefore very visible on the first page of the website. We are already getting more users from that list, which is great! Thanks to all the voters!

2) I had the idea to install a better referrer tracking. This will allow us to track when people coming from an external website such as a server list becomes a Guest and later if they become a Settler. So we can judge the effectiveness of the server lists better.

3) The new settler test seems to be working finally. Thanks to all of you who have been helping me testing it. The new test includes a bunch of new functions that I have never used before (like the HTML <canvas> element) and Javascript items (I do not know a lot of JS, so I had to learn), so it took a bit of time but I finally got it all working. I will be switching the new test live but keep the old one as a backup. Users facing issues with the new test will be able to fallback on the old one in case of problems.

New Settler application issue: Please help!

There seems to be an issue with the new settler test, where usernames do not show up on the 2D map during the test. I have a hunch that this is issue regarding differently capitalized usernames in different parts of the system.

I did some debugging, included new notifications into the application and hope that this is fixed now.

It would be REALLY helpful if you can all try to do the new settler application and tell me if something went wrong! If this does not work 100% when we replace the old one, there will be tons of complaints from the guests in chat. On top of that, this new application is specifically designed to reduce guest complaints, confusion and ramp up the user numbers. So please help!

Please test the new Settler-Test!

I have now finished the new Settler test (except for some formatting to make it look nicer).

Please be aware that the whole thing has moved from an actual Settler-Test to a “Guide to get a lot”-style of thing.

It does not do anything yet (it does not reserve a lot or promote you to settler), since I want to make sure that it works 100% before we replace the old one. So I would like to ask all of you to try it out. Please check for the following:

  • If you do all correct, does it work as expected?
  • If you do something different than the instruction, does to re-direct you properly (including not making any selections etc)?
  • Are there any rule or other questions in additions that should be asked?
  • Is it clear and possibly fool-proof?
  • Could the description be shorter (people don’t read the text anyhow)?
  • Any other improvements?
  • Do you like it?
  • Are there any typical questions new users ask that should be addressed in this?

Please comment here for anything!