import 'package:shared_preferences/shared_preferences.dart'; import 'package:uuid/uuid.dart'; class PlayerInfo { final UuidValue? playerID; final UuidValue? lobbyID; final String? passphrase; const PlayerInfo({ required this.playerID, required this.lobbyID, required this.passphrase, }); factory PlayerInfo.fromJson(Map json) { final playerid = UuidValue.fromString(json['playerID']); final lobbyid = UuidValue.fromString(json['lobbyID']); final passphrase = json['passphrase']; return PlayerInfo( playerID: playerid, lobbyID: lobbyid, passphrase: passphrase); } Map toJson() => { 'playerID': playerID, 'lobbyID': lobbyID, 'passphrase': passphrase, }; void store() async { final SharedPreferences prefs = await SharedPreferences.getInstance(); await prefs.setBool("contains", true); await prefs.setString("playerID", playerID.toString()); await prefs.setString("lobbyID", lobbyID.toString()); await prefs.setString("passphrase", passphrase.toString()); } void delete() async { final SharedPreferences prefs = await SharedPreferences.getInstance(); await prefs.setBool("contains", false); } Future get() async { final SharedPreferences prefs = await SharedPreferences.getInstance(); var contains = prefs.getBool("contains"); var playerID = prefs.getString("playerID"); var lobbyID = prefs.getString("lobbyID"); var passphrase = prefs.getString("passphrase"); if (contains == null || !contains || playerID == null || lobbyID == null || passphrase == null) { return null; } return PlayerInfo( playerID: UuidValue.fromString(playerID), lobbyID: UuidValue.fromString(lobbyID), passphrase: passphrase); } } class WebsocketMessageIdentifyPlayer { final String playerID; final String lobbyID; final String? passphrase; const WebsocketMessageIdentifyPlayer({ required this.playerID, required this.lobbyID, required this.passphrase, }); Map toJson() => {'lobbyID': lobbyID, 'playerID': playerID, 'passphrase': passphrase}; }