public override void OnVariableSet(DreamObject dreamObject, string variableName, DreamValue variableValue, DreamValue oldVariableValue) { base.OnVariableSet(dreamObject, variableName, variableValue, oldVariableValue); if (variableName == "key" || variableName == "ckey") { DreamConnection newClientConnection = Program.DreamServer.GetConnectionFromCKey(variableValue.GetValueAsString()); newClientConnection.MobDreamObject = dreamObject; } else if (variableName == "client" && variableValue != oldVariableValue) { DreamObject newClient = variableValue.GetValueAsDreamObject(); DreamObject oldClient = oldVariableValue.GetValueAsDreamObject(); if (newClient != null) { Program.ClientToConnection[newClient].MobDreamObject = dreamObject; } else if (oldClient != null) { Program.ClientToConnection[oldClient].MobDreamObject = null; } } }
public override DreamValue OnVariableGet(DreamObject dreamObject, string variableName, DreamValue variableValue) { if (variableName == "key" || variableName == "ckey") { DreamObject clientObject = dreamObject.GetVariable("client").GetValueAsDreamObject(); if (clientObject != null && clientObject.IsSubtypeOf(DreamPath.Client)) { return(clientObject.GetVariable(variableName)); } else { return(DreamValue.Null); } } else if (variableName == "client") { DreamConnection connection = Program.DreamServer.GetConnectionFromMob(dreamObject); if (connection != null && connection.ClientDreamObject != null) { return(new DreamValue(connection.ClientDreamObject)); } else { return(DreamValue.Null); } } else { return(base.OnVariableGet(dreamObject, variableName, variableValue)); } }
public override DreamValue OperatorOutput(DreamValue a, DreamValue b) { DreamObject client = a.GetValueAsDreamObjectOfType(DreamPath.Mob).GetVariable("client").GetValueAsDreamObjectOfType(DreamPath.Client); DreamConnection connection = Program.ClientToConnection[client]; connection.OutputDreamValue(b); return(new DreamValue(0)); }
public override DreamValue OperatorOutput(DreamValue a, DreamValue b) { DreamObject client = a.GetValueAsDreamObjectOfType(DreamPath.Mob).GetVariable("client").GetValueAsDreamObjectOfType(DreamPath.Client); DreamConnection connection = _dreamManager.GetConnectionFromClient(client); connection.OutputDreamValue(b); return(new DreamValue(0)); }