【问题标题】:How do I send a raw IRC message when using Bot::BasicBot使用 Bot::BasicBot 时如何发送原始 IRC 消息
【发布时间】:2015-09-21 15:27:00
【问题描述】:

Bot::BasicBot 提供了一种获取底层 POE::Component::IRC::State 对象句柄的方法 pocoirc()。使用这个对象句柄,似乎应该可以发送这样的原始消息:

sub said {
  my ($self, $message) = @_;
  $self->pocoirc()->yield('raw_events' => 1);
  $self->pocoirc()->yield('irc_raw_out' => 'RAW message');

但是,这会给出错误“如果没有包或对象引用,就无法调用方法“yield””——返回的对象似乎没有导出预期的方法。我是否误解了我要返回的对象类型,或者如何触发原始消息的发送?

【问题讨论】:

  • $self 对象在使用 Data::Printer 检查时是什么样的?
  • 这并不是告诉你返回的对象没有给定的方法,而是告诉你$self->pocoirc() 是 undef。

标签: perl poe


【解决方案1】:

感谢有关 Data::Printer 的提示,事实证明 POE::Kernel 可以作为 self->{kernel} 使用。要将原始命令排入队列,

$self->{kernel}->post( $self->{IRCNAME}, 'quote', 'your raw command');

【讨论】:

    猜你喜欢
    • 2011-05-12
    • 2013-02-27
    • 1970-01-01
    • 2016-08-11
    • 1970-01-01
    • 2021-09-10
    • 2019-09-22
    • 1970-01-01
    • 2011-01-29
    相关资源
    最近更新 更多