0

I was working on a heist command for my bot but wehn i try it i get this error (node:2253) UnhandledPromiseRejectionWarning: TypeError: Function.prototype.apply was called on #<Object>, which is a object and not a function

My code is this and I dont know where it is coming from I wanted to make a heist command for my boy like dank memer.

const Discord = require('discord.js');
const db = require('quick.db')

module.exports.run = async (bot, message, args) => {
let member = message.mentions.members.first()
if (!member) return message.reply(`You you wanna hiest`)

let user = message.author;

let money = await db.fetch(`mon_${user.id}`)
if(money < 2000) return message.reply(`You need atleast 2000 coins to try and rob someone!`)

let money2 = await db.fetch(`b_${member.id}`)
if (money2 < 3000) return message.reply(`This fella does not have atleast 3000 coins in his bank not worth it!`)

message.channel.send(`${user.username} Is Starting a heist on ${member}\nType \`GG JOIN\` To join them!`).then(() => {
 message.channel.awaitMessages({ max: 7, time: 70000, errors: ['time'] })
    .then(message => {
       message = message.first()
       if (message.content.toUpperCase() == 'GG JOIN' || message.content.toUpperCase() == 'JOIN HEIST') {
         message.react("")
         db.fetch(`heistname_${message.guild.id}`)
         db.push(`heistname_${message.guild.id}`, -user.username)
         db.fetch(`heist_${message.guild.id}`)
         db.push(`heist_${message.guild.id}`, -user.id)
         db.fetch(`heistmem_${message.guild.id}`)
         db.add(`heistmem_${message.guild.id}`, 1)
       } else {
         return;
       }
     })
     .catch(collected => {
         message.channel.send('Allirght These Many Users Are joining the hesit.The Result will be given shortly!');
     });
 })
 setTimeout( async function() {
 let memjoined = await db.fetch(`heistmem_${message.guild.id}`)
let userbank = await db.fetch(`b_${member.id}`)
let bankdev = (userbank / memjoined)
let joined = await db.fetch(`heist_${message.guild.id}`)
let join2 = joined.split('-')
let jointot = join2.join('\n')
let joinname = await db.fetch(`heistname_${message.guild.id}`)
let joinnamesp = joinname.split('-')
let joinnametot = joinnamesp.join('\n')
db.add(`mon_${join2[0]}`, bankdev)
db.add(`mon_${join2[1]}`, bankdev)
db.add(`mon_${join2[2]}`, bankdev)
db.add(`mon_${join2[3]}`, bankdev)
db.add(`mon_${join2[4]}`, bankdev)
db.add(`mon_${join2[5]}`, bankdev)
db.add(`mon_${join2[6]}`, bankdev)
message.channel.send(`\`\`\`${joinnametot}Joined the heist and everyone came out with a total of ${bankdev} Money!\`\`\``)
}, 100000);

 setTimeout( async function(){
await db.delete(`heistmem_${message.guild.id}`)
await db.delete(`heistname_${message.guild.id}`)
await db.delete(`heist_${message.guild.id}`)
}, 10000);
}
module.exports.help = {
name: "bankrob",
aliases: ["heist"]
}

MissingTranslationHandler not called

part of my app.module.ts

import { MissingTranslationHandler, MissingTranslationHandlerParams, TranslateLoader, TranslateModule } from '@ngx-translate/core';

export class MyMissingTranslationHandler implements MissingTranslationHandler {

  handle(param: MissingTranslationHandlerParams) {
    console.log('handle', param);
  }
}

registerLocaleData(localeDe, 'de');

export function HttpLoaderFactory(http: HttpClient) {
  return new TranslateHttpLoader(http);
}

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    TranslateModule.forRoot({
      loader: {
        provide: TranslateLoader,
        useFactory: HttpLoaderFactory,
        deps: [HttpClient]
      },
      missingTranslationHandler: {
        provide: MissingTranslationHandler,
        useClass: MyMissingTranslationHandler,
      }
    }),
  ],
  providers: [PreloadStrategy,
    {provide: LOCALE_ID, useValue: getUserLocale()},
    {provide: APP_INITIALIZER, useFactory: initializeApp, deps: [SubscriptionService, AuthService], multi: true}
  ],
  bootstrap: [AppComponent]
})
export class AppModule {
}

handle(param: MissingTranslationHandlerParams) doesn't get called.

Setting the MissingTranslationHandler on a component-level works e.g:

@Component({
  selector: 'app-projects',
  templateUrl: './projects.component.html',
  styleUrls: ['./projects.component.scss'],
})
export class ProjectsComponent implements OnInit, OnDestroy {

  constructor(private translate: TranslateService) {
    this.translateService.missingTranslationHandler = new class extends MissingTranslationHandler {
      handle(params: MissingTranslationHandlerParams): any {
        console.log('handle', params);
      }
    };
  }

How can I get the MissingTranslationHandler app wide working?

4

1 回答 1

0

的第一个参数TextChannel#awaitMessages应该是过滤函数,而不是对象。该过滤器函数将传入的消息作为参数访问,并决定是否让它通过。此函数的一个常见用途是确保消息作者是原始命令的作者:

message.channel.awaitMessages(
  (m) => m.author.id === message.author.id, 
  { /* options */ }
)

如果您不需要任何过滤器,则可以使用() => true.

于 2021-04-28T12:00:59.070 回答