Giter VIP home page Giter VIP logo

simplixcore's Introduction

Build Status Discord GitHub

SimplixCore

SimplixCore is a general purpose framework for java development. It includes a set of core Java libraries such as Googles Guava. It also contains a streamlined Dependency Injection framework using Google Guice, an easy to use localization, a database framework as well as a set of utilities and a dynamic library loader, which is especially useful when developing plugins. It is widely used on most Java & Kotlin projects within SimplixSoftworks.

For Minecraft server implementations & Proxies SimplixCore works as a plugin. You don't have to shade any parts of the SimplixCore (it's also very discouraged to do so on Spigot/BungeeCord!) By using the SimplixCore as a plugin you can also add extra libraries for the SimplixCore, that can be used for your own plugin as well.

Hacktoberfest 2021

Our repository also participates in this years Hacktoberfest. Sign up and submit at least four pull requests. If they are merged or the "hacktoberfest-accepted" label is assigned, they'll be counted towards your participation. The first 50,000 participants can earn a T-shirt or plant a free.

Platforms

  • Standalone
  • BungeeCord
  • Velocity
  • Spigot / Paper

Library loader

Due to file size constraints on plugin hosting services like SpigotMC, some plugins with shaded dependencies might eventually become too large to upload. This is especially important for premium resources that require to be hosted on SpigotMC directly and not via a link to a GitHub release.

Also, shading usually requires you to relocate your dependencies - If you forget to do so your plugin might clash with other ones

{
  "repositories": [
    {
      "id": "exceptionflug",
      "url": "https://mvn.exceptionflug.de/repository/exceptionflug-public/"
    }
  ],
  "dependencies": [
    {
      "groupId": "de.exceptionflug",
      "artifactId": "protocolize-plugin",
      "version": "${protocolize.version}",
      "type": "plugin"
    }
  ]
}

Localization

The SimplixCore localization system is designed to be as versatile as possible. With it, you can easily achieve a per player localization on your server (e.g. English messages for people from English speaking countries, Spanish for people from Spanish speaking countries, etc.) In opposition to the common YAML based localization techniques, SimplixCore uses property-based localization files which comes with great support for IDEs such as IntelliJ IDEA:

IntelliJ

Bundled SQL library

SimplixCore offers you to use a customizable library for SQL operations. It's extensible and offers support for connection pools like HikariCP. This library is inspired by xkuyax and is not working asynchronously. Please run queries and updates asynchronously yourself.

I Could've Invented That

Effective Java item 47, "Know and use the libraries", is our favorite explanation of why using libraries is, by and large, preferable to writing your own utilities. The final paragraph bears repeating:

To summarize, don’t reinvent the wheel. If you need to do something that seems like it should be reasonably common, there may already be a class in the libraries that does what you want. If there is, use it; if you don’t know, check. Generally speaking, library code is likely to be better than code that you’d write yourself and is likely to improve over time. This is no reflection on your abilities as a programmer. Economies of scale dictate that library code receives far more attention than most developers could afford to devote to the same functionality.

How to install

Installation is straight forward. Download the SimplixCore plugin for your platform, start your server and you are ready to go:

You can find all builds from our CI server

simplixcore's People

Contributors

dokanboy avatar exceptionflug avatar jarfiles avatar kotlinfactory avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

cyberflamego

simplixcore's Issues

Split the framework into different modules and don't require the plugin to be installed

In this way would be easy to use it in open source projects without making the jar huge without unneeded files.
It shouldn't require to install any plugin, because a "central" framework on which all plugins depend could be fine for a private project for a server, but it's a bad idea for open source and public plugins.

It's better to have different libraries, for each purpose, decoupled from each other, so if you don't like one, you can just use another library.
With monolithic frameworks you are either obliged to use all the features of it, or to use another library for that particular purpose, making the jar file even bigger.

For example I was just watching for a simple localization library for some my open source projects, and I don't want to add a "Core" plugin as dependency, only for that feature.

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.