GithubHelp home page GithubHelp logo

mc-extras / spongedev Goto Github PK

View Code? Open in Web Editor NEW
11.0 7.0 6.0 3.35 MB

A proof-of-concept website for the Sponge server framework

License: GNU General Public License v3.0

Ruby 68.80% JavaScript 29.59% CSS 1.60%
minecraft sponge rails ruby proof-of-concept

spongedev's Introduction

SpongeDev Build Status

Spongy is a Proof of Concept website for Sponge.

Installing

git clone https://github.com/Jake0oo0/SpongeDev.git && cd SpongeDev/
cp config/database.yml.default config/database.yml
cp config/initalizers/secrets.rb.default config/initializers/secrets.rb
bundle install
rake db:migrate
rails server

Environment variables

  • AUTH_SERVER_KEY: The key used by the Sponge Auth Server to authenticate
  • SECRET_KEY_BASE: See config/secrets.yml
  • GMAIL_USERNAME: used to send emails
  • GMAIL_PASSWORD: used to send emails

Side projects

Name Description
Crafatar An avatar service for Minecraft
Sponge Auth Server A Minecraft server implementation that validates MC accounts for the website
MC Auth Ruby gem for authenticating Minecraft accounts
Sponge me! Python application for managing Sponge plugins

TODO

  • Notifications
  • Social Media
  • Responsive
  • Plugins
    • Downloads
    • Wiki Pages
    • Stat Tracking
    • Comments
    • Categorization
    • Searching
    • Moderation
    • JSON API
    • RSS Feeds
  • Users
    • Local Authentication
    • Profile Pages
  • Downloads
    • List of Sponge builds from the CI
  • Revisions
    • A list of Github revisions from various Sponge related repositories.
  • Terms & Rules
  • Contact Form

spongedev's People

Contributors

jomo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

spongedev's Issues

Create Proper Tests

I kinda ignored these to start with...would probably be best to add a testing framework + some simple tests for future reference, and because they're a good idea anyway..

Pull out Revisions as Separate Gem

The revisions system is very useful and can easily be implemented into any site, and I think that this should be separated into it's own gem which I plan on doing when I have the time.

Bugs to fix when doing so:

  • Redirect to primary repo when invalid
  • Don't fail when Github key is nil

Javadoc Incorporation?

We could possibly add a view for Sponge Javadocs, not sure how this would work exactly, it's a possibility though.

Custom Minotar Implementation

So, as a side project, I'm considering rewriting the current version of Minotaur to support various other features, especially UUIDs. As of right now, this is the biggest fault of the system, especially considering that name changing is closing in fast.

From what I've figured out so far:

A get request to the URL: https://sessionserver.mojang.com/session/minecraft/profile/UUID will return a json string with a base64 encoded string, which decodes to a json string (why the fuck is this encoded?) , with output such as:

{"timestamp":1413509132177,"profileId":"2d5aa9cdaeb049189930461fc9b91cc5","profileName":"Jake0oo0","textures":{"SKIN":{"url":"http://textures.minecraft.net/texture/a62138178e3f6cd4631a8544403a75b873f1dd1c40be5248da691332977ffeaf"}}}

The main thing that is needed from here is the SKIN value, which is the download URL for the skin.

The problem here is making this service just as fast as Minotar (faster please), but also supporting UUIDs, which will require a request to Mojang servers until a username is cached, and then consistently updated since names can change.

I'm trying to decide whether or not this is worth it, but honestly in the long run, it probably is, as Minotar is going to become outdated soon enough.

Suggestion: Points system

I think having Points system (Similar to Curse) will be useful!

also don't forget to add rewards (Add later once Sponge uses this)

Plugin Moderation

Project/File Moderation Process: (Proposed for THIS site)

  • User creates project. Only visible to themselves, and can edit whatever they want, upload files if they'd like.
  • Moderator approves/denies project. (Not duplicated, stolen code, etc)
  • Project is available to the public, no downloads are public. (Denied projects are kept for 30 days, then deleted)
  • User uploads file(s), or may have already.
  • Moderator reviews and approves/denies plugins from queue. (Denied files are deleted)
  • Files and project are available to the public.
  • Newly uploaded files are approved in the same way.

Implementation:

  • File and project attributes - approved, denied, etc
  • Moderation Queue
  • Marking old projects as inactive, delete denied projects after 30 days.

Comments + discussion welcome. Keep in mind this is only a base moderation idea, and can be used, but can also be extended upon if something else is decided upon.

Notifications

  • Plugin Accepted
  • Plugin Denied
  • File Accepted
  • File Denied
  • Comments
  • New file uploaded
  • User creates new plugin

Authenticate Minecraft accounts

Previous discussion


So there basically needs to be a way to get authenticate Minecraft accounts so that skins can be verified and displayed with minotaur. This could be accomplished in basically two ways:

  1. Username & Password - Unsafe and would generally steer people away from authenticating their account.

  2. Verification Server - This would be as simple as having a MC server that a player can join and get a authentication token. This wouldn't be possible as of now due to fund limitations, but if this is ever actually used for anything, it could be fairly simple to set up.

For now, it will probably be best to leave method 1 as it is, and warn people that their credentials are always safe, but account confirmation is not necessary if they do not feel the need to.

A third option of providing a verification skin is also possible, but requires a fair bit of extra implementation, and could be considered for a third method, but likely not necessary. This could though be of advantage to people who do not currently have access to a computer that can play Minecraft, or do not want to enter their login information.

Didn't know where to contact you

Hello I'm the owner of a website dedicated to project hosting for developers and stuff and we are having trouble with making a site for plugin hosting and stuff, I don't know if you are actively working with sponge or this is your own personal project but we would love to add you to our team! :) I would like to make an agreement with you to join us. Please comment back or message me via skype or my websites forums. Skype Name: TekkitCommando97 or Forum Link: http://forums.sourceforums.org/

MongoDB?

Currently using Postgres, but it would probably be best to switch over to Mongoid now that it is not necessary with Forem.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.