{"id":20949595,"url":"https://github.com/islati/commons","last_synced_at":"2025-05-14T03:32:14.307Z","repository":{"id":11994932,"uuid":"14571872","full_name":"Islati/Commons","owner":"Islati","description":"🧩 Plugin Development Framework for Spigot / Bukkit (Minecraft) Servers. Abstracted away all boiler plate code, now just focus on creating content 🥽","archived":false,"fork":false,"pushed_at":"2021-04-26T18:26:27.000Z","size":3437,"stargazers_count":10,"open_issues_count":2,"forks_count":8,"subscribers_count":4,"default_branch":"master","last_synced_at":"2023-08-01T11:25:05.844Z","etag":null,"topics":["java","minecraft","minecraft-plugin","minecraft-plugin-development"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Islati.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-11-20T23:04:49.000Z","updated_at":"2023-03-20T17:01:54.000Z","dependencies_parsed_at":"2022-09-23T03:42:29.957Z","dependency_job_id":null,"html_url":"https://github.com/Islati/Commons","commit_stats":null,"previous_names":[],"tags_count":2,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Islati%2FCommons","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Islati%2FCommons/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Islati%2FCommons/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Islati%2FCommons/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Islati","download_url":"https://codeload.github.com/Islati/Commons/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225274514,"owners_count":17448282,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["java","minecraft","minecraft-plugin","minecraft-plugin-development"],"created_at":"2024-11-19T00:40:39.992Z","updated_at":"2024-11-19T00:40:40.465Z","avatar_url":"https://github.com/Islati.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"Commons\n========\n_**Note: Commons is no longer maintained (July 2020)**_\n\nDon't worry any more about the boiler-plating required to design a plugin, simply add Commons as a dependency, and get to work.\n\n\n\nFeatures:\n----\n\n* Libraries shaded in Commons: Simple XML, JavaTuples, Commons-IO, Project Lombok, jOOR, and Reflections.\n* Annotation based Command System! [Example](https://github.com/TechnicalBro/Commons-Examples/blob/master/src/main/java/com/caved_in/commonsexamples/basic_plugin/command/CommandsExample.java)\n* Simple base for MiniGames [Example](https://github.com/TechnicalBro/Commons-Examples/blob/master/src/main/java/com/caved_in/commonsexamples/minigame/MiniGameExample.java)\n* Easy to use Gadgets System! [Example](https://github.com/TechnicalBro/Commons-Examples/blob/master/src/main/java/com/caved_in/commonsexamples/basic_plugin/gadget/ChickenLauncher.java)\n  * Custom Arrows [Example](https://github.com/TechnicalBro/Commons/blob/master/src/main/java/com/caved_in/commons/debug/gadget/ProtoExplosionArrow.java)\n  * Guns and Bullets! [Example](https://github.com/TechnicalBro/Commons/blob/master/src/main/java/com/caved_in/commons/debug/gadget/FishCannon.java)\n  * Custom Weapons [Example](https://github.com/TechnicalBro/Commons/blob/master/src/main/java/com/caved_in/commons/debug/gadget/KickStick.java)\n  * Throwable Items [Example](https://github.com/TechnicalBro/Commons/blob/master/src/main/java/com/caved_in/commons/debug/gadget/ThrowableBrick.java)\n* MiniGame API! ([Example](https://github.com/TechnicalBro/Commons-Examples/blob/master/src/main/java/com/caved_in/commonsexamples/minigame/MiniGameExample.java)\n  * State based handling to easily control the flow of your game! (Examples: [Pre Game](https://github.com/TechnicalBro/Commons-Examples/blob/master/src/main/java/com/caved_in/commonsexamples/minigame/game/state/PendingGameState.java), [Game Running](https://github.com/TechnicalBro/Commons-Examples/blob/master/src/main/java/com/caved_in/commonsexamples/minigame/game/state/PlayingGameState.java), [Post Game](https://github.com/TechnicalBro/Commons-Examples/blob/master/src/main/java/com/caved_in/commonsexamples/minigame/game/state/EndGameState.java))\n  * Abstracted User (player) data that can be serialized! ([Example](https://github.com/TechnicalBro/Commons-Examples/blob/master/src/main/java/com/caved_in/commonsexamples/minigame/users/GamePlayer.java), [Source](https://github.com/TechnicalBro/Commons/blob/master/src/main/java/com/caved_in/commons/player/User.java))\n  * User Manager for handling data (say, loading stored player information)\n* Utilities\n  * Items\n  * Inventories\n  * Locations\n  * Entities\n  * Players\n  * Blocks\n  * Chat\n  * Reflection (JOOR, thank me later)\n  \n* GUI Creation [Example](https://github.com/TechnicalBro/Commons/blob/master/src/main/java/com/caved_in/commons/menus/warpselection/WarpSelectionMenu.java)\n* @Annotation YML Serialization with Type Adapters [Example](https://github.com/TechnicalBro/Commons/blob/master/src/main/java/com/caved_in/commons/config/CommonsYamlConfiguration.java)\n* Full Featured Debugger! [Examples](https://github.com/TechnicalBro/Commons/tree/master/src/main/java/com/caved_in/commons/debug/actions)\n* Tons of commands implemented to use or learn from. [Example](https://github.com/TechnicalBro/Commons/tree/master/src/main/java/com/caved_in/commons/command/commands)\n* So much more...\n\n\nConfiguration:\n----\n```yaml\n\n# Any concerns regarding the purpose of configuration nodes\n# What they affect, or how they change aspects of the API\n# are described under the Wiki on Commons GitHub page.\n\nDatabase:\n  Mysql:\n    enable: false\n    host: localhost\n    port: '3306'\n    database-name: minecraft\n    username: username\n  track-online-status: false\n  # Used in the chosen database implementation\n  # to identify the server.\n  server-name: EDIT THIS\nCommands:\n  # By default Commons includes a plethora of commands\n  # Designed to aid you in your server ventures!\n  # Though if you're not requiring use of these commands, and\n  # Wish to use Commons for only its API Features, then change this value to\n  # False\n  register-commands: true\n  # Allows usage of 'Bukkit:' prefixed commands\n  # Changing this value to false disable these commands\n  # from being used on your server.\n  enable-bukkit-commands: true\n  # Changing the value of this option to false\n  # Stops players from using '/plugins' on your server.\n  enable-plugins-command: true\nServer:\n  # Whether or not to enable join messages\n  # in chat when a player joins the server\n  enable-join-message: true\n  # Whether or not to enable leave messages\n  # in chat when a player leaves the server\n  enable-leave-messages: true\n  # Whether or not to show 'player was kicked'\n  # messages in chat, when a player is kicked.\n  enable-kick-messages: true\n  # Determines whether or not Commons should\n  # handle chat formatting (in a very basic manner)\n  # or to hand it off to another plugin\n  external-chat-plugin: true\n  # When enabled, only players with 'commons.silence.bypass'\n  # in their permissions will be able to talk\n  silence-chat: false\n  Premium:\n    # Determines whether or not to kick a non-premium player\n    # when a premium user joins the server, and the server\n    # is currently full.\n    # Premium users are determined by the 'premium-user-permission'\n    # node below.\n    kick-when-full: false\n    # Message to display to non-premium users after being\n    # kicked to make room for a premium user.\n    kick-when-full-message: '\u0026eYou were kicked to make room for a Premium User. Sorry.'\n    # When enabled, only users with premium (defined by a permission below)\n    # will be able to join your server.\n    # Those without premium will be displayed a configurable message\n    premium-only-mode: false\n    # This message will be shown to non-premium users who join during premium-only mode.\n    premium-only-mode-kick-message: '\u0026cThis server is currently in premium mode'\n    # Used to restrict access during premium only mode\n    # To players who have this permission\n    premium-user-permission: commons.premiumuser\n  Worlds:\n    # All the options beneath this are used to control\n    # various aspects of the worlds across all\n    # the enabled worlds on your server.\n    #\n    # If you have another plugin enabled that also\n    # Modifies any of these values, there's no guarantee\n    # that they will function as expected.\n    disable-weather: false\n    # When enabled, players will be teleported to their world spawn when joining the server\n    teleport-to-spawn-on-join: false\n    # Changes whether or not lightning will strike during a storm\n    disable-lightning: false\n    # Changes whether or not thunder will rumble during a storm\n    disable-thunder: false\n    # Changes whether or not ice will spread and accumulate\n    disable-ice-accumulation: false\n    # Changes whether or not snow will accumulate while snowing\n    disable-snow-accumulation: false\n    # Changes whether or not mycelium will infect blocks around it, and spread\n    disable-mycelium-spread: false\n    # Changes whether or not fire will spread\n    disable-fire-spread: false\n    # Changes whether or not leaves will decay over time\n    disable-leaf-decay: false\n    # When enabled it changes pressure plates into launch pads, like many server hubs have\n    launchpad-pressure-plates: false\n    # Changes whether or not blocks can be broken outside of creative\n    enable-block-break: true\n    # Changes if players are able to pick up items that are dropped\n    enable-item-pickup: true\n    # Changes if players are able to drop their items\n    enable-item-drop: true\n    # Changes whether or not players lose their hunger while playing\n    enable-food-change: true\n    # When enabled, fireworks will launch and explode whenever a regular explosion happens\n    fireworks-on-explosion: false\n    # Changes whether or not players take fall damage\n    enable-fall-damage: true\n  Maintenance-Mode:\n    # Maintenance mode enables admins, operators, and users\n    # with the 'commons.maintenance.join' permission\n    # to join while the server is undergoing maintenance.\n    # At the same time, it keeps all players not permitted, out, until\n    # maintenance is complete!\n    #\n    # Customizable MOTD (Server list message)\n    # and kick message are available to notify users of\n    # maintenance!\n    enabled: false\n    kick-message: '\u0026cThis server is currently undergoing maintenance; Sorry for the\n      inconvenience'\n    motd: '\u0026aThis server is currently undergoing maintenance'\nDebug:\n  # Debug options are very useful to developers!\n  # Providing a StackTraceEvent, and various output options\n  # which enable in-game players in debug mode\n  # and developers hooking the event to\n  # track, handle, change, and work with the headaches of bug fixing\n  # in an easy and fun manner!\n  stack-trace-event: true\n  # When enabled in conjunction with stack-trace-event\n  # users in debug mode will receive a Book in-game outlining\n  # The error which happened, and it's stack trace written in the books\n  # pages!\n  stack-trace-book: false\n  # When enabled in conjunction with stack-trace-event,\n  # users in debug mode will receive the stack trace in their chat;\n  # so eyes don't have to stray from game, to console, to code.\n  #\n  # Note: Can quickly and painfully spam your chat if to many\n  # errors occur\n  stack-trace-chat: true\nWarps:\n  # When enabled, it provides an interactive GUI\n  # of which players can use to teleport and interact\n  # with warps.\n  enable-gui: true\n```\n\nCommands:\n----\nThe list of commands is quickly growing to be to much to keep on this page; For information about each Command, its syntax, arguments, and permissions: [Click here to go to the Wiki.](https://github.com/TechnicalBro/Commons/wiki/Commands-\u0026-Usage)\n\nPermissions:\n----\nAll the permissions have been copied from the plugin.yml file found inside Commons; Assign them accordingly. Any suggestions for actions that should be restricted via permission, please let me know!\n\nClick here to view a comprehensive list of all the permissions inside Commons, on the Wiki.\n\nUsage, and Tutorials!\n----\n\nTo Start, adding 'depend: [Commons]' to your plugin.yml file, inside the plugin you're making, will allow you to use Commons as a dependency on the plugin level.\n\nNext is to add your plugin as a dependency! If you're using maven enter the following information:\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003ecom.caved_in\u003c/groupId\u003e\n    \u003cartifactId\u003ecommons\u003c/artifactId\u003e\n    \u003cversion\u003e{game-version}\u003c/version\u003e\n    \u003cscope\u003esystem\u003c/scope\u003e\n    \u003csystemPath\u003ecommons-location/commons-{game-version}.jar\u003c/systemPath\u003e\n\u003c/dependency\u003e\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fislati%2Fcommons","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fislati%2Fcommons","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fislati%2Fcommons/lists"}