{"id":22543945,"url":"https://github.com/pinozenth/experiences-lib","last_synced_at":"2025-04-09T23:43:26.282Z","repository":{"id":257910123,"uuid":"869625192","full_name":"PinozenTH/Experiences-Lib","owner":"PinozenTH","description":"A Minecraft framework designed to create a new experience for developing plugins from the ground up.","archived":false,"fork":false,"pushed_at":"2025-03-10T17:23:40.000Z","size":152,"stargazers_count":3,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-24T01:35:38.097Z","etag":null,"topics":["library","minecraft","minecraft-library","minecraft-plugin","plugin","plugin-library","spigot","spigot-plugin","spigotmc"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PinozenTH.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-08T15:57:31.000Z","updated_at":"2025-03-12T18:34:22.000Z","dependencies_parsed_at":"2024-11-19T18:43:36.760Z","dependency_job_id":null,"html_url":"https://github.com/PinozenTH/Experiences-Lib","commit_stats":null,"previous_names":["pinozenth/pixlib","pinozenth/experiences-lib"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PinozenTH%2FExperiences-Lib","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PinozenTH%2FExperiences-Lib/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PinozenTH%2FExperiences-Lib/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PinozenTH%2FExperiences-Lib/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PinozenTH","download_url":"https://codeload.github.com/PinozenTH/Experiences-Lib/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248131467,"owners_count":21052819,"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":["library","minecraft","minecraft-library","minecraft-plugin","plugin","plugin-library","spigot","spigot-plugin","spigotmc"],"created_at":"2024-12-07T14:05:36.291Z","updated_at":"2025-04-09T23:43:26.253Z","avatar_url":"https://github.com/PinozenTH.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🆕 PixLib is now renamed to Experience!\n\n\u003cimg src=\"https://imgur.com/RTuYY8g.png\" /\u003e\n\n----\n\n# Compatibility\n\nExperience Library is developing under [spigot-api](https://hub.spigotmc.org/javadocs/bukkit/) version [1.21.1](https://helpch.at/docs/1.21.1/) so you should be fine on developing a bukkit, spigot, and paper plugin!\n\n* [X] 1.21.1\n\nFeel free to use this [Plugin Template](https://github.com/PinozenTH/PluginTemplate) as your head start.\n\n_**Note: I don't have plan to down grade this library to any spigot-api version under 1.21.1 for now.**_\n\n\u003e ⚠️ Caution this library is has develop just for pinont's plugin, Becareful of using this library on your own,\u003cbr\u003eYou may Experiences some bugs or problems\u003cbr\u003eDue to my lack of Development Skills and Testing.\n\n# Quick Start\n\nPlease follow the steps below to if you plan to use Experience flamework on your own plugin.\n\n## Step 1: Import experiences into Maven/Gradle\n\nIf you use maven don't worry about repository, This library has located a repository to maven central.\n\n```xml\n\u003c!-- rest of the code ... \u003cdependencies\u003e --\u003e\n\n    \u003cdependency\u003e\n        \u003cgroupId\u003ecom.pinont\u003c/groupId\u003e\n        \u003cartifactId\u003eexperiences\u003c/artifactId\u003e\n        \u003cversion\u003eLatest version of Experiences\u003c/version\u003e\n        \u003cscope\u003ecompile\u003c/scope\u003e\n    \u003c/dependency\u003e\n\n\u003c!-- rest of the code ... \u003c/dependencies\u003e --\u003e\n```\n\n## Step 2: Shading (Important)\n\n**Experiences** comes with some plugins available for you such as MythicMobs, etc. so that you can access them when you are coding but don't need to include them as dependencies on your own.\n\nMaven has a limitation whereby these plugins will end up in your plugin .jar file if you don't configure the maven-shade-plugin's includes section properly.\n\nIf you are a beginner all that's needed is copy paste the following section and drop it into your `\u003cplugins\u003e` section of pom.xml (if you already have such section there, remove it).\n\n**Make sure to change `your.plugin.main.package` below to your own package name.**\n\nIf you want to compile a dependency to your jar, install it normally through the `\u003cdependency\u003e` directive, set it's scope to \"compile\" and then include it again. You can just duplicate the `\u003cinclude\u003e` and change it for your dependency.\n\n```xml\n\u003cplugin\u003e\n    \u003cgroupId\u003eorg.apache.maven.plugins\u003c/groupId\u003e\n    \u003cartifactId\u003emaven-shade-plugin\u003c/artifactId\u003e\n\n    \u003c!-- Change version to the latest one from\n         https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-shade-plugin --\u003e\n    \u003cversion\u003e3.5.1\u003c/version\u003e\n    \u003cexecutions\u003e\n        \u003cexecution\u003e\n            \u003cphase\u003epackage\u003c/phase\u003e\n            \u003cgoals\u003e\n                \u003cgoal\u003eshade\u003c/goal\u003e\n            \u003c/goals\u003e\n        \u003c/execution\u003e\n    \u003c/executions\u003e\n    \u003cconfiguration\u003e\n        \u003ccreateDependencyReducedPom\u003efalse\u003c/createDependencyReducedPom\u003e\n        \u003cartifactSet\u003e\n            \u003cincludes\u003e\n                \u003c!-- Important: This will ensure only Experiences is shaded to your jar. If you have\n                     other dependencies that should be compiled, duplicate this line for each. \n                     \n                     ONLY ADD THE LIBRARIES HERE YOU WANT TO BE INCLUDED IN YOUR PLUGIN.JAR\n                     --\u003e\n                \u003cinclude\u003ecom.pinont.experiences\u003c/include\u003e\n            \u003c/includes\u003e\n        \u003c/artifactSet\u003e\n        \u003crelocations\u003e\n            \u003c!-- This moves Experiences into your own package in \"lib\" subpackage to prevent interference. --\u003e\n            \u003crelocation\u003e\n                \u003cpattern\u003ecom.pinont.experiences\u003c/pattern\u003e\n                \u003cshadedPattern\u003eyour.plugin.main.package.lib\u003c/shadedPattern\u003e\n            \u003c/relocation\u003e\n        \u003c/relocations\u003e\n    \u003c/configuration\u003e\n\u003c/plugin\u003e\n```\n\n## Step 3: extends ExpPlugin on your MainClass\n\n**Experiences** is already extends JavaPlugin and has a method to handle `onEnable()` and `onDisable()` so you don't have to worry about register events, and commands excuter for this case.\n\nSimply change from `JavaPlugin` to `ExpPlugin` and remove `onEnable()` and `onDisable()` then implements a code below.\n\nIf you are beginners in this case extends in java can be use for extends only on class.\n\n```java\nimport com.pinont.experiences.plugin.ExpPlugin;\n\npublic class MainClass extends ExpPlugin {\n\n    @Override\n    public void onPluginStart() {\n        this.addListener(new SomeEventListener());\n\n        this.addCommand(new SomeCommand());\n    }\n\n    @Override\n    public void onPluginStop() { /* Do something when the plugin is being disabled */ }\n\n    public static MainClass getInstance() {\n        return (MainClass) ExpPlugin.getPlugin();\n    }\n}\n```\n\n\u003e 🍵 Note: I'm not a profressional code developer, so feel free to **[PR](https://github.com/PinozenTH/Experiences-Lib/pulls)** an enchantment to my code if you think it's better to be.\n\n* [X] Automatic command registration\n* [X] Automatic event listener registration\n* [ ] Automatic configuration file generation\n* [ ] Automatic language file generation\n* [ ] Automatic database connection\n* [ ] Automatic plugin update checker\n* [ ] Automatic plugin metrics\n* [X] Simple method to create an Item using `ItemBuilder`\n* [X] Simple method to create an Entity using `EntityBuilder` *(Without summoning the entity)* _*Experimental*_\n* [X] Create a GUI using `Gui`\n* [ ] Rework Economy System\n* [X] Rework Scoreboard System _*Experimental*_\n* [X] Rework Messaging Method\n* [ ] Rework Configuration Method\n* [X] New way to select an area _*Experimental*_\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpinozenth%2Fexperiences-lib","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpinozenth%2Fexperiences-lib","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpinozenth%2Fexperiences-lib/lists"}