예제 #1
0
        public static DynValue flush(ScriptExecutionContext executionContext, CallbackArguments args)
        {
            FileUserDataBase outp = args.AsUserData <FileUserDataBase>(0, "close", true) ?? GetDefaultFile(executionContext, StandardFileType.StdOut);

            outp.flush();
            return(DynValue.True);
        }
예제 #2
0
        private static DynValue HandleDefaultStreamSetter(ScriptExecutionContext executionContext,
                                                          CallbackArguments args, StandardFileType defaultFiles)
        {
            if (args.Count == 0 || args[0].IsNil())
            {
                var file = GetDefaultFile(executionContext, defaultFiles);
                return(UserData.Create(file));
            }

            FileUserDataBase inp;

            if (args[0].Type == DataType.String || args[0].Type == DataType.Number)
            {
                string fileName = args[0].CastToString();
                inp = Open(executionContext, fileName, GetUTF8Encoding(),
                           defaultFiles == StandardFileType.StdIn ? "r" : "w");
            }
            else
            {
                inp = args.AsUserData <FileUserDataBase>(0, defaultFiles == StandardFileType.StdIn ? "input" : "output");
            }

            SetDefaultFile(executionContext, defaultFiles, inp);

            return(UserData.Create(inp));
        }
예제 #3
0
        public static DynValue close(ScriptExecutionContext executionContext, CallbackArguments args)
        {
            var outp = args.AsUserData <FileUserDataBase>(0, "close", true) ??
                       GetDefaultFile(executionContext, StandardFileType.StdOut);

            return(outp.close(executionContext, args));
        }
예제 #4
0
 public static DynValue _embed(ScriptExecutionContext ctx, CallbackArguments args)
 {
     if (args.Count != 0)
     {
         var t = args.AsUserData <Userdatas._DSharpPlus.DiscordEmbedObject>(0, "embed");
         return(UserData.Create(new Userdatas._DSharpPlus.DiscordEmbedObject(t.Embed)));
     }
     else
     {
         return(UserData.Create(new Userdatas._DSharpPlus.DiscordEmbedObject()));
     }
 }
예제 #5
0
		private static DynValue HandleDefaultStreamSetter(ScriptExecutionContext executionContext, CallbackArguments args, StandardFileType defaultFiles)
		{
			if (args.Count == 0 || args[0].IsNil())
			{
				var file = GetDefaultFile(executionContext, defaultFiles);
				return UserData.Create(file);
			}

			FileUserDataBase inp = null;

			if (args[0].Type == DataType.String || args[0].Type == DataType.Number)
			{
				string fileName = args[0].CastToString();
				inp = Open(executionContext, fileName, GetUTF8Encoding(), defaultFiles == StandardFileType.StdIn ? "r" : "w");
			}
			else
			{
				inp = args.AsUserData<FileUserDataBase>(0, defaultFiles == StandardFileType.StdIn ? "input" : "output", false);
			}

			SetDefaultFile(executionContext, defaultFiles, inp);

			return UserData.Create(inp);
		}
예제 #6
0
		public static DynValue flush(ScriptExecutionContext executionContext, CallbackArguments args)
		{
			FileUserDataBase outp = args.AsUserData<FileUserDataBase>(0, "close", true) ?? GetDefaultFile(executionContext, StandardFileType.StdOut);
			outp.flush();
			return DynValue.True;
		}