Merge remote-tracking branch 'runelite/master'

This commit is contained in:
Owain van Brakel
2021-07-21 19:16:23 +02:00
41 changed files with 1877 additions and 78 deletions

View File

@@ -25,10 +25,13 @@
package net.runelite.http.api.chat;
import com.google.gson.JsonParseException;
import com.google.gson.reflect.TypeToken;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets;
import java.util.Collection;
import java.util.Set;
import lombok.AllArgsConstructor;
import net.runelite.http.api.RuneLiteAPI;
import okhttp3.HttpUrl;
@@ -362,4 +365,54 @@ public class ChatClient
throw new IOException(ex);
}
}
public boolean submitPetList(String username, Collection<Integer> petList) throws IOException
{
HttpUrl url = RuneLiteAPI.getApiBase().newBuilder()
.addPathSegment("chat")
.addPathSegment("pets")
.addQueryParameter("name", username)
.build();
Request request = new Request.Builder()
.post(RequestBody.create(RuneLiteAPI.JSON, RuneLiteAPI.GSON.toJson(petList)))
.url(url)
.build();
try (Response response = client.newCall(request).execute())
{
return response.isSuccessful();
}
}
public Set<Integer> getPetList(String username) throws IOException
{
HttpUrl url = RuneLiteAPI.getApiBase().newBuilder()
.addPathSegment("chat")
.addPathSegment("pets")
.addQueryParameter("name", username)
.build();
Request request = new Request.Builder()
.url(url)
.build();
try (Response response = client.newCall(request).execute())
{
if (!response.isSuccessful())
{
throw new IOException("Unable to look up pet list!");
}
InputStream in = response.body().byteStream();
// CHECKSTYLE:OFF
return RuneLiteAPI.GSON.fromJson(new InputStreamReader(in, StandardCharsets.UTF_8),
new TypeToken<Set<Integer>>(){}.getType());
// CHECKSTYLE:ON
}
catch (JsonParseException ex)
{
throw new IOException(ex);
}
}
}