Zuerst einmal eine Anmerkung:
Einen eigenen Minecraft-Client zu programmieren ist soweit zwar eine nette Idee, aber in meinen Augen total unnötig. Wenn dir bestimmte Funktionen im Client nicht ausreichend sind, kannst du mit Forge oder Fabric neue Mods hinzufügen und das bestehende Verhalten ändern. Zudem solltest du bei einem eigenen Client aufpassen, welche Quellen du für Grafiken nutzt, nicht dass du da am Ende von Mojang wegen Urheberrechtsverletzungen belangt wirst.
Dann noch eine weitere Anmerkung:
Wenn du deinen Client nur einer begrenzten Personenzahl zum Testen geben möchtest bzw. diesen Client öffentlich zur Verfügung stellen möchtest, solltest du auch wissen, wie man so ein System selbst programmiert und wie man das sicher macht. Ich bin mir sicher, dass es auch genug Lizenz-Implementierungen auf Java-Basis im WWW gibt, allerdings müsstest du diese Suchen und du müsstest selbst wissen, was du dort überhaupt haben möchtest.
Zu dem Beitrag von
@TrinityX :
Ja, irgendwie so könnte man das umsetzen. Aber eine zentrale Datenbank führt zu einer interessanten Angriffsstelle und setzt eine zentrale Infrastruktur voraus. Zum einen benötigt man dann einen Aperat wie den Mojang/Microsoft Loginserver, der durchaus auch mal ausfällt, zum anderen muss man dieses System auch entsprechend härten.
Zu der tatsächlichen Umsetzung:
Ich würde tatsächlich eine Implementierung wählen, bei der du eine solche Lizenz entsprechend signierst. Dabei hast du einen Private Key bei dir, den du zur Signatur der Lizenzen benutzt. Im Client hast du dann den Public Key als Ressource hinterlegt und prüfst dann die Lizenz auf Gültigkeit. Gleichzeitig kannst du dann in der Lizenz auch ein Enddatum für den Betatester festlegen, wonach der Client das Starten verweigert. Durch die Signatur kann man nicht einfach das Datum als Anwender ändern und gleichzeitig brauchst du auch keinen Internetanschluss und zentrale Infrastruktur.
Mehr werde ich dir dazu allerdings nicht sagen. Zum einen bin ich selbst kein Experte in dem Thema, zum anderen solltest du bei so einem komplexen Thema selbst wissen, wie du so eine Implementierung aufbaust.