diff options
Diffstat (limited to 'HsBot')
| -rw-r--r-- | HsBot/Base/State.hs | 5 | ||||
| -rw-r--r-- | HsBot/Callbacks/MessageCounter.hs | 7 |
2 files changed, 8 insertions, 4 deletions
diff --git a/HsBot/Base/State.hs b/HsBot/Base/State.hs index 10395bb..9c38e42 100644 --- a/HsBot/Base/State.hs +++ b/HsBot/Base/State.hs @@ -33,6 +33,11 @@ stateNumUsers state = length $ users state stateSortedUsers :: State -> [User] stateSortedUsers state = sort $ users state +stateUpdateUser :: State -> String -> (User -> User) -> State +stateUpdateUser state name update = + let updatedUsers = usersUpdate name (users state) update + in state { users = updatedUsers } + stateLoad :: String -> IO State stateLoad databaseFile = do file <- readFile databaseFile diff --git a/HsBot/Callbacks/MessageCounter.hs b/HsBot/Callbacks/MessageCounter.hs index 2b5482e..1f12e62 100644 --- a/HsBot/Callbacks/MessageCounter.hs +++ b/HsBot/Callbacks/MessageCounter.hs @@ -5,9 +5,8 @@ import HsBot.Base.State import HsBot.IRC.User +update user = user { userMessages = 1 + userMessages user } + messageCounter :: String -> SendMessage -> Env -> IO Env messageCounter str sendMessage (Env state conf) = do - return (Env state { users = users' } conf) - where - update user = user { userMessages = 1 + userMessages user } - users' = usersUpdate (currentSender state) (users state) update + return (Env (stateUpdateUser state (currentSender state) update) conf) |
