http-api: add world region to World
Add a WorldRegion to convert from location id to region Co-authored-by: melkypie <melkypie@users.noreply.github.com>
This commit is contained in:
@@ -38,4 +38,9 @@ public class World
|
||||
private String activity;
|
||||
private int location;
|
||||
private int players;
|
||||
|
||||
public WorldRegion getRegion()
|
||||
{
|
||||
return WorldRegion.valueOf(location);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,74 @@
|
||||
/*
|
||||
* Copyright (c) 2020, melky <https://github.com/melkypie>
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice, this
|
||||
* list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
* this list of conditions and the following disclaimer in the documentation
|
||||
* and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
package net.runelite.http.api.worlds;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* Holds the data for each world's region (location)
|
||||
*/
|
||||
@AllArgsConstructor
|
||||
@Getter
|
||||
public enum WorldRegion
|
||||
{
|
||||
UNITED_STATES_OF_AMERICA("US", "USA"),
|
||||
UNITED_KINGDOM("GB", "GBR"),
|
||||
AUSTRALIA("AU", "AUS"),
|
||||
GERMANY("DE", "DEU");
|
||||
|
||||
/**
|
||||
* ISO-3166-1 alpha-2 country code
|
||||
*/
|
||||
private final String alpha2;
|
||||
/**
|
||||
* ISO-3166-1 alpha-3 country code
|
||||
*/
|
||||
private final String alpha3;
|
||||
|
||||
/**
|
||||
* Gets the region using the location id
|
||||
* {@link WorldRegion} value.
|
||||
*
|
||||
* @param locationId the location id of world
|
||||
* @return WorldRegion the region of the world
|
||||
*/
|
||||
public static WorldRegion valueOf(int locationId)
|
||||
{
|
||||
switch (locationId)
|
||||
{
|
||||
case 0:
|
||||
return UNITED_STATES_OF_AMERICA;
|
||||
case 1:
|
||||
return UNITED_KINGDOM;
|
||||
case 3:
|
||||
return AUSTRALIA;
|
||||
case 7:
|
||||
return GERMANY;
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -77,6 +77,11 @@ public class WorldsServiceTest
|
||||
World world = worldResult.findWorld(385);
|
||||
assertNotNull(world);
|
||||
assertTrue(world.getTypes().contains(WorldType.SKILL_TOTAL));
|
||||
|
||||
for (World testWorld : worldResult.getWorlds())
|
||||
{
|
||||
assertNotNull("Missing a region in WorldRegion enum", testWorld.getRegion());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -43,6 +43,7 @@ import lombok.Getter;
|
||||
import net.runelite.client.ui.FontManager;
|
||||
import net.runelite.client.util.ImageUtil;
|
||||
import net.runelite.http.api.worlds.World;
|
||||
import net.runelite.http.api.worlds.WorldRegion;
|
||||
import net.runelite.http.api.worlds.WorldType;
|
||||
|
||||
class WorldTableRow extends JPanel
|
||||
@@ -57,7 +58,6 @@ class WorldTableRow extends JPanel
|
||||
private static final int PING_COLUMN_WIDTH = 35;
|
||||
|
||||
private static final Color CURRENT_WORLD = new Color(66, 227, 17);
|
||||
private static final Color UNAVAILABLE_WORLD = Color.GRAY.darker().darker();
|
||||
private static final Color DANGEROUS_WORLD = new Color(251, 62, 62);
|
||||
private static final Color TOURNAMENT_WORLD = new Color(79, 145, 255);
|
||||
private static final Color MEMBERS_WORLD = new Color(210, 193, 53);
|
||||
@@ -326,26 +326,36 @@ class WorldTableRow extends JPanel
|
||||
|
||||
worldField = new JLabel(world.getId() + "");
|
||||
|
||||
JLabel flag = new JLabel(getFlag(world.getLocation()));
|
||||
|
||||
column.add(flag, BorderLayout.WEST);
|
||||
ImageIcon flagIcon = getFlag(world.getRegion());
|
||||
if (flagIcon != null)
|
||||
{
|
||||
JLabel flag = new JLabel(flagIcon);
|
||||
column.add(flag, BorderLayout.WEST);
|
||||
}
|
||||
column.add(worldField, BorderLayout.CENTER);
|
||||
|
||||
return column;
|
||||
}
|
||||
|
||||
private ImageIcon getFlag(int locationId)
|
||||
private static ImageIcon getFlag(WorldRegion region)
|
||||
{
|
||||
switch (locationId)
|
||||
if (region == null)
|
||||
{
|
||||
case 0:
|
||||
return null;
|
||||
}
|
||||
|
||||
switch (region)
|
||||
{
|
||||
case UNITED_STATES_OF_AMERICA:
|
||||
return FLAG_US;
|
||||
case 1:
|
||||
case UNITED_KINGDOM:
|
||||
return FLAG_UK;
|
||||
case 3:
|
||||
case AUSTRALIA:
|
||||
return FLAG_AUS;
|
||||
default:
|
||||
case GERMANY:
|
||||
return FLAG_GER;
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user