{"id":26359213,"url":"https://github.com/hashtek-mc/tekore","last_synced_at":"2026-03-10T14:31:08.538Z","repository":{"id":232249757,"uuid":"750570608","full_name":"hashtek-mc/tekore","owner":"hashtek-mc","description":"Coeur du serveur Hashtek.","archived":false,"fork":false,"pushed_at":"2025-03-24T12:38:43.000Z","size":389,"stargazers_count":3,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-02T11:21:22.465Z","etag":null,"topics":["api","bungeecord","bungeecord-plugin","database","friend","guild","java","java-16","mariadb","minecraft","mysql","party","plugin","redis","redisson","server","spigot","spigot-plugin","sql"],"latest_commit_sha":null,"homepage":"https://hashtek.fr","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/hashtek-mc.png","metadata":{"files":{"readme":"README-en.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-01-30T22:17:21.000Z","updated_at":"2024-11-17T03:56:30.000Z","dependencies_parsed_at":"2024-04-09T21:32:55.708Z","dependency_job_id":"1aadab91-1d30-4255-8427-f970c20c4612","html_url":"https://github.com/hashtek-mc/tekore","commit_stats":null,"previous_names":["hashtek-mc/tekore"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/hashtek-mc/tekore","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hashtek-mc%2Ftekore","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hashtek-mc%2Ftekore/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hashtek-mc%2Ftekore/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hashtek-mc%2Ftekore/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hashtek-mc","download_url":"https://codeload.github.com/hashtek-mc/tekore/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hashtek-mc%2Ftekore/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30337174,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-10T12:41:07.687Z","status":"ssl_error","status_checked_at":"2026-03-10T12:41:06.728Z","response_time":106,"last_error":"SSL_read: 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":["api","bungeecord","bungeecord-plugin","database","friend","guild","java","java-16","mariadb","minecraft","mysql","party","plugin","redis","redisson","server","spigot","spigot-plugin","sql"],"created_at":"2025-03-16T15:59:00.279Z","updated_at":"2026-03-10T14:31:08.287Z","avatar_url":"https://github.com/hashtek-mc.png","language":"Java","readme":"# ☢️ ️Tekore\n\n**Server's core.**\n\nThis plugin handles synchronisation between player's data and the SQL database.\nIt ensures that servers work properly between them.\n\n\u003e [!IMPORTANT]\n\u003e Every Hashtek plugin MUST use Tekore.\\\n\u003e You MUST put the .jar file in the `plugins` folder in your server.\n\n[🇫🇷 Egalement disponible en Français !](https://github.com/hashtek-mc/tekore/blob/main/README.md)\n\n## Usage\n\nTo use Tekore, you have to store an instance at the root of your plugin.\n\n**Example :**\n```java\npublic class Test extends JavaPlugin {\n\n    private Tekore core;\n    \n    @Override\n    public void onEnable()\n    {\n        try { // Important !\n            this.core = Tekore.getInstance();\n        } catch (NullPointerException exception) {\n            System.err.println(\"Tekore failed to load. Stopping.\");\n            this.getServer().shutdown();\n            return;\n        }\n    }\n    \n    public Tekore getCore()\n    {\n        return this.core;\n    }\n    \n}\n```\n\n\u003e [!IMPORTANT]\n\u003e You must surround Tekore's loading with a `try/catch` block in case Tekore doesn't load properly.\n(incorrect configuration, for example).\n\n### Features\n\n* `Tekore#getRanks()` : Returns every existing rank\n\n## HashLogger\n\nIn order to centralize logs (and maybe in the future create a log history), you need to use the HashLogger\ninstance present in the Tekore.\n\nYou can get it using `Tekore#getHashLogger()`.\n\nSee [the example](#utilisation-1).\n\n## PlayerData\n\nThe `PlayerData` class stores all player data.\nThis class is the main reason why we made this plugin.\n\n### Usage\n\nYou will use Tekore to get player's data, modify it and save it to the database.\n\nIn an event handler, for example, here is how to get player's data, edit it and save it to the database:\n\n```java\npublic class JoinEvent implements Listener, HashLoggable {\n    \n    private Tekore core;\n    private HashLogger logger; // Tekore's Logger\n    \n    public JoinEvent(Tekore core)\n    {\n        this.core = core;\n        this.logger = this.core.getHashLogger(); // Here we get Tekore's logger\n    }\n    \n    @EventHandler\n    public void onJoin(PlayerJoinEvent event)\n    {\n        Player player = event.getPlayer();\n        PlayerData playerData = this.core.getPlayerData(player); // Data fetching\n        \n        /* Edit whatever you want */\n        \n        // Save data to the database.\n        try {\n            this.core.getAccountManager().updatePlayerAccount(playerData);\n        } catch (SQLException exception) {\n            this.logger.critical(this, \"Failed to update PlayerData.\", exception);\n        }\n    }\n    \n}\n```\n\n\u003e [!TIP]\n\u003e It is strongly recommended that you pass the Tekore instance to the class constructor,\nand not to make the instance static in the root of the plugin.\n\n\u003e [!NOTE]\n\u003e Whenever a player disconnects from the server, its data will be automatically saved to the database.\n\n### Features\n\n* `setRank()` : Sets a player's rank\n\n\u003e [!CAUTION]\n\u003e All functions not listed above are not intended to be used by anything other than the Tekore!\n\n## Database\n\nTo make the plugin work, it needs a database with a precise structure.\n\nYou will need:\\\n\\- [MySQL](https://www.mysql.com/)\\\n\\- [PhpMyAdmin](https://www.phpmyadmin.net/)\\\n\\- [Apache](https://httpd.apache.org/)\n\nOnce these programs have been installed, import the\n[`hashtekdb.sql`](https://github.com/hashtek-mc/hashrc/blob/main/hashtekdb.sql)\ndatabase with PhpMyAdmin.\n\n## Configuration files\n\n### HashLogger (`/plugins/Tekore`)\n\n`loggerLevel` : Log level (see [HashLogger](https://github.com/hashtek-mc/hashlogger/blob/main/README.md))\n\n### Database (`/.env`)\n\n`DB_DATABASE` : Database name (`hashtekdb`)\\\n`DB_HOST` : Database's IP (`127.0.0.1`)\\\n`DB_PORT` : Port to use (`3306` by default)\\\n`DB_USER` : Username (`root` by default)\\\n`DB_PASSWORD` : Password (nothing by default)\n\n\u003e [!IMPORTANT]\n\u003e You must create the `.env` file at the server's root.\n\n## Made with 💜 by [Lysandre B.](https://github.com/Shuvlyy) ・ [![wakatime](https://wakatime.com/badge/user/2f50fe6c-0368-4bef-aa01-3a67193b63f8/project/018d5ee2-0b76-40e6-85c7-41444ac26120.svg)](https://wakatime.com/badge/user/2f50fe6c-0368-4bef-aa01-3a67193b63f8/project/018d5ee2-0b76-40e6-85c7-41444ac26120)","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhashtek-mc%2Ftekore","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhashtek-mc%2Ftekore","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhashtek-mc%2Ftekore/lists"}