+ public function listGuessingWinners($winners) {
+ $names = [];
+ $distance = 0;
+ foreach ($winners as $winner) {
+ if ($winner->score > 0) {
+ $names[] = $winner->uname;
+ $distance = abs(intval($winner->guess) - intval($winner->solution));
+ }
+ }
+ $msg = '';
+ if (empty($names)) {
+ $msg = $this->getGuessingSetting('no_winners_message');
+ } else {
+ $msg = $this->getGuessingSetting($distance ? 'close_winners_message' : 'winners_message', $this->getGuessingSetting('winners_message'));
+ $msg = str_replace(['{distance}', '{names}'], [$distance, $this->listAnd($names)], $msg);
+ }
+ return $msg;
+ }
+
+ public function listAnd($entries) {
+ $lang = empty($this->languages) ? 'en' : $this->languages[0];
+ if ($lang == 'de') {
+ return Arr::join($entries, ', ', ' und ');
+ }
+ return Arr::join($entries, ', ', ' and ');
+ }
+