我正在制作 Discord 机器人,它以特定消息触发的间隔发送消息,但它不起作用?

时间:2021-01-21 09:54:20

标签: javascript discord.js

我正在制作一个机器人,它会在用户在特定频道中发送消息 [$here] 时触发的间隔发送消息,它会自动获取频道 ID 并仅在该频道中发送消息。

但是发生的事情是它发送了一次消息,之后,我收到此错误:

public uint DACL_SECURITY_INFORMATION = 0x00000004;
public uint UNPROTECTED_DACL_SECURITY_INFORMATION = 0x20000000;
public uint ACL_REVISION = 0x2;

[StructLayout(LayoutKind.Sequential)]
public struct ACL
{
    public byte AclRevision;
    public byte Sbz1;
    public ushort AclSize;
    public ushort AceCount;
    public ushort Sbz2;
}
public enum SE_OBJECT_TYPE
{
    SE_UNKNOWN_OBJECT_TYPE = 0,
    SE_FILE_OBJECT,
    SE_SERVICE,
    SE_PRINTER,
    SE_REGISTRY_KEY,
    SE_LMSHARE,
    SE_KERNEL_OBJECT,
    SE_WINDOW_OBJECT,
    SE_DS_OBJECT,
    SE_DS_OBJECT_ALL,
    SE_PROVIDER_DEFINED_OBJECT,
    SE_WMIGUID_OBJECT,
    SE_REGISTRY_WOW64_32KEY,
    SE_REGISTRY_WOW64_64KEY,
}

[DllImport("api-ms-win-core-file-fromapp-l1-1-0.dll", CharSet = CharSet.Unicode, SetLastError = true)]
internal static extern bool MoveFileFromAppW(
    string lpExistingFileName,
    string lpNewFileName);

[DllImport("advapi32.DLL", CharSet = CharSet.Unicode, SetLastError = true)]
internal static extern uint SetNamedSecurityInfo(
    string lpFileName,
    SE_OBJECT_TYPE ObjectType,
    uint SecurityInfo,
    IntPtr psidOwner,
    IntPtr psidGroup,
    ref ACL pDacl,
    IntPtr pSacl);

[DllImport("advapi32.dll", SetLastError = true)]
internal static extern bool InitializeAcl(ref ACL pAcl, int nAclLength, uint dwAclRevision);

[DllImport("api-ms-win-core-file-fromapp-l1-1-0.dll", CharSet = CharSet.Auto,
CallingConvention = CallingConvention.StdCall,
SetLastError = true)]
internal static extern bool MoveFileFromApp(
string lpExistingFileName,
string lpNewFileName
);

public void SetFilePermission(string FileName)
{//Use the method to let the file inherit the security attributes from parent object
    bool ret = false;
    ACL pDacl = new ACL();
    ret = InitializeAcl(ref pDacl, Marshal.SizeOf<ACL>(), ACL_REVISION);
    uint SecurityInfo = DACL_SECURITY_INFORMATION | UNPROTECTED_DACL_SECURITY_INFORMATION;
    uint err = SetNamedSecurityInfo(FileName, SE_OBJECT_TYPE.SE_FILE_OBJECT, SecurityInfo, IntPtr.Zero, IntPtr.Zero, ref pDacl, IntPtr.Zero);

}

这是我的代码:

bumpChannel.send('!d bump');
                    ^
TypeError: Cannot read property 'send' of undefined

1 个答案:

答案 0 :(得分:1)

setInterval(interval, 10000); 不带任何参数调用 interval() 函数,因此 bumpChannel 中的 interval()undefined

另外,setInterval(interval, bumpChannel, 10000),毫秒间隔应该是第二个参数,而不是第三个。

相关问题