Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static String getAbstractName(String startName){
- int aposIndex;
- int length = startName.length();
- //just type short names
- if(length <= 5){
- return startName.toLowerCase();
- }
- //handle jewelery
- else if(startName.matches("(Amulet|Ring|Necklace|Bracelet) of .*")){
- return startName.replaceAll("(Amulet|Ring|Necklace|Bracelet) of ","").replaceAll("\\(.*\\)","").toLowerCase();
- }
- //handle staves
- else if(startName.matches(".*[Ss]taff.*")){
- if(startName.matches(".*of.*")){
- int index = startName.indexOf("of");
- return startName.substring(General.randomSD(0,index,index-4,3),General.randomSD(length-4,length,length-1,2)).toLowerCase();
- } else {
- return startName.substring(0,General.randomSD(5,length,General.random(7,10),3)).toLowerCase();
- }
- }
- //handle types/gods
- else if(startName.matches("(Bronze|Iron|Steel|Black|Mithril|Adamant|Rune|Dragon|Ancient|Armadyl|Bandos|Guthix|Saradomin|Zamorak) .*")){
- String[] parts = startName.split(" ");
- int index = startName.indexOf(" ");
- int remainingLength = length - parts[0].length();
- return (parts[0] + startName.substring(index,index + General.randomSD(0,remainingLength-1,2,2))).toLowerCase();
- }
- //handle apostrophe names
- else if((aposIndex = startName.indexOf("'")) > -1 && aposIndex > 2){
- return startName.substring(0,startName.indexOf("'")).toLowerCase();
- }
- //handle herb names
- else if(startName.matches("(Grimy|Clean) .*")){
- return startName.split(" ")[1];
- }
- //handle any names with spaces
- else if(startName.contains(" ")){
- String[] parts = startName.split(" ");
- if(parts.length > 2){
- int index = startName.indexOf(" ");
- int remainingLength = length - parts[0].length();
- return (parts[0] + " " + startName.substring(index+1,index+1 + General.randomSD(0,remainingLength-1,(remainingLength-1)/2,(remainingLength-1)/3))).toLowerCase();
- } else if(parts[1].length() <= 3){
- return parts[0].toLowerCase();
- } else if(parts[0].length() > 8){
- return parts[0].substring(0,General.randomSD(4,parts[0].length() - 1,6,2)).toLowerCase();
- }
- return (parts[0] + " " + parts[1].substring(0,General.randomSD(1,parts[1].length() - 1,2,2))).toLowerCase();
- }
- //handle all other names
- return startName.substring(0,General.randomSD(3,length,3 + length/3,length/3)).toLowerCase();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement