{"id":20544783,"url":"https://github.com/marcpg1905/libpg","last_synced_at":"2026-06-13T16:32:33.286Z","repository":{"id":218139114,"uuid":"739821961","full_name":"MarcPG1905/LibPG","owner":"MarcPG1905","description":"Utility Library for MarcPG's projects.","archived":false,"fork":false,"pushed_at":"2025-01-19T00:04:20.000Z","size":221,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-30T15:40:34.119Z","etag":null,"topics":["java-library","library","private-library","utility"],"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/MarcPG1905.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-01-06T16:45:23.000Z","updated_at":"2025-02-12T10:56:40.000Z","dependencies_parsed_at":"2024-01-20T00:25:15.744Z","dependency_job_id":"da7257f3-19a9-4497-8675-6fc872701fa2","html_url":"https://github.com/MarcPG1905/LibPG","commit_stats":null,"previous_names":["marcpg1905/libpg"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/MarcPG1905/LibPG","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarcPG1905%2FLibPG","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarcPG1905%2FLibPG/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarcPG1905%2FLibPG/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarcPG1905%2FLibPG/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MarcPG1905","download_url":"https://codeload.github.com/MarcPG1905/LibPG/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarcPG1905%2FLibPG/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34292323,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-13T02:00:06.617Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["java-library","library","private-library","utility"],"created_at":"2024-11-16T01:48:45.708Z","updated_at":"2026-06-13T16:32:33.271Z","avatar_url":"https://github.com/MarcPG1905.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# [LibPG](https://marcpg.com/libpg) by [MarcPG](https://marcpg.com/)\n\nLibPG is a utility library made by MarcPG for his own projects and some others.  \nLibPG adds many features that are missing from default Java or are just made easier in this library, such as time counting, etc.\n\n---\n\n**Here are all the features:**\n\n## Color\n\n### McFormat\n\nMcFormat provides coloring and general formatting for Minecraft plugins, mods, etc. that don't have a color library like the Adventure-Component-API built in.  \nYou can use various color and even make your own ones (custom ones might have limited compatibility). There are also features like bold or italic text.  \nAfter colored text, you should normally use McFormat.RESET. You can also transform the McFormat to Ansi by using .ansi(), but the [Ansi](#ansi) class is generally more recommended for doing that.\n\n### Ansi\n\nAnsi provides coloring and other formatting for shells that support Ansi, which are almost all shells.  \nYou can also use it for things like background colors, custom colors, etc.\n\n## Data\n\nData is used to store common data values/counts, such as time, bits, bytes, etc.\n\n### Storage\n\nBitData and ByteData can be used to store an amount of data in either bits (bits, megabits, gigabits, etc.) or in bytes (bytes, megabytes, gigabytes, etc.).  \nIt is generally more common in normal usage cases to display data in bytes, not bits, as it's the standard and easier to convert.\n\n### Time\n\n#### Time\n\nTime can be used to store, simplify, count, get and format time.  \nIt's object based and also used in the [timer](#timer) for counting using #increment() and #decrement().  \nYou can also format time into strings using the #getOneUnitFormatted() and #getPreciselyFormatted() methods, which return it with proper units like s, min, h, etc.\n\n#### Timer\n\nYou can use the Timer interface to make your own timers. That's pretty much all there is to it.\n\n## Storing\n\n### Pair\n\nPairs can be used to store two objects in one, like a Map, but with only one pair.  \nThe two values are called left and right and can be changed whenever you want, as they are not final.\n\n## Text\n\n### Completer\n\nThe completer can be used to complete input based on the current input and the suggested possibilities.  \nThere are three different completion types:\n- Start Complete: Completes the text based on every possibility that can be there after the string that was already typed.\n- Contain Complete: Completes the text based on every possibility that contains the string that was already typed.\n- Semi-Smart Complete: Completes the text in a somewhat smart way by using start completion when the input is three characters or less and contain completion when there's more than three characters typed.\n\n### Formatter\n\nThe formatter helps when handling text.  \nThere is currently only #toPascalCase, which is used to convert names of static variables or enum values into good looking text.\n\n## Util\n\n### Randomizer\n\nProvides functions for randomizing things like characters, strings, booleans with chances, etc. without the need for additional code.  \nYou can use the boolean randomizers to generate a boolean with a specified chance, like 70% for example.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarcpg1905%2Flibpg","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmarcpg1905%2Flibpg","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarcpg1905%2Flibpg/lists"}