Skyblock solution

I have done some investigation regarding the Skyblock system. To recap: If people are supposed to do building challenges with little resources, we need to prevent cheating by a moving goods from an easy challenge to a difficult one. This means that one has to prevent people who are in a challenge to visit other lots, most of all those who are not part of a challenge.

In the darklands we have the solution that people simply cannot teleport at all. We introduced  that also to enhance the survival aspect. I can understand that preventing any and all teleportation in the skyblock is a strong hammer, so I have looked for alternative solutions.

There is another feature that we so far have not used. It’s a worldguard flag that prevents entry into a lot for non-members. I have tested it and it works reliably with all teleport commands. If we block people from adding other members to their challenge lot, nobody can visit the challenge lots except the owner. To prevent the owner of a challenge lot to visit other lots, we would have to set all lots in the skyblock with this flag.

So the consequence would be that if you want someone to see your lot or cross it even, you would have to give them member status. so while before you would allow someone to use your spawner or cobble generator, you would have to give them access to your complete lot.

From my perspective this should be still an acceptable solution, but I would like to hear opinions on it. The issue is that I am REALLY reluctant to open another world for this. We have only a lot occupancy of below 25% and roughly 30 users per world. If we really needed another world for this feature, I would start downsizing the skyblock, aether and the flatlands massively since they are the least used worlds. My worry is that there are only a handful of very active users of the skyblock anyhow and I would think that the new feature I am planning would change that.

Skyblock challenges: Setup

With the recent updates to the lot manager, I have now everything in place for a new system: Skyblock challenges!

What is it?

We currently have one skyblock type available. You play it until you lose something important or until you get bored with it. The new system is more like a level-based challenge. There will be several types of skyblocks, each with a level number 1-10 etc. Each type is harder or has a different challenge than the previous one. In order to be able to play a higher challenge, you need to finish the previous one. “Finishing” a challenge is achieved by acquiring a predefined amount of a certain item and submitting it to the system. Once you have done this, you can try the next level.If you fail, (by dropping something etc) you need to try again. Challenges can be time-based and amount-based.

Since there is a risk that someone from a easy challenge hands over items to a harder challenge user, we will have to disable lot warping and teleporting in the skylands just as it is now in the darklands. Also, all lots will have a wall around them to prevent people from jumping over from one lot to the other. This will of course affect the existing skyblock players, but I hope there is understanding for that. So people will be able to warp to their own lot, but not to others.

For example:

  • Level 1: You have the default skyblock setup; Gather 100 cobble.
  • Level 2: Same setup (you start from scratch): Gather 100 cobble in 15 minutes
  • Level 3: Gather 100 saplings
  • and so on… there can be dozens of those, See some ideas here: http://pastebin.com/qeTcReZ4
  • We can have a race for challenges. Everyone is measured how long they take to finish a challenge. Who can get a certain item in the shortest time? (a.k.a the skyblock olympics :)

How can you help?

I need proposals for skyblock setups and challenges. It would be great if you guys can take a look around on the countless other skyblock servers to see what types of setups they are using. If you have an idea, please submit it on this spreadsheet. Please add your username so we can credit you.

Opinions?

Is this something you would play? Would you be willing to restart the skyblock to get the next challenge? I initially thought that each challenge should start from scratch. Another option would be to have only certain levels start from scratch and others can be done on the same block (e.g. farming carrots and pumpkins from the same block, for mob farming you need to start over, time challenges are always from scratch)

 

Flatlands & Draftlands lot options now available!

Thanks to Azkedars help, you can now reset your flatlands lot to 3 different options:

  1. The normal flatlands
  2. the “tech-lot” with hollow underground and 5-block markers (like lot flat_c20)
  3. a lonely island! (like lot flat_d20)

The draftlands lots can now be reset to the current kingdom lot equivalent! In respect to additional options for the flatlands, I will be looking for more different lot types to build. If someone wants to make a lot with an underground nether world from 0-60 block height, that would be a great thing to offer too.

 

Small update

So I had a lengthy chat with a system admin at the hosting company to try and nail down the issue and see what we can do now that the server is up and running. From a look at the logfiles and the different other indicators, we concluded that the most likely thing is a network/network card hardware/network card software issue.

When the server goes down, the minecraft server actually continues to run but stops doing outgoing connections. The webserver gets incoming connections but does not serve replies to the outside. So it’s as if the server server can still hear but not talk.

To test this and what could be wrong, I would need to shutdown  the server and wait until support personnel has time to take a look at it. Since we were already 6 hours down today, I wanted to avoid that. So I will just wait if the issue happens again and then ask for support. The chances that the issue can be properly identified then should be quite good, and better than if we do a “cold check” without the issue occurring.

The good news is that we most likely will not have to cold-crash the server with a power cycle since we know that the server does not seem to 100% freeze up during this issue. Also since I spent already some hours yesterday and today to recover from the crash I now know how to get back online much faster and stop searching for issues that do not exist.

Server back up

