As I'm sure many of you have noticed, with Bukkit recently being cut down by legal troubles, there's been a void in the Minecraft community where our simple server-side modding A.P.I. used to be.
We intend to fill that gap.
Corundum, like Bukkit, is a purely server-side Java-plugin-based A.P.I. and requires no client mods. Unlike Bukkit, however, this A.P.I. will be fast, efficient, simple, and completely legal in every way. It will also have the ability to handle and coordinate the actions of more than one server at the same time.
This project is non-profit and open-source as per Minecraft's EULA and licenses. It is written in Java and built as an A.P.I. that functions atop Minecraft's minecraft_server.jar.
We have a few weeks' worth of work already done, but with Sponge and others coming into play, we need more developers to get this project done quickly and effectively. That's why we're opening up development to YOU!
Our project is managed through the Arizona State University Software Developers' Association (ASU SoDA). We have a GitHub repository here that you can take a look at to see what we've done so far.
I myself have been running a CraftBukkit server and writing CraftBukkit plugins like myUltraWarps for a couple years now, so I know many things that Bukkit did wrong that we can now remedy in this project. We have a couple developers already who are familiar with MCP. We have the skills and expertise to make this happen; we just need more developers to make it happen quickly and more ideas to make it even better.
If you're interested, contact me, REALDrummer, through Skype (r3aldrummer) or e-mail ([email protected]). If you've developed Minecraft mods before and you're interested in this project, contact us even if you don't think you have enough experience!
I see. Your N-API looks interesting; I skimmed some of the source code. It's too bad you have to use ASM; I've been trying my best to avoid it because it complicates things. Thankfully, the idea of "overextension" is what powers our A.P.I., so we don't need to use any bytecode transformations. Basically, we can make classes that extend Minecraft's classes and insert instances of those extended classes in key places and override methods to make it do what we want instead of what Minecraft wants. No bytecode transformations, no reflection, and no performance drops needed. Cool, huh?
Since that also means that we don't have to modify any of Minecraft's code, we have the opportunity to make Corundum systems compatible with multiple versions of Minecraft server and even be able to coordinate multiple Corundum or vanilla Minecraft servers at the same time! We could replace both systems like McMyAdmin and CraftBukkit with one powerful, centralized system. We have big ideas down the line for our own GUI, an external program that can make a GUI to coordinate with servers over remote connections, etc.
I understand being busy with school. Heck, I'm in the same position; I'm taking 18 credits this semester while maintaining a 15-20hr/week part-time job at a computing lab. I tend to be on campus 8:30-8:00 or later on weekdays. It's brutal. Still, this project is important to me and I won't let it go.
It's hard to find anyone else that's willing to work on projects like this, though. Not only have you done projects like this, you're the sole contributor to N-API just like I'm the sole contributor to Corundum so far. (There's one other committer who's listed because he's new to GitHub and accidentally pushed a couple license files. Ha ha.) Still, that other committer and a few others are interested in the project; I just need to figure out how get the ball rolling there.
So, it would be stupid of me not to try to recruit you to this project considering your obvious experience and self-motivation. You're exactly the kind of person we need more of on this project, but people like you are very hard to come across. If there's something I can do that could convince you to want to be a part of this project, I'd be happy to try to oblige. Like I said, this project is free and open-source, so I couldn't pay you, but I can explain the project, add you to the list of members, or do whatever else I can to convince you to join the side of light. Ha ha.
P.S. Eclipse has autocomplete comparable to IntelliJ; most people just don't realize it because Eclipse stupidly doesn't configure it to use its full capabilities by default. Just change the autocompletion triggers in Eclipse from just the "." to the ".", "_", and all letters. Then it becomes amazing.
The Meaning of Life, the Universe, and Everything.
Join Date:
3/29/2014
Posts:
66
Location:
KWIK WHO'S DAT BEHIND YOU?
Member Details
I really like this idea a lot. Craftbukkit (and the rest of the bukkit project) really needs to be replaced. One question, will it be based on top of Forge or one of those other API's, or be built completely on vanilla code? I as a matter of fact am also developing an API similar to Forge right now, but it uses a client mod.
Well, between Bukkit's legal problems and its lag and bug problems, we decided to build it from vanilla code with MCP. Forge is client-side and server-side, so we didn't want to use that since we want a purely server-side system. Besides all that, we wanted to make our own A.P.I. and we wanted to avoid bloating, and bloating is very, very easy to come across when you build on top of pre-existing A.P.I.s.
The A.P.I. is very simple; we're basically making classes that contain instances of Minecraft objects. Then, each method of the Corundum A.P.I. will just call the right Minecraft obfuscated method(s) to achieve that same thing, sometimes generating events for the plugins to handle and doing other data management stuff. Our approach should keep the A.P.I. minimalist and not add much overhead.
So, your A.P.I. looks interesting, but I'm a little confused on what its purpose is. What does it work with? Does it work on top of Forge or is it standalone? How would you install it? What purpose would it serve?
The Meaning of Life, the Universe, and Everything.
Join Date:
3/29/2014
Posts:
66
Location:
KWIK WHO'S DAT BEHIND YOU?
Member Details
Are there going to be server optimizations in it like Spigot? Some servers could really use optimizations (especially the ones with more than one world). Also, is there going to be compatibility with Bukkit plugins or at least an easy way to port your plugins over to it?
I anticipate that the first few versions will simply be built on top of the Minecraft server jar, so there wouldn't be many optimizations, but as the project builds and stabilizes, adding optimizations like multi-threaded chunk loading will DEFINITELY be done. The first versions probably would not modify Minecraft's behavior much, but in later versions, we can integrate better and fix some bugs and add optimizations as we want.
As for Bukkit plugins, we definitely need compatibility with those. We will probably make a second A.P.I. that looks and acts like CraftBukkit's, but basically sends method calls and such over to Corundum. Again, though, CraftBukkit compatibility may have to come in a later version.
The Meaning of Life, the Universe, and Everything.
Join Date:
3/29/2014
Posts:
66
Location:
KWIK WHO'S DAT BEHIND YOU?
Member Details
My thoughts on this: I won't be able to do this full time, but I have coded a loader for plugins that you could use with Corundum. I support this idea and definitely would like to see to it that it succeeds. BTW, I could design a website for Corundum.
Great! We could use all the coding help we can get, even if it's not full-time. I'm not full-time, per se; I have school and work of my own to deal with.
We too have been working on a jar loading algorithm. It's almost done; there are just a couple bugs that need to be worked out. Still, I would love to see your plugin loading algorithm. Maybe it can help make our loader better if you have any ideas for better efficiency or fixing a few of these integration issues.
We website is also something that we'll need, but I don't know when work on that stuff should start. Design would be fine, I guess, but what we really need right now is coders. We don't want to jump the gun on marketing-type stuff.
Send me your GitHub and Trello usernames and I can set you up with our GitHub and Trello organizations. If you don't have accounts for those, I would advise making them; both are very important for coding project organization and version control.
By the way, our search isn't over! We're still searching for new people to help out with this project! We could always use more developers!
Developers is what we need most, but we could also use other computing-related skills like website design and logo design and all sorts of great stuff like that, too! If you're interested in helping, we can probably find a way for you to help out!
We're still working hard on this project and the results are looking good so far. We're shooting for an α (alpha) version by the end of the calendar year! (Maybe even in time for Christmas!)
That's not to say that we're not still looking for more developers, though. If you are still interested in being a part of this awesome project, speak up and we'll get you set up on Trello and GitHub!
Well, between Bukkit's legal problems and its lag and bug problems, we decided to build it from vanilla code with MCP. Forge is client-side and server-side, so we didn't want to use that since we want a purely server-side system. Besides all that, we wanted to make our own A.P.I. and we wanted to avoid bloating, and bloating is very, very easy to come across when you build on top of pre-existing A.P.I.s.
The A.P.I. is very simple; we're basically making classes that contain instances of Minecraft objects. Then, each method of the Corundum A.P.I. will just call the right Minecraft obfuscated method(s) to achieve that same thing, sometimes generating events for the plugins to handle and doing other data management stuff. Our approach should keep the A.P.I. minimalist and not add much overhead.
I am very pleased to find this project. It is a very good cause.
There is a problem with the minecraft modding community that you could fix right now. This is the time to do it before you get too far along in the code.
The problem is that bukkit mods and forge mods are not usable on the same server. Ok, I if were reading this I would probably be thinking its opening pandora's box but it is not. At least consider that if compatability between them is to be, that right now is the time to seriously consider this issue.
I very much appreciate the goals of keeping it minimalist and of preventing bloating in the code, memory usage, and the processing when it runs. I whole heartedly agree with these goals and am glad you already see it that way.
But, (lol)
Forge mods are NOT BOTH server side and cleint side ONLY. Forge mods can be both but also can be just server side or just client side. My tiny two mods that I have and maintain now in forge are strictly server side only mods. Client side doesnt need it unless you are playing singleplayer with them. With this in mind, Creating this bukkit replacement, could be server side only mod. I understand that you do not want to have to install Forge on the client side to use a server with this. I appreciate that, but the benefits of being able to use forge mods is very high. With this in mind, is there still a possibility of having compatability with using Forge?
Making this project work through forge would still allow you to add the features not provided by forge and be less bloated, by using the existing forge features (reducing your code size). Please debate the issue of being able to add the features to minecraft even while being a "forge mod".
I would hate to miss an opportunity to have the ability to mod with the benefits of both this new "bukkit like" api and the forge api.
These are just some thoughts with the best intentions.
I see your intentions, but unfortunately, I think that this would create a lot more work than it saves.
The intention right now is to keep this modding A.P.I. purely server-side; to allow compatibility with Forge mods, we would have to do one of two things: 1) add client-side modding systems, which we could do eventually maybe, but much later, or 2) simply throw errors whenever a Forge plugin attempts to do something that requires client-side modification, which is going to break most Forge mods anyway since Forge is generally used for "universal" modding. Yes, there are server-side only Forge mods, but not many; up until Bukkit's death, if you wanted to make a server-side only mod, you generally used CraftBukkit.
Right now, we're still at least a month or two away from an alpha. We need to focus on getting a working build out right now. The first version will just include the basic A.P.I. and all the jar-loading algorithms needed to handle integration with the Minecraft server jar and plugin integration.
We already know that we're going to have to add Bukkit compatibility for sure to get people interested in this A.P.I. since Bukkit no longer exists and it had a large plugin base that a lot of mod developers don't want to remake, but Forge is still going strong. I think it might be something we could consider down the road when Corundum is more stable and we have more developers.
So... you mentioned that you've written some Forge mods before. Are you interested in developing Corundum with us? If so, let me know and I'll happily add you to our GitHub repo and Trello board. We could always use more dedicated developers, especially any familiar with Minecraft and Minecraft modding!
Hey, everyone! We're still looking for new developers! If you're interested, let me know!
If you're not a coder, but you love Minecraft and have some ideas or opinions of what you would like to see in this A.P.I., I've made a separate thread here. Feel free to post any ideas that you think would be cool, even if it sounds stupid! We have lots of cool ideas already, but we want to know what you look for in an A.P.I. The more opinions the better!
I honestly don't know that we'll make that 'end of the year' deadline that I set earlier due to a lack of developers. (There's only two or three of us actually writing any code.) Still, we're pushing for it and even if we don't finish by then, it will get done soon. We've come up with lots of great ideas on how to make an A.P.I. much faster and easier to use than CraftBukkit could have ever hoped to be.
On a related note, we're still looking for developers! Message me or reply here if you're interested!
I see your intentions, but unfortunately, I think that this would create a lot more work than it saves.
The intention right now is to keep this modding A.P.I. purely server-side; to allow compatibility with Forge mods, we would have to do one of two things: 1) add client-side modding systems, which we could do eventually maybe, but much later, or 2) simply throw errors whenever a Forge plugin attempts to do something that requires client-side modification, which is going to break most Forge mods anyway since Forge is generally used for "universal" modding. Yes, there are server-side only Forge mods, but not many; up until Bukkit's death, if you wanted to make a server-side only mod, you generally used CraftBukkit.
Right now, we're still at least a month or two away from an alpha. We need to focus on getting a working build out right now. The first version will just include the basic A.P.I. and all the jar-loading algorithms needed to handle integration with the Minecraft server jar and plugin integration.
We already know that we're going to have to add Bukkit compatibility for sure to get people interested in this A.P.I. since Bukkit no longer exists and it had a large plugin base that a lot of mod developers don't want to remake, but Forge is still going strong. I think it might be something we could consider down the road when Corundum is more stable and we have more developers.
So... you mentioned that you've written some Forge mods before. Are you interested in developing Corundum with us? If so, let me know and I'll happily add you to our GitHub repo and Trello board. We could always use more dedicated developers, especially any familiar with Minecraft and Minecraft modding!
I do not feel very comfortable with the idea of a client-side system to go with the API. Forge has always had that, but it only makes it harder on people because in order to use the mods on that server, they have to install them all too. The Bukkit system was a lot more convenient in that way. The SpoutCraft extension to bukkit required players to install a client-side system as a tekkie mod pack. If there was to be a client system, it would be easier to have it as a mod pack instead of a separate mod.
That's true. Server-side only would be much easier for the coders and the players. I would definitely prefer to stick to that.
Besides, the server-side stuff needs to be finished before we even consider going further with it and that's been progressing rather slowly due to lack of developers. Despite all my posts on Minecraft forums, including /r/Minecraft and /r/Bukkit, we still don't have many people around working on this. Still, we're still going and I still think this A.P.I. has a lot more to offer than Bukkit could have. I hope we get some more developers so e can move a little faster, though.
We intend to fill that gap.
Corundum, like Bukkit, is a purely server-side Java-plugin-based A.P.I. and requires no client mods. Unlike Bukkit, however, this A.P.I. will be fast, efficient, simple, and completely legal in every way. It will also have the ability to handle and coordinate the actions of more than one server at the same time.
This project is non-profit and open-source as per Minecraft's EULA and licenses. It is written in Java and built as an A.P.I. that functions atop Minecraft's minecraft_server.jar.
We have a few weeks' worth of work already done, but with Sponge and others coming into play, we need more developers to get this project done quickly and effectively. That's why we're opening up development to YOU!
Our project is managed through the Arizona State University Software Developers' Association (ASU SoDA). We have a GitHub repository here that you can take a look at to see what we've done so far.
I myself have been running a CraftBukkit server and writing CraftBukkit plugins like myUltraWarps for a couple years now, so I know many things that Bukkit did wrong that we can now remedy in this project. We have a couple developers already who are familiar with MCP. We have the skills and expertise to make this happen; we just need more developers to make it happen quickly and more ideas to make it even better.
If you're interested, contact me, REALDrummer, through Skype (r3aldrummer) or e-mail ([email protected]). If you've developed Minecraft mods before and you're interested in this project, contact us even if you don't think you have enough experience!
Since that also means that we don't have to modify any of Minecraft's code, we have the opportunity to make Corundum systems compatible with multiple versions of Minecraft server and even be able to coordinate multiple Corundum or vanilla Minecraft servers at the same time! We could replace both systems like McMyAdmin and CraftBukkit with one powerful, centralized system. We have big ideas down the line for our own GUI, an external program that can make a GUI to coordinate with servers over remote connections, etc.
I understand being busy with school. Heck, I'm in the same position; I'm taking 18 credits this semester while maintaining a 15-20hr/week part-time job at a computing lab. I tend to be on campus 8:30-8:00 or later on weekdays. It's brutal. Still, this project is important to me and I won't let it go.
It's hard to find anyone else that's willing to work on projects like this, though. Not only have you done projects like this, you're the sole contributor to N-API just like I'm the sole contributor to Corundum so far. (There's one other committer who's listed because he's new to GitHub and accidentally pushed a couple license files. Ha ha.) Still, that other committer and a few others are interested in the project; I just need to figure out how get the ball rolling there.
So, it would be stupid of me not to try to recruit you to this project considering your obvious experience and self-motivation. You're exactly the kind of person we need more of on this project, but people like you are very hard to come across. If there's something I can do that could convince you to want to be a part of this project, I'd be happy to try to oblige. Like I said, this project is free and open-source, so I couldn't pay you, but I can explain the project, add you to the list of members, or do whatever else I can to convince you to join the side of light. Ha ha.
P.S. Eclipse has autocomplete comparable to IntelliJ; most people just don't realize it because Eclipse stupidly doesn't configure it to use its full capabilities by default. Just change the autocompletion triggers in Eclipse from just the "." to the ".", "_", and all letters. Then it becomes amazing.
The A.P.I. is very simple; we're basically making classes that contain instances of Minecraft objects. Then, each method of the Corundum A.P.I. will just call the right Minecraft obfuscated method(s) to achieve that same thing, sometimes generating events for the plugins to handle and doing other data management stuff. Our approach should keep the A.P.I. minimalist and not add much overhead.
@Puredarkness
So, your A.P.I. looks interesting, but I'm a little confused on what its purpose is. What does it work with? Does it work on top of Forge or is it standalone? How would you install it? What purpose would it serve?
As for Bukkit plugins, we definitely need compatibility with those. We will probably make a second A.P.I. that looks and acts like CraftBukkit's, but basically sends method calls and such over to Corundum. Again, though, CraftBukkit compatibility may have to come in a later version.
@Noodly_Doodly What are your thoughts? Are you in?
We too have been working on a jar loading algorithm. It's almost done; there are just a couple bugs that need to be worked out. Still, I would love to see your plugin loading algorithm. Maybe it can help make our loader better if you have any ideas for better efficiency or fixing a few of these integration issues.
We website is also something that we'll need, but I don't know when work on that stuff should start. Design would be fine, I guess, but what we really need right now is coders. We don't want to jump the gun on marketing-type stuff.
Send me your GitHub and Trello usernames and I can set you up with our GitHub and Trello organizations. If you don't have accounts for those, I would advise making them; both are very important for coding project organization and version control.
Developers is what we need most, but we could also use other computing-related skills like website design and logo design and all sorts of great stuff like that, too! If you're interested in helping, we can probably find a way for you to help out!
Yeah. We're still looking for more developers! Let's do this! I'll PM you about details.
To others: This project is making serious headway, but we could always use more developers! If you're interested, tell us!
That's not to say that we're not still looking for more developers, though. If you are still interested in being a part of this awesome project, speak up and we'll get you set up on Trello and GitHub!
I am very pleased to find this project. It is a very good cause.
There is a problem with the minecraft modding community that you could fix right now. This is the time to do it before you get too far along in the code.
The problem is that bukkit mods and forge mods are not usable on the same server. Ok, I if were reading this I would probably be thinking its opening pandora's box but it is not. At least consider that if compatability between them is to be, that right now is the time to seriously consider this issue.
I very much appreciate the goals of keeping it minimalist and of preventing bloating in the code, memory usage, and the processing when it runs. I whole heartedly agree with these goals and am glad you already see it that way.
But, (lol)
Forge mods are NOT BOTH server side and cleint side ONLY. Forge mods can be both but also can be just server side or just client side. My tiny two mods that I have and maintain now in forge are strictly server side only mods. Client side doesnt need it unless you are playing singleplayer with them. With this in mind, Creating this bukkit replacement, could be server side only mod. I understand that you do not want to have to install Forge on the client side to use a server with this. I appreciate that, but the benefits of being able to use forge mods is very high. With this in mind, is there still a possibility of having compatability with using Forge?
Making this project work through forge would still allow you to add the features not provided by forge and be less bloated, by using the existing forge features (reducing your code size). Please debate the issue of being able to add the features to minecraft even while being a "forge mod".
I would hate to miss an opportunity to have the ability to mod with the benefits of both this new "bukkit like" api and the forge api.
These are just some thoughts with the best intentions.
my published mods
The intention right now is to keep this modding A.P.I. purely server-side; to allow compatibility with Forge mods, we would have to do one of two things: 1) add client-side modding systems, which we could do eventually maybe, but much later, or 2) simply throw errors whenever a Forge plugin attempts to do something that requires client-side modification, which is going to break most Forge mods anyway since Forge is generally used for "universal" modding. Yes, there are server-side only Forge mods, but not many; up until Bukkit's death, if you wanted to make a server-side only mod, you generally used CraftBukkit.
Right now, we're still at least a month or two away from an alpha. We need to focus on getting a working build out right now. The first version will just include the basic A.P.I. and all the jar-loading algorithms needed to handle integration with the Minecraft server jar and plugin integration.
We already know that we're going to have to add Bukkit compatibility for sure to get people interested in this A.P.I. since Bukkit no longer exists and it had a large plugin base that a lot of mod developers don't want to remake, but Forge is still going strong. I think it might be something we could consider down the road when Corundum is more stable and we have more developers.
So... you mentioned that you've written some Forge mods before. Are you interested in developing Corundum with us? If so, let me know and I'll happily add you to our GitHub repo and Trello board. We could always use more dedicated developers, especially any familiar with Minecraft and Minecraft modding!
If you're not a coder, but you love Minecraft and have some ideas or opinions of what you would like to see in this A.P.I., I've made a separate thread here. Feel free to post any ideas that you think would be cool, even if it sounds stupid! We have lots of cool ideas already, but we want to know what you look for in an A.P.I. The more opinions the better!
On a related note, we're still looking for developers! Message me or reply here if you're interested!
I do not feel very comfortable with the idea of a client-side system to go with the API. Forge has always had that, but it only makes it harder on people because in order to use the mods on that server, they have to install them all too. The Bukkit system was a lot more convenient in that way. The SpoutCraft extension to bukkit required players to install a client-side system as a tekkie mod pack. If there was to be a client system, it would be easier to have it as a mod pack instead of a separate mod.
Besides, the server-side stuff needs to be finished before we even consider going further with it and that's been progressing rather slowly due to lack of developers. Despite all my posts on Minecraft forums, including /r/Minecraft and /r/Bukkit, we still don't have many people around working on this. Still, we're still going and I still think this A.P.I. has a lot more to offer than Bukkit could have. I hope we get some more developers so e can move a little faster, though.
my published mods