mirror of https://github.com/bvn13/JIrcBot.git
fixed bug: not storing deferred messages according to channel.
parent
b01beb535c
commit
093c5ea38f
|
@ -16,6 +16,10 @@ import java.util.Date;
|
|||
@Table(name = "deferred_messages")
|
||||
public class DeferredMessage extends BaseModel {
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
private String channelName;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
private String sender;
|
||||
|
|
|
@ -11,5 +11,5 @@ import java.util.List;
|
|||
*/
|
||||
@Repository
|
||||
public interface DeferredMessageRepository extends JpaRepository<DeferredMessage, Long> {
|
||||
List<DeferredMessage> getDeferredMessagesByRecipientAndSentOrderByCreatedAt(String recipient, Boolean sent);
|
||||
List<DeferredMessage> getDeferredMessagesByChannelNameAndRecipientAndSentOrderByCreatedAt(String channelName, String recipient, Boolean sent);
|
||||
}
|
||||
|
|
|
@ -17,12 +17,13 @@ public class DeferredMessageService {
|
|||
@Autowired
|
||||
private DeferredMessageRepository deferredMessageRepository;
|
||||
|
||||
public List<DeferredMessage> getDeferredMessagesForUser(String user) {
|
||||
return deferredMessageRepository.getDeferredMessagesByRecipientAndSentOrderByCreatedAt(user, false);
|
||||
public List<DeferredMessage> getDeferredMessagesForUser(String channelName, String user) {
|
||||
return deferredMessageRepository.getDeferredMessagesByChannelNameAndRecipientAndSentOrderByCreatedAt(channelName, user, false);
|
||||
}
|
||||
|
||||
public void saveDeferredMessage(String sender, String recipient, String message) {
|
||||
public void saveDeferredMessage(String channelName, String sender, String recipient, String message) {
|
||||
DeferredMessage msg = new DeferredMessage();
|
||||
msg.setChannelName(channelName);
|
||||
msg.setSender(sender);
|
||||
msg.setRecipient(recipient);
|
||||
msg.setMessage(message);
|
||||
|
|
|
@ -55,16 +55,17 @@ public class DeferredMessagesListener extends ImprovedListenerAdapter {
|
|||
}
|
||||
|
||||
String userName = event.getUser().getNick();
|
||||
String channelname = this.getChannelName(event);
|
||||
if (commands[0].equalsIgnoreCase("me")) {
|
||||
// deferred to myself
|
||||
deferredMessageService.saveDeferredMessage(userName, userName.toLowerCase(), commands[1]);
|
||||
deferredMessageService.saveDeferredMessage(channelname, userName, userName.toLowerCase(), commands[1]);
|
||||
this.sendNotice(event,"Saved message to "+userName);
|
||||
} else {
|
||||
if (commands[0].equalsIgnoreCase(event.getBot().getUserBot().getNick())) {
|
||||
this.sendNotice(event,"Sorry, message cannot be deferred to me.");
|
||||
} else {
|
||||
// deferred to somebody
|
||||
deferredMessageService.saveDeferredMessage(userName, commands[0].toLowerCase(), commands[1]);
|
||||
deferredMessageService.saveDeferredMessage(channelname, userName, commands[0].toLowerCase(), commands[1]);
|
||||
this.sendNotice(event, "Saved message to " + commands[0]);
|
||||
}
|
||||
}
|
||||
|
@ -74,7 +75,7 @@ public class DeferredMessagesListener extends ImprovedListenerAdapter {
|
|||
|
||||
private void sendDeferredMessage(final GenericMessageEvent event) {
|
||||
|
||||
List<DeferredMessage> deferredMessages = deferredMessageService.getDeferredMessagesForUser(event.getUser().getNick().toLowerCase());
|
||||
List<DeferredMessage> deferredMessages = deferredMessageService.getDeferredMessagesForUser(this.getChannelName(event), event.getUser().getNick().toLowerCase());
|
||||
if (deferredMessages != null && deferredMessages.size() > 0) {
|
||||
DeferredMessage msg = deferredMessages.get(0);
|
||||
String more = "" + (deferredMessages.size() > 1 ? " ("+(deferredMessages.size()-1)+" message/-s more)" : "");
|
||||
|
|
Loading…
Reference in New Issue