Merge remote-tracking branch 'runelite/master'

This commit is contained in:
Owain van Brakel
2019-11-09 07:51:02 +01:00
182 changed files with 866 additions and 614 deletions

View File

@@ -30,11 +30,13 @@ import java.util.concurrent.TimeUnit;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import net.runelite.http.api.chat.Duels;
import net.runelite.http.api.chat.LayoutRoom;
import net.runelite.http.api.chat.Task;
import net.runelite.http.service.util.exception.NotFoundException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@@ -208,4 +210,23 @@ public class ChatController
}
return duels;
}
@PostMapping("/layout")
public void submitLayout(@RequestParam String name, @RequestBody LayoutRoom[] rooms)
{
chatService.setLayout(name, rooms);
}
@GetMapping("/layout")
public LayoutRoom[] getLayout(@RequestParam String name)
{
LayoutRoom[] layout = chatService.getLayout(name);
if (layout == null)
{
throw new NotFoundException();
}
return layout;
}
}

View File

@@ -24,9 +24,13 @@
*/
package net.runelite.http.service.chat;
import com.google.common.base.Joiner;
import com.google.common.base.Splitter;
import com.google.common.collect.ImmutableMap;
import java.time.Duration;
import java.util.List;
import java.util.Map;
import net.runelite.http.api.chat.LayoutRoom;
import net.runelite.http.api.chat.Task;
import net.runelite.http.api.chat.Duels;
import net.runelite.http.service.util.redis.RedisPool;
@@ -198,4 +202,31 @@ public class ChatService
jedis.expire(key, (int) EXPIRE.getSeconds());
}
}
public LayoutRoom[] getLayout(String name)
{
String layout;
try (Jedis jedis = jedisPool.getResource())
{
layout = jedis.get("layout." + name);
}
if (layout == null)
{
return null;
}
List<String> roomList = Splitter.on(' ').splitToList(layout);
return roomList.stream()
.map(LayoutRoom::valueOf)
.toArray(LayoutRoom[]::new);
}
public void setLayout(String name, LayoutRoom[] rooms)
{
try (Jedis jedis = jedisPool.getResource())
{
jedis.setex("layout." + name, (int) EXPIRE.getSeconds(), Joiner.on(' ').join(rooms));
}
}
}