Get an Epic Experience with Premium

Minecraft Plugin Spotlight - LWC

Welcome to the weekly Minecraft Plugin Spotlight! In this issue we will cover "LWC", a plugin created by Hidendra.

LWC is a protection plugin that lets players protect individual blocks using various security options; such as Private, Public and Password.

When you create a new chest it will use the Private protection at default. This means that only you will be able to open the chest and that the chest is protected against destruction as well! If you would like to give friends access to your chest (or any other block); simply add them to the control list:

If you are only interested in destruction protection while allowing anyone access to a chest the Public security option is the better choice. Only the owner of the chest will be able to destroy it, but everyone can store items or take them. A very useful feature for community or faction storage!

In addition to the Private protection option there is also a more secure way of protecting your belongings: by using a password. After protecting your block with a password you will not have to fill it in every time you activate it: just once after each login. You are also able to share a password protected chest with friends, just give them the password and they will be able to access it. However, if you are a server operator you will not have to fill in any password.

As mentioned previously, this plugin does not only offer a way of securing chests; other blocks can be protected as well. This includes doors, trapdoors and more!

Another helpful feature is "Drop Transferring". This allows you to transfer items you drop to a selected chest, as long as both you and the chest are in the same world.

LWC is a flexible security plugin offering different ways of protection. Whether you are looking for private chests or password protection, this plugin has it all! On top of that it will also protect you against accidentally loosing items by allowing you to transfer dropped items to a selected chest. 

Last but not least, we also managed to set up an interview with Hidendra, the developer of LWC. Check it out below to find out more about the development process behind the plugin!

What motivated you to develop LWC?
I don’t often pick up a project with the intent of sticking to it. And when I do, it’s something too damn ambitious and large that I just know I’ll be stuck supporting it for the rest of my life.

That is most definitely the case with LWC. It’s such an important plugin to servers, that if it were to just stop being updated, what would you use? Someone would update it sure, but would it ever be given the love and tender care it needs? Maybe I’m pretentious but if LWC is going to be doomed, I’d rather be the one to doom it.

How was your plugin received by the community at its initial release?
“THIS is something I’ve been looking for. Simple, easy to use, nice.” - Shadow386, first post on the original thread on the hMod forums

At the time during hMod other chest protection plugins were a bit inefficient and laggy. I wanted one that worked. It had to “just work” – no manual upgrades, no maintenance, no wiping configs to regenerate them, it just needs to work even after I upgrade to a new version. A tall order, but only one I can fill myself because of how much I wanted from it.

Of course it wasn’t all sunshine and roses though, the biggest concern at first was LWC couldn’t prevent creepers from blowing up chests, thus defeating the purpose of protecting it in the first place! Fortunately for it, a hook was [eventually] added into hMod which allowed LWC to actually secure things properly.


Roughly how much time went into development of LWC so far?
LWC will be celebrating its second year of release this coming November. I have been the sole developer these two years (with some help of others through pull requests, of course!). I wouldn’t be able to quantify how much time in between then and now I spent on LWC, but a significant amount of time in the first year was spent solely on LWC. It waned a bit after that but was still being developed in one way shape or form.

Did you come across any challenges while working on your plugin, and if any, how did you solve them?
Being a security plugin, you need to do things right, or else you’re no longer useful. Preventing players from opening a chest is a simple idea, but once you add in lots of game mechanics, and then stupid Minecraft glitches (it used to be possible to make a Triplechest or Quadchest by putting water on the ground), it turns out to be quite difficult!

At first, most of my issues were because of the mod itself (hey0 or Bukkit) not supporting what I needed. Then the issues turned to me, and back to the mod and game and so forth. It is a constant struggle and what is a minor bug to one plugin can be a major bug to LWC, so I need to keep an eye on everything.

What tools have you used to create this plugin and what purpose did each serve?
IntelliJ IDEA is my swiss army knife of awesomeness, with thanks to Jetbrains for supporting LWC with an Open-source License. It is my IDE of choice and allows me to do what I love to do.

Jenkins is my first mate, who is always there for me to build LWC for me when I push code to github. It allows me to keep a history of builds backdating to when I first started using it and it also allows endusers to instantly get the most up to date build whenever they want. LWC has a fairly long release cycle so these builds on Jenkins are normally newer than the official release (and possibly buggier, of course!)

Have you learned anything new from working on this project?
If one were to look at the original release of LWC 2 years ago and compare it to code I am writing now, they would see a very large difference. I’ve improved significantly and am much more aware of better ways of designing my way out of the proverbial box instead of the (although fun, dangerous) hack-n-slash way of solving a problem.

What part of the development process of LWC did you enjoy most?
I once logged into a server to help someone with a LWC related issue. This server was large. Very large. They actively had >300 players online. So after a few minutes, word spreads and my chat box is then spammed to the brim with hundreds of PMs – it took a good 5 minutes before I could actually read anything. All because of LWC.

Development in of itself can be and is very fun – breaking up problems and solving them and doing cool things. It can also be very aggravating for the same reason. But knowing there are hundreds – no, thousands – of servers out there who depend on your code and use it constantly, that is a very heart-warming feeling.

The support process of it allows me to see what users like, hate, and even want which allows me in turn to use that feedback later on. Of course the actual coding is normally more interesting to do, but I would say the support end of it hasn’t bitten me yet like the coding one – I have yet to login to a server to be told LWC sucks (the Lockette v. LWC battle however does still rage on in IRC)

And what is your favourite part of the plugin itself?
My favourite features are the stupid things you’ve probably never heard of until now. For example, did you know LWC can suck up items around protected chests into it[1]? For automatic farms it is great. Or did you know you can have LWC “drop” items into your chest when you drop an item[2] (provided you’re in the same world as it)? Or even the one even I forgot existed for the last 8 months, /lwc credits which is so long it has to scroll à la movie credits.

Are you currently working on any other plugins or updates?
Not necessarily a plugin per se but MCStats is currently taking up a lot of my time recently. It’s meant for plugins to use to collect anonymous stats. It’s entirely open source and very versatile which I believe has helped its adoption – currently over 400 plugins actively use it with many big names, and over 70,000 active servers. Like I said before, when I stick to a project, it’s too ambitious and large. MCStats is another example of this and something I wanted for LWC but at the same time wanted to share with other authors. Plugin authors love it and I love seeing them love it.

LWC wise, the current version is pretty much what it will ever be because it works well, is stable, and is relatively bug free. I’m slowly working on rewriting the entire engine to a. Universally support any mod through a very small wrapper, b. Fix bad design decisions in the original versions of LWC.

Do you have any advice for other potential plugin developers?
If you’re holding off developing an idea just because it’s already done or some other similar reason, don’t! That’s what happened to LWC. I planned on making it as the first chest protection plugin but by the time I started someone else had already finished one which killed my motivation which was powered by the idea to be the first. A few weeks later I realized it wasn’t all that good anyway (I wanted something much, much more) so my motivation was kickstarted again and LWC was finally realized. In the end LWC did well – I wasn’t the first, but I survived the longest. That’s the better victory, right?

Many thanks to Hidendra for creating this plugin and for participating in our interview! 

Comments

Login to Curse

Don't have an account? Create One.

Get an epic experience with Curse Premium
  • Faster addon downloads
  • Premium-Only Beta Giveaways
  • Ad-Free Curse experience
  • Premium Curse Client
  • and many More Features
  • Learn More »

Infinite Crisis NA

Get Your Preferred Access Code!