{"id":26903815,"url":"https://github.com/qwq-dev/easy-java-irc","last_synced_at":"2026-02-13T13:53:49.556Z","repository":{"id":261381546,"uuid":"881273979","full_name":"QwQ-dev/easy-java-irc","owner":"QwQ-dev","description":"A simple Netty-based Java IRC Library .","archived":false,"fork":false,"pushed_at":"2024-11-06T08:15:33.000Z","size":12,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-11-06T09:23:25.492Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","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/QwQ-dev.png","metadata":{"files":{"readme":"README.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-10-31T08:40:33.000Z","updated_at":"2024-11-06T08:15:36.000Z","dependencies_parsed_at":"2024-11-06T09:23:38.211Z","dependency_job_id":"ab4fd779-796b-4315-8e67-a9743002f526","html_url":"https://github.com/QwQ-dev/easy-java-irc","commit_stats":null,"previous_names":["qwq-dev/easy-java-irc"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QwQ-dev%2Feasy-java-irc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QwQ-dev%2Feasy-java-irc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QwQ-dev%2Feasy-java-irc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QwQ-dev%2Feasy-java-irc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/QwQ-dev","download_url":"https://codeload.github.com/QwQ-dev/easy-java-irc/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246628418,"owners_count":20808106,"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":[],"created_at":"2025-04-01T10:47:53.251Z","updated_at":"2026-02-13T13:53:44.516Z","avatar_url":"https://github.com/QwQ-dev.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"## easy-java-irc\n\nA simple Netty-based IRC Library.\n\n## Overview\n\nA simple Netty-based Java IRC Library.\n\nThis is a simple IRC Library based on Netty, which allows developers to quickly create an IRC system. You only need to\ncreate objects and start them.\n\n## Developers\n\n- [**QwQ-dev**](https://github.com/QwQ-dev)\n- [**InkerBot**](https://github.com/InkerBot)\n\n## Preparation Before Starting\n\nYou need to read the source code and find the TODO segments we've marked. These TODOs are very simple and relate to\nexception handling and information reception.\n\nOnce you complete these, simply copy all the server source code into your project to finish setting up the server.\n\nThe client can be set up in the same way.\n\n## Starting the Service\n\nFor the server, you can create the service\nusing [ServiceData](ejic-server/src/main/java/me/qwqdev/ejic/server/data/ServiceData.java)\nand [NettyServer](ejic-server/src/main/java/me/qwqdev/ejic/server/NettyServer.java).\n\n```java\npackage me.qwqdev.ejic.server;\n\nimport me.qwqdev.ejic.server.data.ServiceData;\nimport me.qwqdev.ejic.server.NettyServer;\n\n/**\n * @author : qwq-dev\n * @since : 2024-10-31 16:48\n */\npublic class Main {\n    public static void createMsgServer() {\n        // 127.0.0.1:24\n        ServiceData serviceData = new ServiceData(\"127.0.0.1\", 24);\n        new NettyServer(serviceData).start();\n    }\n}\n```\n\nThe service will start in the corresponding thread. Additionally, if you want to use a custom ChannelGroup, we also\nallow this:\n\n```java\npublic ServiceData(String address, int port, ChannelGroup channelGroup) {\n    // Implementation omitted \n}\n```\n\nFor the client, you can create the service\nusing [ClientHandler](ejic-client/src/main/java/me/qwqdev/ejic/client/handler/ClientHandler.java)\nand [NettyClient](ejic-client/src/main/java/me/qwqdev/ejic/client/NettyClient.java):\n\n```java\npackage me.qwqdev.ejic.client;\n\n/**\n * @author : qwq-dev\n * @since : 2024-10-31 17:09\n */\npublic class Main {\n    public static void main(String[] args) {\n        // 127.0.0.1:24\n        NettyClient nettyClient = new NettyClient(\"127.0.0.1\", 24, 5000, 0, true);\n        nettyClient.start();\n    }\n}\n```\n\n```java\n public NettyClient(String host, int port, int reconnectMilliseconds, int initialConnectionMillisecondsDelay, boolean asyncConnection) {\n    // Implementation omitted\n}\n```\n\nThis code means we will connect to the service at 127.0.0.1:24. If the connection drops, it will attempt to reconnect\nevery 5000 milliseconds. The first connection delay when starting the client service is 0ms, and the connection is\nasynchronous. Asynchronous connection means that after calling the start method, the thread will not block.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqwq-dev%2Feasy-java-irc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fqwq-dev%2Feasy-java-irc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqwq-dev%2Feasy-java-irc/lists"}