{"id":15175103,"url":"https://github.com/mcparkournet/impass","last_synced_at":"2026-02-28T10:32:47.061Z","repository":{"id":177538891,"uuid":"189090097","full_name":"mcparkournet/impass","owner":"mcparkournet","description":"Gain access to unavailable members using dynamic proxy classes","archived":false,"fork":false,"pushed_at":"2020-08-18T22:28:30.000Z","size":255,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-11-11T10:02:50.763Z","etag":null,"topics":["accessor","craftbukkit","dynamic-proxy","implementation-access","java","nms","unavailable-members"],"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/mcparkournet.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":"2019-05-28T19:26:02.000Z","updated_at":"2023-01-20T00:58:00.000Z","dependencies_parsed_at":"2023-07-08T06:17:54.162Z","dependency_job_id":null,"html_url":"https://github.com/mcparkournet/impass","commit_stats":null,"previous_names":["mcparkournet/impass"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mcparkournet/impass","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcparkournet%2Fimpass","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcparkournet%2Fimpass/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcparkournet%2Fimpass/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcparkournet%2Fimpass/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mcparkournet","download_url":"https://codeload.github.com/mcparkournet/impass/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcparkournet%2Fimpass/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29930344,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-28T09:58:13.507Z","status":"ssl_error","status_checked_at":"2026-02-28T09:57:57.047Z","response_time":90,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["accessor","craftbukkit","dynamic-proxy","implementation-access","java","nms","unavailable-members"],"created_at":"2024-09-27T12:02:27.231Z","updated_at":"2026-02-28T10:32:47.034Z","avatar_url":"https://github.com/mcparkournet.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"![build](https://github.com/mcparkournet/impass/workflows/build/badge.svg)\n[![Download](https://api.bintray.com/packages/mcparkour/maven-public/impass-core/images/download.svg)](https://bintray.com/mcparkour/maven-public/impass-core/_latestVersion)\n\n# Impass\n\nImpass allows you to access unavailable members using dynamic proxy classes. It is used mainly to access implementation members, which are not exposed in the API, such as some CraftBukkit or NMS methods.\n\n## Usage\n\nAdd dependency to project:\n\n```kotlin\nrepositories {\n\tjcenter()\n}\n\ndependencies {\n\timplementation(\"net.mcparkour:impass-bukkit:1.0.8\")\n}\n```\n\nCreate accessor interface:\n\n```java\nimport net.mcparkour.impass.annotation.method.Method;\nimport net.mcparkour.impass.annotation.type.CraftBukkitType;\nimport net.mcparkour.impass.instance.InstanceAccessor;\n\n@CraftBukkitType(\"CraftPlayer\") //Refers to org.bukkit.craftbukkit.\u003cversion\u003e.CraftPlayer\npublic interface CraftPlayerAccessor extends InstanceAccessor {\n\n\t@Method(\"refreshPlayer\")\n\tvoid refreshPlayer();\n}\n```\n\nCreate accessor factory:\n\n```java\norg.bukkit.Server server = ...\nAccessorFactory accessorFactory = new BukkitAccessorFactory(server);\n```\n\nCreate instance of accessor and invoke defined there method:\n\n```java\nAccessorFactory accessorFactory = ...\n\norg.bukkit.entity.Player player = ...\nCraftPlayerAccessor accessor = accessorFactory.createInstanceAccessor(CraftPlayerAccessor.class, player);\n\naccessor.refreshPlayer(); //Invokes CraftPlayer#refreshPlayer()\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmcparkournet%2Fimpass","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmcparkournet%2Fimpass","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmcparkournet%2Fimpass/lists"}