{"id":19675996,"url":"https://github.com/rozukke/mcpp","last_synced_at":"2025-04-05T12:05:56.926Z","repository":{"id":150805258,"uuid":"574920448","full_name":"rozukke/mcpp","owner":"rozukke","description":"A library to interface with Minecraft using C++.","archived":false,"fork":false,"pushed_at":"2025-02-18T12:35:04.000Z","size":4707,"stargazers_count":104,"open_issues_count":5,"forks_count":19,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-29T11:10:27.578Z","etag":null,"topics":["cmake","cpp","minecraft","socket-programming","spigot-api"],"latest_commit_sha":null,"homepage":"https://rozukke.github.io/mcpp/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rozukke.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":"2022-12-06T11:15:51.000Z","updated_at":"2025-03-19T07:34:07.000Z","dependencies_parsed_at":"2024-03-10T10:25:58.181Z","dependency_job_id":"75680848-a4b4-40ff-a1a4-b3af67f7be69","html_url":"https://github.com/rozukke/mcpp","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rozukke%2Fmcpp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rozukke%2Fmcpp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rozukke%2Fmcpp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rozukke%2Fmcpp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rozukke","download_url":"https://codeload.github.com/rozukke/mcpp/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247332604,"owners_count":20921853,"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":["cmake","cpp","minecraft","socket-programming","spigot-api"],"created_at":"2024-11-11T17:26:46.120Z","updated_at":"2025-04-05T12:05:56.905Z","avatar_url":"https://github.com/rozukke.png","language":"C++","readme":"![mcpp logo](https://raw.githubusercontent.com/rozukke/mcpp/main/resources/mcpplogosmall.png)\n\n\n# mcpp\n[![made-with-cpp](https://img.shields.io/badge/Made%20with-C++_17-1f425f.svg)](https://cplusplus.com/) [![made-by-rozukke](https://img.shields.io/badge/Creator-rozukke-f497af.svg)](https://github.com/rozukke) \n[![GitHub license](https://img.shields.io/github/license/rozukke/mcpp.svg)](https://github.com/rozukke/mcpp/blob/main/LICENSE)\n[![Build status](https://github.com/rozukke/mcpp/actions/workflows/ci.yml/badge.svg?branch=main\u0026event=push)](https://github.com/rozukke/mcpp/actions/workflows/ci.yml)\n\n**mcpp** (Minecraft++) is a library built to interface with Minecraft through [Spigot server](https://www.spigotmc.org/) \nrunning the [ELCI](https://github.com/rozukke/ELCI) plugin and using C++. It was primarily designed as a teaching tool, and is tested on MacOS/Linux or Windows with WSL.\n\n## Documentation\n➡ Access the docs for this repo at the [mcpp documentation site](https://rozukke.github.io/mcpp/).\n\n➡ For more details on the broad strokes of **mcpp**, refer to the [wiki](https://github.com/rozukke/mcpp/wiki/Index)!\n\n## History\nThis library is based on [mcpi](https://github.com/martinohanlon/mcpi), which is a Python library with similar functionality. \n\nIn addition to C++ support, this library implements several new commands supported by [ELCI](https://github.com/rozukke/ELCI):\n- `getBlocks` to get a cuboid of blocks with modifiers in a performant manner,\n- `getHeights` to get a 2D area of heights in a performant manner,\n- `doCommand` to perform an in-game minecraft command which allows for additional functionality.\n\nThis C++ version was created for the Royal Melbourne Institute of Technology (RMIT) to supplement the **COSC2084** \n(Programming Studio 2) course.\n\n## Installation\n### Windows\nSince the release is intended for UNIX systems, the recommendation it to do as follows:\n- Install WSL, and then follow the below instructions for Linux.\n- Depending on your WSL version, you may need to specify a connection address manually in `MinecraftConnection()` if you are running Spigot (with ELCI) on Windows, which you can find using `nslookup \"$(hostname).local\"` on your WSL terminal. The default port for ELCI is `4711`. As such, it's recommended to also run the server under WSL.\n\n### MacOS and Linux\n- Install `g++`, `make`, `cmake` and any other build prerequisites\n- Run the following commands:\n```shell\ngit clone https://github.com/rozukke/mcpp.git \u0026\u0026 cd mcpp\ncmake -B build \u0026\u0026 cd build\nsudo make install\n```\n- After doing this, the library should be accessible via a `#include \u003cmcpp/mcpp.h\u003e` directive. \n- When compiling code using the library, use the flag `-lmcpp` for Makefiles or `target_link_libraries(your_executable mcpp)` for CMake.\n\n## Contributors\n\n\u003ca href=\"https://github.com/rozukke/mcpp/graphs/contributors\"\u003e\n  \u003cimg src=\"https://contrib.rocks/image?repo=rozukke/mcpp\" /\u003e\n\u003c/a\u003e\n\n## License\n**The following applies to all relevant code and resource files:**\n\nCopyright 2024 Artemis Rosman and contributors\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frozukke%2Fmcpp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frozukke%2Fmcpp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frozukke%2Fmcpp/lists"}