So the logfiles and the memory test did not reveal anything. If the machine goes down again, I will ask support to take a look at the machine instead of just power-cycling it.

Maybe there is just an issue with the network card or similar that is causing issues.

The errors that I got over the last 24 hours during this and the last crash pulled me off-track to find out what is wrong. The first thing that happened yesterday and today was that on restart of the server the “session.lock” files of the worlds where reported to be write-protected. This can happen when the server crashes mid-session, so deleting those does the trick normally. But then, several worlds reported files to be inaccessible despite the fact that the user rights on these files were good. I guess there is some instance that when those files are written to while the server goes down, there are some issues leftover and the file has to be reloaded from backup. Luckily, and strangely, so far only the draftlands, hunger and city were affected. I have no idea why because those have been hardly accessed at all. This made me worry that I have another HD crash like some time ago. I still cannot rule out this issue.

The next thing I ran into was the issue that I did not auto-start the ntpd, which automatically synchronizes the time. The server, when crashing at 10:00am HKG time, restarts with that time, assuming it’s UTC. It then reads in a config file that the time should be HKG time and adds 8 hours to it. Now we have 18:00 in the evening. After the crash yesterday I started everything up, realized we have the wrong time and then fixed it by rewinding the clock 8 hours. Problem was that there is a file cache for PHP that does not report any file changes to the webserver and continues to use he old versions that were all seemingly 8 hours newer than what was on disk…. So for 3 hours I went mad because none of the file changes I did made an effect on the server, until I figured out I needed to restart the webserver…. Since I now have the time fixed on start, this wont be an issue anymore.

I am still, as written above, not clear why the server crashed at all. All I can see from the logfile in Minecraft is that all users lose network connection before that happens.

Server crashed again…

So the server crashed again and I have no idea why. On top of that, when restarting the server, the worlds in the RAMDisk always act up with an error:

java.io.FileNotFoundException: ./kingdom/region/r.0.0.mca (Permission denied)

This makes me think that there is something wrong with the RAM. This could well be the reason for the whole issue. So I am testing the RAM now.

Flatlands Lot resets now possible!

You can now chose to reset your flatlands lot back to a blank lot any day. You can chose to “reset to Reset to Normal flatlands lot” in the lot manager. That means it will be wiped but you keep it. The reset happens at the next server restart. I will gradually enable more features along this principle, stand by for more!

Server crashed….

The server was down for 2 hours, managed to have it restarted. It seems that something either froze or crashed the whole machine. I tried to reboot it but some bad config from the provider failed to connect it properly to the network, so that took it a bit longer to come back up. It’s back up now.

There seems to be some permission issue or otherwise where the data on the ramdisk cannot be saved. It affects the hunger world and the draftlands. I am getting this here and do not know why:

[12:47:24 WARN]: net.minecraft.server.v1_7_R1.ExceptionWorldConflict: The save is being accessed from another location, aborting
 [12:47:24 WARN]:        at net.minecraft.server.v1_7_R1.WorldNBTStorage.checkSession(WorldNBTStorage.java:72)
 [12:47:24 WARN]:        at net.minecraft.server.v1_7_R1.World.F(World.java:2688)
 [12:47:24 WARN]:        at net.minecraft.server.v1_7_R1.WorldServer.a(WorldServer.java:812)
 [12:47:24 WARN]:        at net.minecraft.server.v1_7_R1.WorldServer.save(WorldServer.java:796)
 [12:47:24 WARN]:        at org.bukkit.craftbukkit.v1_7_R1.CraftWorld.save(CraftWorld.java:664)
 [12:47:24 WARN]:        at org.bukkit.command.defaults.SaveCommand.execute(SaveCommand.java:30)
 [12:47:24 WARN]:        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:199)
 [12:47:24 WARN]:        at org.bukkit.craftbukkit.v1_7_R1.CraftServer.dispatchCommand(CraftServer.java:547)
 [12:47:24 WARN]:        at org.bukkit.craftbukkit.v1_7_R1.CraftServer.dispatchServerCommand(CraftServer.java:534)
 [12:47:24 WARN]:        at net.minecraft.server.v1_7_R1.DedicatedServer.aw(DedicatedServer.java:309)
 [12:47:24 WARN]:        at net.minecraft.server.v1_7_R1.DedicatedServer.u(DedicatedServer.java:274)
 [12:47:24 WARN]:        at net.minecraft.server.v1_7_R1.MinecraftServer.t(MinecraftServer.java:560)
 [12:47:24 WARN]:        at net.minecraft.server.v1_7_R1.MinecraftServer.run(MinecraftServer.java:467)
 [12:47:24 WARN]:        at net.minecraft.server.v1_7_R1.ThreadServerApplication.run(SourceFile:617)

I have now disabled both those worlds and everything seems to run fine. I will have to find out what exactly is doing this and then I can re-enable these worlds.

Last step to phase out old lot reset process

