Arcturus-Community/src/main/java/com/eu/habbo/util/FigureUtil.java

65 lines
1.9 KiB
Java
Raw Normal View History

2018-07-06 15:30:00 +02:00
package com.eu.habbo.util;
import gnu.trove.map.hash.THashMap;
import org.apache.commons.lang3.ArrayUtils;
2018-09-28 21:25:00 +02:00
import java.util.Map;
2018-07-06 15:30:00 +02:00
public class FigureUtil
{
public static THashMap<String, String> getFigureBits(String looks)
{
2018-09-28 21:25:00 +02:00
THashMap<String, String> bits = new THashMap<>();
2018-07-06 15:30:00 +02:00
String[] sets = looks.split("\\.");
for(String set : sets)
{
String[] setBits = set.split("-", 2);
bits.put(setBits[0], setBits.length > 1 ? setBits[1] : "");
}
return bits;
}
public static String mergeFigures(String figure1, String figure2)
{
return mergeFigures(figure1, figure2, null, null);
}
public static String mergeFigures(String figure1, String figure2, String[] limitFigure1)
{
return mergeFigures(figure1, figure2, limitFigure1, null);
}
public static String mergeFigures(String figure1, String figure2, String[] limitFigure1, String[] limitFigure2)
{
THashMap<String, String> figureBits1 = getFigureBits(figure1);
THashMap<String, String> figureBits2 = getFigureBits(figure2);
2019-03-18 02:22:00 +01:00
StringBuilder finalLook = new StringBuilder();
2018-07-06 15:30:00 +02:00
for (Map.Entry<String, String> keys : figureBits1.entrySet())
{
if(limitFigure1 == null || ArrayUtils.contains(limitFigure1, keys.getKey()))
{
2019-03-18 02:22:00 +01:00
finalLook.append(keys.getKey()).append("-").append(keys.getValue()).append(".");
2018-07-06 15:30:00 +02:00
}
}
for (Map.Entry<String, String> keys : figureBits2.entrySet())
{
if(limitFigure2 == null || ArrayUtils.contains(limitFigure2, keys.getKey()))
{
2019-03-18 02:22:00 +01:00
finalLook.append(keys.getKey()).append("-").append(keys.getValue()).append(".");
2018-07-06 15:30:00 +02:00
}
}
2019-03-18 02:22:00 +01:00
if(finalLook.toString().endsWith("."))
2018-07-06 15:30:00 +02:00
{
2019-03-18 02:22:00 +01:00
finalLook = new StringBuilder(finalLook.substring(0, finalLook.length() - 1));
2018-07-06 15:30:00 +02:00
}
2019-03-18 02:22:00 +01:00
return finalLook.toString();
2018-07-06 15:30:00 +02:00
}
}