Building Minecraft Server Modifications
Cody M. SommerCody M. Sommer has always been interested in computers. In his free time he would take   them apart just to learn more about how they worked. He eventually began building computers for   himself and others. Cody would spend many hours a day on his computer whether he was playing   games, browsing the internet, or learning more about how they work. It wasn't until his college   career that he was introduced to software development. During his senior year of high school,   Cody began taking courses in Computer Science at The College at Brockport: State University of   New York. The college primarily taught the Java language due to its vast presence in modern   software.After a year or so, Cody had a solid understanding of Java and various programming   techniques. He was anxious to put these to use. His first out-of-school project consisted of   programming a solitaire type card game to play itself and print out statistics on the results. This is   when he discovered that the game he had been trying to win for the past few months only dealt a   "winning" deck about once in every 1000 games. Being able to control a computer to complete a   task fascinated Cody. Programming the card game took less than one week so he had to find   another project; preferably one that would be challenging, keep him busy, and not be completed   for a long time. This is when he discovered the Bukkit project.Both Minecraft and the Bukkit API are programmed in Java which Cody knew very well.   On the Bukkit forums were countless server administrators just waiting for a developer to come   along to create their idea. All that was required of him to begin creating Bukkit plugins was to learn  the Bukkit API. Cody first dissected a few public projects to study their structure and get an idea of   how these server plugins were programmed. Through self-teaching and with the aid of more   experienced developers, he eventually managed to create his first project, called Turnstile. This   plugin required that players on a Minecraft server pay in-game money to enter specific areas, such   as subway stations. He developed several plugins his first few months. Most of these were   requested by other people. However, two of his favorite projects, PhatLoots and TextPlayer, were   his original ideas.Cody enjoyed pushing the game to its limits. The creation of TextPlayer is one example of   this. The plugin allowed Minecraft players or server admins to always be connected to the servers   that they play on. This was all done through e-mail and text messages. People could be alerted on   their phone of events that occurred on the server. These events included a friend logging on, a   player vandalizing the game world, or a player entering their house or property. The plugin grew to   allow people to communicate back to the server which also allowed admins and moderators to run  server commands from their cell phone.These various projects aided Cody in learning Java. Most of his programming knowledge   came from school but some things are not fully understood until they are put to use in a real-life   scenario. Depending on their complexity, Bukkit plugins can even help developers practice advance   programming techniques, such as recursion, algorithms, and data structures. Through timing   reports, a developer can improve their code by finding slowly executing blocks of code. Some of the  most important steps of the software development life cycle are emphasized in Cody's Bukkit   plugins. These steps include bug fixes, addition of new features, and writing code that is prepared   for future changes in the project.