{"id":14969693,"url":"https://github.com/fierioziy/particlenativeapi","last_synced_at":"2025-03-17T15:12:48.487Z","repository":{"id":40237372,"uuid":"249420621","full_name":"Fierioziy/ParticleNativeAPI","owner":"Fierioziy","description":"A fast cross-version particle API for Spigot and Bukkit server.","archived":false,"fork":false,"pushed_at":"2024-12-22T18:50:19.000Z","size":2719,"stargazers_count":50,"open_issues_count":1,"forks_count":5,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-17T15:12:37.851Z","etag":null,"topics":["api","bukkit","craftbukkit","native","packets","particle","particle-api","spigot"],"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/Fierioziy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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":"2020-03-23T12:09:13.000Z","updated_at":"2025-03-04T09:40:26.000Z","dependencies_parsed_at":"2023-01-31T10:15:35.053Z","dependency_job_id":"092d67d6-f206-4e8e-af98-0aa47ae31f63","html_url":"https://github.com/Fierioziy/ParticleNativeAPI","commit_stats":{"total_commits":77,"total_committers":2,"mean_commits":38.5,"dds":"0.22077922077922074","last_synced_commit":"3ad7d9d5ec4a4d264b4d46ac0a3031e589a5de1a"},"previous_names":[],"tags_count":20,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fierioziy%2FParticleNativeAPI","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fierioziy%2FParticleNativeAPI/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fierioziy%2FParticleNativeAPI/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fierioziy%2FParticleNativeAPI/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Fierioziy","download_url":"https://codeload.github.com/Fierioziy/ParticleNativeAPI/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244056425,"owners_count":20390719,"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":["api","bukkit","craftbukkit","native","packets","particle","particle-api","spigot"],"created_at":"2024-09-24T13:42:13.873Z","updated_at":"2025-03-17T15:12:48.448Z","avatar_url":"https://github.com/Fierioziy.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"For version `3.x.x` details of this lib check [Migration from 3.x.x to 4.x.x](#migration-from-3xx-to-4xx)\nsection.\n\n# ParticleNativeAPI\n[![](https://img.shields.io/github/v/release/fierioziy/particlenativeapi)](https://github.com/Fierioziy/ParticleNativeAPI/releases)\n[![](https://img.shields.io/github/release-date/fierioziy/particlenativeapi)](https://github.com/Fierioziy/ParticleNativeAPI/releases)\n[![](https://img.shields.io/github/issues/fierioziy/particlenativeapi)](https://github.com/Fierioziy/ParticleNativeAPI/issues)\n\nParticleNativeAPI is a particle spawning API for Spigot and Bukkit server designed to be:\n- fast (comparable to native Java written code!),\n- cross-version compatible down to MC 1.7 (includes removed particles!),\n- flexible in use.\n- relatively easy and convenient to use.\n\nOn top of that, this particle API supports spawning certain particles:\n- of blocks,\n- of items,\n- with color (only 1 particle per packet),\n- with color and size,\n- with transition color and size,\n- with certain motion (only 1 particle per packet)\n- with angle\n- with delay\n\n... and still be fast and cross version compatible between Minecraft updates.\n\nEntire API structure targets to reflect how Minecraft handles\nsending packets, however it is strongly typed and **uses no Reflection** to do so!\n\nSpawning particle is made in very simple method chain:\n- from API -\u003e get particles list -\u003e get particle\n- select properties of particle\n- make particle packet\n- send it\n\nThat's it. And everything in as compact and efficient way as possible.\n\n```java\n// get API from plugin instance\nParticleNativeAPI api = ParticleNativePlugin.getAPI();\n\n// ... or generate it using core module (\"this\" is Your plugin instance)\nparticleApi = ParticleNativeCore.loadAPI(this);\n\nPlayer player = ...;\nLocation loc = player.getLocation();\n\n// as simple as that\nparticleApi.LIST_1_8.FLAME  // from desired list get particle\n        .packet(true, loc)  // make particle packet\n        .sendTo(player);    // send it to certain player(s)\n```\n\nTo whoever you want to send this packet or on what conditions is up to You. \n\n### Dependency used (shaded into jar)\n- [ObjectWeb's ASM](https://asm.ow2.io/) library.\n\n# Table of content\n- [ParticleNativeAPI](#particlenativeapi)\n- [Resource](#resource)\n- [Minimal usage example overview](#minimal-usage-example-overview)\n- [How to use](#how-to-use)\n- [Migration from 3.x.x to 4.x.x](#migration-from-3xx-to-4xx)\n- [Compatibility](#compatibility)\n\n# Resource\nPlugin and other resources can be downloaded:\n- from the Spigot repository [here](https://www.spigotmc.org/resources/particlenativeapi-1-7.76480/),\n- from the Bukkit repository [here](https://dev.bukkit.org/projects/particlenativeapi),\n- from the Github release page [here](https://github.com/Fierioziy/ParticleNativeAPI/releases).\n\n# Minimal usage example overview\n```java\npublic class PluginName extends JavaPlugin {\n\n    // loaded particle API\n    private ParticleNativeAPI particleApi;\n \n    @Override\n    public void onEnable() {\n        // load API and store it for later use\n        particleApi = ParticleNativeCore.loadAPI(this);\n\n        // or get it from running plugin api instance\n        // check if everything is fine with it\n      \n        // if (ParticelNativePlugin.isValid()) {\n        //     particleApi = ParticleNativePlugin.getAPI();\n        // }\n        // else {\n        //     getLogger().log(Level.SEVERE, \"Error occurred while loading dependency.\");\n        //     this.setEnabled(false);\n        //     return;\n        // }\n    }\n \n    // example usage\n    @Override\n    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {\n        if (!command.getName().equalsIgnoreCase(\"somecmd\")) return true;\n \n        if (!(sender instanceof Player)) {\n            sender.sendMessage(ChatColor.RED + \"You must be player to use this command!\");\n            return true;\n        }\n \n        Player pSender = (Player) sender;\n        Location loc = pSender.getLocation();\n \n        // particle spawning\n        particleApi.LIST_1_8.FLAME             // select particle from list\n                .packet(true, loc)             // create particle packet\n                .sendInRadiusTo(player, 30D);  // send it to player if in 30 block radius\n \n        return true;\n    }\n}\n```\n\n# How to use\nFor detailed tutorial about all parts of this API, check\n[how-to-use.md](documentation/how-to-use.md) file\nfrom `documentation` folder.\n\n# Implementation details\nFor detailed implementation details of this API and general tips\nabout developing it, check\n[implementation-details.md](documentation/implementation-details.md) file\nfrom `documentation` folder.\n\n# Migration from 3.x.x to 4.x.x\nFor migration tips from version 3.x.x to 4.x.x, check\n[migration-v3-to-v4.md](documentation/migration-v3-to-v4.md) file\nfrom `documentation` folder.\n\nMaster branch for version 3.x.x is `master-v3` and there is\ncurrent code for those versions.\n\nMaster branch for version 4.x.x is `master`.\n\nIf you want to access documentation for version 3.x.x, check `README.md`\nfrom `master-v3` branch.\n\n# Compatibility\nTested Spigot versions: 1.7.10, 1.8.8, 1.12, 1.14.3, 1.15.2, 1.16.1, \n1.17, 1.18, 1.19, 1.19.3, 1.20.2, 1.20.6, 1.21.1, 1.21.3, 1.21.4.\n\nTested Paper-Spigot versions (since 1.20.6 internal \ndiscrepancies with Spigot): 1.20.6, 1.21.3, 1.21.4.\n\nPlugin should be compatible at least between MC 1.7 and MC 1.21.4 for now.\nIt will only need update if new feature/bugfix were added\nor there were Minecraft changes in packet handling in future versions.\n\nKeep in mind, that **this API will favor compatibility\nwith supported MC versions range instead of compatibility of itself**.\n\nMost of the time it will be announced as new major\nversion (for ex. from 3.x.x to 4.x.x).\n\nThat said, next API updates might sometimes force some changes\nin Your code to again be compatible with newer API version.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffierioziy%2Fparticlenativeapi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffierioziy%2Fparticlenativeapi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffierioziy%2Fparticlenativeapi/lists"}