{"id":123,"date":"2011-07-11T21:59:33","date_gmt":"2011-07-11T21:59:33","guid":{"rendered":"https:\/\/www.cores2.com\/blog\/?p=123"},"modified":"2011-07-11T21:59:33","modified_gmt":"2011-07-11T21:59:33","slug":"introducing-basicbukkit-an-open-source-minecraft-craftbukkit-server-plugin","status":"publish","type":"post","link":"https:\/\/www.cores2.com\/blog\/?p=123","title":{"rendered":"Introducing BasicBukkit &#8211; An open-source Minecraft CraftBukkit server plugin"},"content":{"rendered":"<p>Over the past year I&#8217;ve been playing Minecraft off and on. The game is pretty simple: you play in a 3D cuboid-world, where everything is a cube with a few smaller exceptions. It&#8217;s essentially a lego-like 3D world. Since I like to play with friends, I started hosting my own server which I made public and advertised on Reddit: I did <strong>not<\/strong>\u00c2\u00a0expect this many people to consistently show up on my server. After a few days I installed <a href=\"http:\/\/bukkit.org\/\">CraftBukkit<\/a>, a more\u00c2\u00a0manageable\u00c2\u00a0server software base for Minecraft, but I still found all existing plugins not stable nor feature complete (I had to install 5+ plugins to get all the features I wanted). Since I know Java, and I like to do small side projects for a few days, I started programming <a href=\"http:\/\/code.google.com\/p\/basicbukkit\/\">BasicBukkit<\/a> last week and now have a stable release version this week!<\/p>\n<p><a href=\"http:\/\/code.google.com\/p\/basicbukkit\/\">BasicBukkit<\/a>: A starting point for a simple Bukkit-based (CraftBukkit) Minecraft server. Implements many of the commonly used mods into a centralized code base and unified plugin file.<\/p>\n<p>My goal was to learn the Bukkit library for Minecraft and learn more about creating stand-alone jar files that load dynamically server-side. Also, I wanted to create a mod that was\u00c2\u00a0truly\u00c2\u00a0stand-alone that didn&#8217;t have any large (i.e. ProtectionMod<a href=\"http:\/\/code.google.com\/p\/basicbukkit\/w\/edit\/ProtectionMod\">?<\/a>\u00c2\u00a0or SQL) dependencies. The resulting mod is a single jar file that produces all files necessary for managing a simple SMP \/ Creative Minecraft server.<\/p>\n<p>Learn more by reading our commands list:\u00c2\u00a0<a href=\"http:\/\/code.google.com\/p\/basicbukkit\/wiki\/Commands\">Commands<\/a>. I&#8217;ve now implemented roughly 40 commands and are still adding many more!\u00c2\u00a0Want to setup your own server? Read the installation notes and configuration on the\u00c2\u00a0<a href=\"http:\/\/code.google.com\/p\/basicbukkit\/wiki\/Configuration\">Configuration<\/a>\u00c2\u00a0page.\u00c2\u00a0An active test server can be found at nint22.dyndns.org:25565 (Default port)<\/p>\n<p>One big learning\u00c2\u00a0experience\u00c2\u00a0I&#8217;ve had with this project is that users tend to dislike writing bug reports, or even reporting bugs: period. It&#8217;s very frustrating for me to track bugs on this project &#8211; so I&#8217;ve taken an extreme and pushed myself to do massive testing with this, much much more than I normally do. Because I&#8217;ve now seen three servers in the wild using my code, but only one non-developer writing up bug reports, I know I have to persue higher quality by doing heavy testing msyef, though this takes away quite a bit of my developer time (unless the bug is small to fix, which actually has increased by programming speed!).<\/p>\n<p>I wonder how large companies with large developer groups do debugging and manage user error reports. I know from my\u00c2\u00a0experience\u00c2\u00a0at Microsoft, bugs are taken very seriously, but I&#8217;ve only worked with internal testing. I&#8217;ve never seen how managers manage incoming user-reported bugs. I know <a href=\"http:\/\/code.google.com\/p\/crashrpt\/\">Google has this very neat crash-reporting library<\/a> that I want to integrate with existing code, but I can&#8217;t imagine that gets users to write many more comments other than &#8220;it crashed&#8221;.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Over the past year I&#8217;ve been playing Minecraft off and on. The game is pretty simple: you play in a 3D cuboid-world, where everything is a cube with a few smaller exceptions. It&#8217;s essentially a lego-like 3D world. Since I &hellip; <a href=\"https:\/\/www.cores2.com\/blog\/?p=123\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-123","post","type-post","status-publish","format-standard","hentry","category-news_updates"],"_links":{"self":[{"href":"https:\/\/www.cores2.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/123","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.cores2.com\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.cores2.com\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.cores2.com\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.cores2.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=123"}],"version-history":[{"count":0,"href":"https:\/\/www.cores2.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/123\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.cores2.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=123"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.cores2.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=123"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.cores2.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=123"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}