private <T> void updateData(UUID uuid, DataKey<T> key, T value) {
try {
ByteArrayDataOutput data = ByteStreams.newDataOutput();
DataStreamUtils.writeUUID(data, uuid);
DataStreamUtils.writeDataKey(data, key);
data.writeBoolean(value == null);
if (value != null) {
typeRegistry.getTypeAdapter(key.getType()).write(data, value);
}
RedisBungee.getApi().sendChannelMessage(CHANNEL_DATA_UPDATE, Base64.getEncoder().encodeToString(data.toByteArray()));
} catch (RuntimeException ex) {
BungeeTabListPlus.getInstance().getLogger().log(Level.WARNING, "RedisBungee Error", ex);
} catch (Throwable th) {
BungeeTabListPlus.getInstance().getLogger().log(Level.SEVERE, "Failed to send data", th);
}
}