connect method
Connect to the Universe Chat server
minecraftUUID
player's minecraft UUID (optional)token
rpmtw account token (optional)onlyListenMessage
if true, only listen to message event,minecraftUUID
andtoken
can be emptyminecraftUUID
,token
cannot both be empty
Implementation
Future<void> connect(
{String? minecraftUUID,
String? token,
bool onlyListenMessage = false}) async {
_onlyListenMessage = onlyListenMessage;
final baseOption =
OptionBuilder().setTransports(['websocket']).disableAutoConnect();
if (minecraftUUID == null && token == null && !onlyListenMessage) {
throw ArgumentError('minecraftUUID and token cannot both be null');
}
if (minecraftUUID != null) {
baseOption.setExtraHeaders({'minecraft_uuid': minecraftUUID});
} else if (token != null) {
baseOption.setExtraHeaders({'rpmtw_auth_token': token});
}
Socket socket = io(universeChatBaseUrl, baseOption.build());
print('Connecting to Universe Chat server...');
bool connected = false;
socket.onConnect((data) {
print('Connected to Universe Chat server');
connected = true;
});
socket = socket.connect();
// Wait for connection
while (!connected) {
await Future.delayed(Duration(milliseconds: 100));
}
// Wait for the connection to be initialized finished
await Future.delayed(Duration(milliseconds: 1000));
_socket = socket;
}