{"id":16380113,"url":"https://github.com/andylizi/haproxy-detector","last_synced_at":"2025-03-21T01:32:34.174Z","repository":{"id":41531983,"uuid":"290719691","full_name":"andylizi/haproxy-detector","owner":"andylizi","description":"A Minecraft plugin that enables proxied and direct connections both at the same time.","archived":false,"fork":false,"pushed_at":"2023-06-19T15:58:42.000Z","size":103,"stargazers_count":86,"open_issues_count":9,"forks_count":12,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-01T01:41:20.573Z","etag":null,"topics":["bukkit-plugin","bungeecord-plugin","haproxy","minecraft","spigot-plugin","velocity-plugin"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/andylizi.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}},"created_at":"2020-08-27T08:25:43.000Z","updated_at":"2025-02-17T09:09:25.000Z","dependencies_parsed_at":"2023-02-14T03:03:02.072Z","dependency_job_id":"9869cf7f-3ad2-4cc0-b6a1-e9e37f37187e","html_url":"https://github.com/andylizi/haproxy-detector","commit_stats":null,"previous_names":["andylizi/bc-haproxy-detector"],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andylizi%2Fhaproxy-detector","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andylizi%2Fhaproxy-detector/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andylizi%2Fhaproxy-detector/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andylizi%2Fhaproxy-detector/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/andylizi","download_url":"https://codeload.github.com/andylizi/haproxy-detector/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244099895,"owners_count":20398044,"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":["bukkit-plugin","bungeecord-plugin","haproxy","minecraft","spigot-plugin","velocity-plugin"],"created_at":"2024-10-11T03:50:27.122Z","updated_at":"2025-03-21T01:32:33.805Z","avatar_url":"https://github.com/andylizi.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# HAProxyDetector\n\n[![](https://img.shields.io/github/downloads/andylizi/haproxy-detector/total?style=for-the-badge)](https://github.com/andylizi/haproxy-detector/releases) [![](https://img.shields.io/github/license/andylizi/haproxy-detector?style=for-the-badge)](https://github.com/andylizi/haproxy-detector/blob/master/LICENSE) [![](https://img.shields.io/bstats/servers/12604?label=Spigot%20Servers\u0026style=for-the-badge)](https://bstats.org/plugin/bukkit/HAProxyDetector/12604) [![](https://img.shields.io/bstats/servers/12605?label=BC%20Servers\u0026style=for-the-badge)](https://bstats.org/plugin/bungeecord/HAProxyDetector/12605) [![](https://img.shields.io/bstats/servers/14442?label=Velocity%20Servers\u0026style=for-the-badge)](https://bstats.org/plugin/velocity/HAProxyDetector/14442)\n\nThis [BungeeCord](https://github.com/SpigotMC/BungeeCord/) (and now [Spigot](https://www.spigotmc.org/wiki/spigot/)\nand [Velocity](https://velocitypowered.com/)) plugin enables proxied and direct connections both at the same time. More\ninfomation about [HAProxy](https://www.haproxy.org/) and its uses can be\nfound [here](https://github.com/MinelinkNetwork/BungeeProxy/blob/master/README.md).\n\n## Security Warning\n\nAllowing both direct and proxied connections has significant security implications — a malicious player can access the\nserver through their own HAProxy instance, thus tricking the server into believing the connection is coming from a\nfake IP.\n\nTo counter this, this plugin implements IP whitelisting. **By default, only proxied connections from `localhost` will be\nallowed** (direct connections aren't affected). You can add the IP/domain of your trusted HAProxy instance by\nediting `whitelist.conf`, which can be found under the plugin data folder.\n\n\u003cdetails\u003e\n    \u003csummary\u003eDetails of the whitelist format\u003c/summary\u003e\n\n```\n# List of allowed proxy IPs\n#\n# An empty whitelist will disallow all proxies.\n# Each entry must be an valid IP address, domain name or CIDR.\n# Domain names will be resolved only once at startup.\n# Each domain can have multiple A/AAAA records, all of them will be allowed.\n# CIDR prefixes are not allowed in domain names.\n\n127.0.0.0/8\n::1/128\n```\n\nIf you want to disable the whitelist (which you should never do), you can do so by\nputting this line verbatim, before any other entries:\n\n```\nYesIReallyWantToDisableWhitelistItsExtremelyDangerousButIKnowWhatIAmDoing!!!\n```\n\n\u003c/details\u003e\n\n## Platform-specific Notes\n\n#### BungeeCord\n\n`proxy_protocol` needs to be enabled in BC `config.yml` for this plugin to work. (Not to be confused with the similar option in `paper.yml`)\n\nOlder versions of BC can in theory use [BungeeProxy](https://github.com/MinelinkNetwork/BungeeProxy) in parallel\nwith this plugin, but it hasn't been tested yet. Feedback is welcomed.\n\n#### Spigot and its derivatives\n\n[ProtocolLib](https://github.com/dmulloy2/ProtocolLib) is a required dependency.\nThis plugin was developed using ProtocolLib v4.8.0; please try that version first if there are any errors. Check out [issue #3](https://github.com/andylizi/haproxy-detector/issues/3) for experimental support for ProtocolLib 5.0.\n\n#### Paper\n\nNew versions of Paper have built-in HAProxy support (proxied connection only). It's not compatible with this plugin, so please disable the `proxy-protocol` option in `paper.yml`.\n\n#### Velocity\n\n`haproxy-protocol` needs to be enabled in Velocity config for this plugin to work.\n\nVersions older than 3.0 are not supported.\n\n#### Java \u003e= 9\n\nIf errors like `NoClassDefFoundError: sun.misc.Unsafe`, `InaccessibleObjectException` and such are encountered,\nplease add `--add-opens java.base/java.lang.invoke=ALL-UNNAMED` to JVM arguments.\n\n#### Java \u003e= 18\n\nIf errors like `IllegalAccessException: static final field has no write access` are encountered,\nplease upgrade the plugin to at least v3.0.2.\n\nIf you cannot upgrade for whatever reason, a temporary workaround would be to add\n`-Djdk.reflect.useDirectMethodHandle=false` to JVM arguments.\n\nNote that this argument will be removed in future Java releases.\n\n## Metrics\n\nThis plugin uses [bStats](https://bStats.org) for metrics. It collects some basic information, like how many people\nuse this plugin and the total player count. You can opt out at any time by editing the config file under\n`plugins/bStats/`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandylizi%2Fhaproxy-detector","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandylizi%2Fhaproxy-detector","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandylizi%2Fhaproxy-detector/lists"}