Есть ли способ переключить событие с помощью команды?

Иногда с помощью персонажей, которые вы указали, возможно простое экранирование. Например, использование обратной косой черты для выхода из скобки не будет работать в левой части строки подстановки в sed, а именно

sed -e 's/foo\(bar/something_else/'

. Я просто использую простое определение класса символов вместо , поэтому вышеприведенное выражение становится

sed -e 's/foo[(]bar/something_else/'

, которое я нахожу для большинства реализаций регекса.

BTW Классы символов являются довольно ванильными элементами регулярного выражения, поэтому они, как правило, работают в большинстве ситуаций, когда вы нужны экранированные символы в регулярных выражениях.

Изменить: после комментария ниже, просто подумал, что я бы упомянул о том, что вам также нужно учитывать разницу между автоматами конечного состояния и автоматами не конечного состояния при просмотре поведение оценки regexp.

Возможно, вам захочется взглянуть на «блестящую книгу с шаром», а также на эффективную Perl ( санированную ссылку Amazon ), в частности главу о регулярных выражениях, чтобы получить почувствуйте тогда разницу в типах оценки двигателя regexp.

Не все в мире PCRE!

В любом случае, регулярные выражения настолько неуклюжи по сравнению с SNOBOL ! Теперь это был интересный курс программирования! Наряду с тем, что на Simula .

Ах, радости изучения в UNSW в конце 70-х! (-:

0
задан Federico Grandi 18 January 2019 в 20:28
поделиться

1 ответ

В соответствии с запросом приведен пример моего комментария:

Один из способов сделать это - сохранить переменную для гильдии в некоторой базе данных, которая имеет значение либо true, либо false. Затем вы бы взяли эту переменную и проверили, включена ли или выключена эта опция в гильдии.

& nbsp;

client.on("guildMemberAdd", (member) => {
  const guild = member.guild;
  let memberTag = member.user.tag;

  // Code here to get the guild from database, this is just a non-working example
  let dbGuild = database.get('Guild', guild.id);

  // Check if the guild has the welcome command disabled
  if (dbGuild.enableWelcomeCmd === false) {
    // Breaks the function, no further message will be send
    return;
  }


  guild.channels.sort(function(chan1,chan2){
      if(chan1.type!==`text`) return 1;
      if(!chan1.permissionsFor(guild.me).has(`SEND_MESSAGES`)) return -1;
      return chan1.position < chan2.position ? -1 : 1;
  }).first().send(memberTag + " just joined <:floshed:533687801741443082>");
});

client.on("message", async message => {
  // Check if the msg has been send by a bot
  if(message.author.bot) return;
  // Check if message has correct prefix
  if(message.content.indexOf(config.prefix) !== 0) return;

  const args = message.content.slice(config.prefix.length).trim().split(/ +/g);
  const command = args.shift().toLowerCase();

  // Code for actually changing the guild variable
  if (command === 'toggleWelcome') {
    // Code here to get the guild from database, this is just a non-working example
    let dbGuild = database.get('Guild', message.guild.id);

    dbGuild.enableWelcomeCmd = !dbGuild.enableWelcomeCmd;

    // Save the new variable for the guild (also a non-working example)
    database.save('Guild', message.guild.id, dbGuild);
  }
});

. Вам нужно будет изучить базы данных и тому подобное. сами по себе, существует большое количество (бесплатных) опций, которые имеют разный синтаксис. Эта часть - кое-что для вас, чтобы понять, но я надеюсь, что это может дать вам общее представление.

0
ответ дан T. Dirks 18 January 2019 в 20:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: