GlobalDataStore
*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.
Un GlobalDataStore expose des fonctions pour enregistrer et charger les données pour le DataStoreService .
Voir magasins de données pour un guide en profondeur sur la structure des données, la gestion, le traitement des erreurs, etc.
Les magasins de données commandés ne supportent pas la version et les métadonnées, donc DataStoreKeyInfo est toujours nil pour les clés dans un OrderedDataStore. Si vous avez besoin de la version et des métadonnées, utilisez un 2> Class.DataStore2>.
Résumé
Méthodes
Renvoie la valeur d'une clé dans un stock de données spécifié et une instance DataStoreKeyInfo.
- IncrementAsync(key : string,delta : number,userIds : Array,options : DataStoreIncrementOptions):Variant
Augmente la valeur d'une clé de la valeur fournie (les deux doivent être des nombres).
Supprime la clé spécifiée tout en conservant une version accessible.
Définit la valeur du stock de données pour la clé donnée.
Mise à jour la valeur d'une clé avec une nouvelle valeur de la fonction d'appel spécifiée.
Propriétés
Méthodes
GetAsync
Cette fonction renvoie la dernière valeur de la clé fournie et une instance DataStoreKeyInfo. Si la clé n'existe pas ou si la dernière version a été marquée comme supprimée, les deux valeurs de retour seront nil.
Les clés sont stockées localement pendant 4 secondes après la première lu. Un GlobalDataStore:GetAsync() appelé dans ces 4 secondes renvoie une valeur du cache. Les modifications apportées à la clé par GlobalDataStore:SetAsync() ou GlobalDataStore:UpdateAsync() s'appliquent immédiatement et redémarrent le temps de 4 secondes.
Pour obtenir une version spécifique, comme une version avant la dernière, utilisez DataStore:GetVersionAsync() .
Paramètres
Le nom de clé pour lequel la valeur est requise. Si DataStoreOptions.AllScopes a été défini comme vrai lors de l'accès au magasin de données via DataStoreService:GetDataStore(), ce nom de clé doit être prépendu avec le champ de vision/clé comme dans « scope/key».
Retours
La valeur de l'entrée dans le stock de données avec la clé donnée et une instance DataStoreKeyInfo qui inclut le numéro de version, la date et l'heure de la création de la version et les fonctions pour récupérer UserIds et les métadonnées.
IncrementAsync
Cette fonction augmente la valeur d'une clé de la valeur fournie (les deux doivent être des nombres).
OrderedDataStore ne prend pas en charge la versionnalité, donc l'appel de cette méthode sur une clé OrderedDataStore remplacera la valeur actuelle par la valeur augmentée et rendra les versions précédentes inaccessibles.
Paramètres
Nom de la clé pour lequel la valeur doit être mise à jour. Si DataStoreOptions.AllScopes a été définie comme vraie lors de l'accès au magasin de données via DataStoreService:GetDataStore(), ce nom de la clé doit être prépendu avec le champ d'ancrage de l'ancienne scope comme dans « scope/key».
Quantité à augmenter la valeur actuelle de.
(Facultatif) DataStoreIncrementOptions instance qui combine plusieurs paramètres supplémentaires en tant que métadonnées personnalisées et permet une future extensibilité.
Retours
La valeur mise à jour de l'entrée dans le stock de données avec la clé donnée.
RemoveAsync
Cette fonction marque la clé spécifiée comme supprimée en créant une nouvelle version "tombstone" de la clé. Avant cela, il renvoie la dernière version avant l'appel de suppression.
Après qu'une clé soit supprimée via cette fonction, GlobalDataStore:GetAsync() les appels pour la clé nil seront renvoyés. Les versions plus anciennes de la clé restent accessibles via DataStore:ListVersionsAsync() et 1> Class.DataStore:GetVersionAsync()1>, en supposant qu'elles n'ont pas expiré.
OrderedDataStore ne prend pas en charge la versionnalisation, donc en appelant RemoveAsync() sur une clé OrderedDataStore, il le supprime définitivement.
Les objets supprimés seront définitivement supprimés après 30 jours.
Si les valeurs précédentes ont déjà été supprimées via GlobalDataStore:RemoveAsync() ou DataStore:RemoveVersionAsync(), la fonction retournera nil , 1> nil1> pour la valeur et 4> Class.DataStoreKeyInfo4> respectivement.
Paramètres
Nom de clé à supprimer. Si DataStoreOptions.AllScopes était défini comme vrai lors de l'accès au magasin de données via DataStoreService:GetDataStore(), ce nom de clé doit être prépendu avec le champ de vision original comme dans « scope/key».
Retours
La valeur du stock de données avant la suppression et une instance DataStoreKeyInfo qui inclut le numéro de version, la date et l'heure de la création de la version et les fonctions pour récupérer UserIds et les métadonnées.
SetAsync
Cette fonction définit la dernière valeur, UserIds , et les métadonnées pour la clé donnée.
Les valeurs dans les magasins de données sont numérotées, ce qui signifie que GlobalDataStore:SetAsync() créera une nouvelle version à chaque fois qu'il est appelé. Les versions précédentes peuvent être accédées via DataStore:ListVersionsAsync() / DataStore:GetVersionAsync() pour jusqu'à 30 jours auquel point elles sont définitivement supprimées.
OrderedDataStore ne prend pas en charge la versionnalité, donc l'appel de cette méthode sur une clé OrderedDataStore remplacera la valeur actuelle et rendra les versions précédentes inaccessibles.
Les définitions de métadonnées doivent toujours être mises à jour avec une valeur, même si il n'y a pas de modifications à la valeur actuelle ; sinon, la valeur actuelle sera perdue.
Toute chaîne stockée dans un magasin de données doit être valide UTF-8 . Dans UTF-8, les valeurs supérieures à 127 sont utilisées exclusivement pour encodage de code multibaïte, donc un seul baïte supérieur à 127 ne sera pas valide UTF-8 et l'attente GlobalDataStore:SetAsync() échouera.
Mettre à jour vs
GlobalDataStore:SetAsync() est le meilleur pour une mise à jour rapide d'une clé spécifique, et il ne compte que sur la limite d'écriture. Cependant, il peut causer une incohérence de données si deux serveurs essaient de définir la même clé à la même fois. Class.GlobalDataStore:UpdateAsync
Paramètres
Nom de la clé pour lequel la valeur devrait être configurer. Si DataStoreOptions.AllScopes a été définie sur vrai lors de l'accès au magasin de données via DataStoreService:GetDataStore(), ce nom de la clé doit être prépendu avec le champ d'ancrage de l'ancien scope comme dans « scope/key».
La valeur à laquelle la clé de la boutique de données sera réglée.
Table de UserIds , très recommandée pour aider au suivi/à la suppression de GDPR.
(Facultatif) DataStoreSetOptions instance qui permet de spécifier des métadonnées sur la clé.
Retours
L'identifiant de version de la version créée récemment. Il peut être utilisé pour récupérer l'information clé en utilisant GetVersionAsync() ou pour le supprimer en utilisant RemoveVersionAsync() .
UpdateAsync
Cette fonction récupère la valeur et les métadonnées d'une clé dans le stock de données et les met à jour avec une nouvelle valeur définie par la fonction d'appel spécifiée via le deuxième paramètre. Si la fonction d'appel renvoie nil, l'opération d'écriture est annulée et la valeur reste inchangée.
Si la mise à jour réussit, une nouvelle version de la valeur sera créée et les versions précédentes resteront accessibles via DataStore:ListVersionsAsync() et DataStore:GetVersionAsync() .
OrderedDataStore ne prend pas en charge la versionnalité, donc l'appel de cette fonction sur une clé OrderedDataStore remplacera la valeur actuelle et rendra les versions précédentes inaccessibles.
Dans les cas où un autre serveur de jeu a mis à jour la clé dans la courte période de temps entre la récupération de la valeur de la clé et le définition de la valeur de la clé, GlobalDataStore:UpdateAsync() appellera la fonction à nouveau, en descartant le résultat de l'appel précédent. La fonction sera appelée autant de fois que nécessaire jusqu'à ce que la
Toute chaîne stockée dans un stockage de données doit être valide UTF-8 . Dans UTF-8, les valeurs supérieures à 127 sont utilisées exclusivement pour l'encodage de points de code multibytes, donc un seul octet supérieur à 127 ne sera pas valide UTF-8 et l'attente GlobalDataStore:UpdateAsync() échouera.
Mettre à jour vs
GlobalDataStore:SetAsync() est le meilleur pour une mise à jour rapide d'une clé spécifique, et il ne compte que sur la limite d'écriture. Cependant, il peut causer une incohérence de données si deux serveurs essaient de définir la même clé à la même fois. Class.GlobalDataStore:UpdateAsync
Fonction d'appel
La fonction de rappel accepte deux arguments :
- Valeur actuelle de la clé avant la mise à jour.
- DataStoreKeyInfo instance qui contient les informations de version les plus récentes (ce paramètre peut être ignoré si les métadonnées ne sont pas utilisées).
À son tour, la fonction de rappel renvoie jusqu'à trois valeurs :
- La nouvelle valeur à définir pour la clé.
- Un tableau de UserIds à associer avec la clé. DataStoreKeyInfo:GetUserIds() doit être renvoyé à moins que les ID actuels ne soient modifiés ; sinon, tous les ID actuels seront effacés.
- Une table Lua contenant des métadonnées pour associer avec la clé. DataStoreKeyInfo:GetMetadata() doit être renvoyée à moins que les métadonnées existantes ne soient modifiées ; sinon, toutes les métadonnées existantes seront effacées.
Si le rappel renvoie nil à la place, le serveur actuel arrêtera de tentar de mettre à jour la clé.
La fonction de rappel ne peut pas générer, alors ne pas inclure des appels comme task.wait().
Paramètres
Nom de la clé pour lequel la valeur doit être mise à jour. Si DataStoreOptions.AllScopes a été définie comme vraie lors de l'accès au magasin de données via DataStoreService:GetDataStore(), ce nom de la clé doit être prépendu avec le champ d'ancrage de l'ancienne scope comme dans « scope/key».
Transformez la fonction qui prend la valeur actuelle et DataStoreKeyInfo en tant que paramètres et renvoie la nouvelle valeur avec un optionnel UserIds et des métadonnées.
Retours
La valeur mise à jour de l'entrée dans le stock de données avec la clé donnée et une instance DataStoreKeyInfo qui inclut le numéro de version, la date et l'heure de la création de la version et les fonctions pour récupérer UserIds et les métadonnées.