I have now enabled the lot reset process of the new lot manager and if this one works nicely over the restart in 2 hours, I can finally delete the old code. Then, we can start testing the lot moving where you can get a different lot copied over into your lot (in flatlands, skyblock and draftlands for example).

Yay!

New /who command

I have programmed a custom /who command now that allows for a more compact and informative display.

  • First of all, it groups people by userlevel, ignoring the donator status. Instead, the donator status is indicated as in Chat with a “+” or “++” after the username.
  • Secondly, the user are properly sorted by ranks in ascending row.
  • Thirdly, you can do a /who where and see the world the users are in.

2014-02-06_14.40.45The command is part of the “/mod” commands (did not know where else to put it, and did not make a new plugin for it), so you can get help for it in-game with /helpme mod who. If we get more miscellaneous commands over time, I might make a separate plugin for it.

Visual Improvements

Changes done:

  • The [G] for channels at the beginning of each line is gone. We have the color for channels, so I felt this is redundant. With the new vanity titles, space on the screen is getting tight
  • The display for /find has changed to list the ID and prices first so they never get broken into the next line.

Uncovery Logo, Step 2:

I asked for ideas on the first post because I wanted to avoid people going ahead and working on finalized designs before we know what we actually want. Now some people have submitted ideas and others have submitted designs.

From the links that I can open, I got the following designs and my opinion on it. I try to keep this as generic as possible so that we can narrow down on a general design instead of talking about something too specific.

  • Azkedar:

    I like that it’s easy to see and recognize from far away (what and Icon should be). I am a bit torn on the details because it looks a bit like a patchwork. I would think we should have something that is even easier to recognize and looks a bit cleaner than that also for the pattern/fill.
  • Ktechwhiz:

    I like the idea of an open chest as a main logo. I am however not so sure what could be coming out of the box and the background since white might look funny on the server list background.
  • Silver82:

    If we put writing like that on the logo, I think it should be better readable. I also think we need a something more unique or story-telling than the blocks or the mirrored U as a main object in the logo. I like the round text around it since it gives some shape to it.

As a summary, I would say that either a “U” to symbolize “Uncovery” or another distinct object/background to symbolize an Uncovery (like the chest) is a good thing to start on. I would not want to put too much text on it for now since the “Uncovery Minecraft” already will be on the server list next to it. “Build your dream” can be on it if it fits well on the logo and is easy to read. Comments, opinions?

Flatlands lot types – input requested

I am now working on different flatlands world types that users will be able to chose from/reset to. I can generate a handful of empty lot types that the user can request to be copied over the existing lot to make certain builds easier. I am looking for meaningful and not disruptive types of lots that could be given as a choice. So far I have

  • The current lot type. Grass on the top, 5 blocks of dirt, then stone, then bedrock.
  • A “tech-lot”: Green wool on top with a marker every 5 blocks. Hollow below but framed underground to prevent people from digging across lots (see flat_c20)

Anything else we should have? Why?

 

Error found, lot reset, let’s see…

I just found through the error log that the issue was caused on lot FLAT_P12 by a user that built some redstone system. Since there was not a lot of stuff on the lot, I reset it now. Please note that I have NO idea if the redstone contraption was built in a (unintentional) bad way to crash the server or if it was a spigot minecraft error that might cause further crashes on other stuff on the server. We will have to wait if there are other crashes occurring and hope for the best.

Crashes update

I am still getting crashes. updated Spigot now. Getting this error:

java.lang.ClassCastException: net.minecraft.server.v1_7_R1.TileEntityComparator cannot be cast to net.minecraft.server.v1_7_R1.TileEntityChest
<-->at net.minecraft.server.v1_7_R1.TileEntityChest.i(TileEntityChest.java:212) ~[spigot.jar:git-Spigot-1301]
<-->at net.minecraft.server.v1_7_R1.TileEntityChest.h(TileEntityChest.java:250) ~[spigot.jar:git-Spigot-1301]
<-->at net.minecraft.server.v1_7_R1.World.tickEntities(World.java:1371) ~[spigot.jar:git-Spigot-1301]
<-->at net.minecraft.server.v1_7_R1.WorldServer.tickEntities(WorldServer.java:514) ~[spigot.jar:git-Spigot-1301]
<-->at net.minecraft.server.v1_7_R1.MinecraftServer.u(MinecraftServer.java:671) ~[spigot.jar:git-Spigot-1301]
<-->at net.minecraft.server.v1_7_R1.DedicatedServer.u(DedicatedServer.java:273) ~[spigot.jar:git-Spigot-1301]
<-->at net.minecraft.server.v1_7_R1.MinecraftServer.t(MinecraftServer.java:560) ~[spigot.jar:git-Spigot-1301]
<-->at net.minecraft.server.v1_7_R1.MinecraftServer.run(MinecraftServer.java:467) [spigot.jar:git-Spigot-1301]
<-->at net.minecraft.server.v1_7_R1.ThreadServerApplication.run(SourceFile:617) [spigot.jar:git-Spigot-1301]