protected override async UniTask OnLoadAsync() { Provider.onEnemyConnected += OnConnected; Provider.onEnemyDisconnected += OnDisconnected; foreach (var player in await m_UnturnedUserProvider.GetUsersAsync(KnownActorTypes.Player)) { if (!(player is UnturnedUser unturnedUser) || unturnedUser.Player == null) { continue; } var go = unturnedUser.Player.gameObject; var ldmComponent = go.getOrAddComponent <LdmComponent>(); LdmComponents[unturnedUser.SteamId] = ldmComponent; } }
protected override async Task OnExecuteAsync() { if (Context.Parameters.Length < 1) { throw new CommandWrongUsageException(Context); } var colorString = await Context.Parameters.GetAsync <string>(0); var color = Color.FromName(colorString); var index = 0; if (color.IsKnownColor) { if (Context.Parameters.Length < 2) { throw new CommandWrongUsageException(Context); } index = 1; } else { color = Color.White; } var message = Context.Parameters.GetArgumentLine(index).Trim(); if (string.IsNullOrWhiteSpace(message)) { throw new CommandWrongUsageException(Context); } CommandWindow.Log(message); foreach (var user in await m_UnturnedUserProvider.GetUsersAsync(KnownActorTypes.Player)) { await user.PrintMessageAsync(message, color); } }