Merge remote-tracking branch 'origin/develop' into develop
This commit is contained in:
@@ -14,5 +14,6 @@
|
||||
<classpathentry kind="lib" path="lib/twitter4j-core-4.0.7-javadoc.jar"/>
|
||||
<classpathentry kind="lib" path="lib/twitter4j-core-4.0.7.jar"/>
|
||||
<classpathentry kind="lib" path="lib/luaj-jse-3.0.1.jar"/>
|
||||
<classpathentry kind="lib" path="F:/Shared/Coding/Java/workspace/ProKitty/lib/fuzzywuzzy-1.2.0.jar"/>
|
||||
<classpathentry kind="output" path="bin"/>
|
||||
</classpath>
|
||||
|
||||
@@ -9,6 +9,9 @@ buildhelp=1
|
||||
c++, g++, cplus, cpp=1
|
||||
catch=1
|
||||
charactercreate=1
|
||||
charactereditbio=1
|
||||
charactereditname=1
|
||||
characterediturl=1
|
||||
choose=1
|
||||
color, colour=1
|
||||
crouton=1
|
||||
@@ -43,6 +46,7 @@ roll=1
|
||||
rpend=1
|
||||
rpg=1
|
||||
rpstart=1
|
||||
searchcharacter=1
|
||||
showpoll=1
|
||||
shutdown=1
|
||||
stats=1
|
||||
|
||||
Binary file not shown.
@@ -7,6 +7,7 @@ benchmark, bench=
|
||||
rating=
|
||||
poll=
|
||||
rafflespin=
|
||||
charactereditURL=
|
||||
bet=
|
||||
guildrolelist=
|
||||
stats=
|
||||
@@ -31,6 +32,7 @@ tony, stark, dontfeelgood, dontfeelsogood=
|
||||
role=
|
||||
raffleend=
|
||||
ping=
|
||||
charactereditbio=
|
||||
roll=
|
||||
blur=
|
||||
choose=
|
||||
@@ -38,6 +40,7 @@ rpstart=
|
||||
guildrolenotallowed=
|
||||
perish, thenperish=
|
||||
teey=
|
||||
searchcharacter=
|
||||
dbstats=
|
||||
rafflestart=
|
||||
beans=
|
||||
@@ -50,6 +53,7 @@ rpg=
|
||||
tweet=
|
||||
charactercreate=
|
||||
help=
|
||||
charactereditname=
|
||||
fetch=
|
||||
crouton=
|
||||
invite=
|
||||
|
||||
+32
-4
@@ -89,6 +89,13 @@ RaffleEndSuccess=
|
||||
RaffleEndInfo=
|
||||
RaffleEndFailure=I don't think there's one going!
|
||||
|
||||
[CommandCharacterSearch]
|
||||
CharacterSearchNoCharacterFound=Couldn't find a character with that name or ID!
|
||||
CharacterSearchMultipleCharacterHeader=I found a couple characters with that name, use `charactersearch UniqueID` with their Unique ID to find them!
|
||||
CharacterSearchMultipleCharacter=%s is owned by %s. Unique ID is `%s`
|
||||
CharacterSearchOneCharacter=I found one character with that name! \n Owner: %s | Name: %s | Bio: %s | Ref: <%s> | Unique ID: `%s`
|
||||
CharacterSearchInfo=Find a character with their name or Unique ID! `charactersearch name` or `charactersearch UniqueID`
|
||||
|
||||
[CommandColor]
|
||||
ColorInfo=
|
||||
|
||||
@@ -126,6 +133,13 @@ PollShowChoices=And the choices are:\n
|
||||
[CommandHelpBuilder]
|
||||
HelpBuilderInfo=Emit help for all commands as formatted HTML
|
||||
|
||||
[CommandCharacterEditURL]
|
||||
CharacterEditURLInfo=
|
||||
CharacterEditURLNotValid=
|
||||
CharacterEditURLSuccess=
|
||||
CharacterEditURLNotAuth=
|
||||
CharacterEditURLIDNotValid=
|
||||
|
||||
[CommandRPG]
|
||||
RPGInfo=Admin+ command only right now - experimental text RPG! Format is !rpg <rpg command>
|
||||
RPGInvalid=Invalid RPG Command!
|
||||
@@ -178,6 +192,13 @@ RaffleStartInfo=
|
||||
HelpInfo=Lets you look up specific commands, or get a link to a list of all commands.
|
||||
HelpDisplay=You can get help with a specific command by typing `!help command`!\nGeneral Commands: `boop, roll, choose, help, info, vote, results, showpoll, wolfram, cplus, java, beans, role, bet, yeet`
|
||||
|
||||
[CommandCharacterEditBio]
|
||||
CharacterEditBioSuccess=
|
||||
CharacterEditBioIDNotValid=
|
||||
CharacterEditBioNotAuth=
|
||||
CharacterEditBioInfo=
|
||||
CharacterEditBioNotValid=
|
||||
|
||||
[CommandTweet]
|
||||
TweetInfo=Kitty will tweet to her personal twitter account
|
||||
TweetError=Tweet command failed!
|
||||
@@ -188,6 +209,13 @@ GuildRoleAddFailure=Failed to add %s to %s
|
||||
GuildRoleAddNotAllowed=You are not allowed to add %s!
|
||||
GuildRoleAddInfo=Add a role to yourself!
|
||||
|
||||
[CommandCharacterEditName]
|
||||
CharacterEditNameInfo=
|
||||
CharacterEditNameNotValid=
|
||||
CharacterEditNameIDNotValid=
|
||||
CharacterEditNameSuccess=
|
||||
CharacterEditNameNotAuth=
|
||||
|
||||
[CommandColiru]
|
||||
ColiruError=Please provide some c++ code to attempt to compile!
|
||||
ColiruInfo=Will try to compile any c++ code you put in! Supports up to C++14 standard, uses g++.
|
||||
@@ -202,10 +230,10 @@ YeetInfo=Yeet yourself or yeet a friend with @!
|
||||
CroutonInfo=Crouton
|
||||
|
||||
[CommandCharacterCreate]
|
||||
CharacterCreateDuplicate=
|
||||
CharacterCreateInfo=
|
||||
CharacterCreateSuccess=
|
||||
CharacterCreateNullInfo=
|
||||
CharacterCreateDuplicate=You can't create a character with the same name!
|
||||
CharacterCreateInfo=Create a character for kitty to hold onto for you! `createcharacter name, shortbio, refURL`
|
||||
CharacterCreateSuccess=You successfully created a character!
|
||||
CharacterCreateNullInfo=There's not enough info!
|
||||
|
||||
[CommandTeey]
|
||||
TeeyInfo=Teey yourself back into existance, or teey a friend with @!
|
||||
|
||||
@@ -13,7 +13,7 @@ import dataStructures.UserInput;
|
||||
|
||||
public class CommandCharacterCreate extends Command
|
||||
{
|
||||
public CommandCharacterCreate(KittyRole level, KittyRating rating) { super(level, rating); }
|
||||
public CommandCharacterCreate(KittyRole level, KittyRating rating) { super(level, rating); }
|
||||
|
||||
@Override
|
||||
public String HelpText() { return LocStrings.Stub("CharacterCreateInfo"); }
|
||||
@@ -33,6 +33,5 @@ public CommandCharacterCreate(KittyRole level, KittyRating rating) { super(level
|
||||
return;
|
||||
}
|
||||
res.Call(LocStrings.Stub("CharacterCreateDuplicate"));
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
package commands;
|
||||
|
||||
import core.CharacterManager;
|
||||
import core.Command;
|
||||
import core.LocStrings;
|
||||
import dataStructures.*;
|
||||
|
||||
public class CommandCharacterEditBio extends Command
|
||||
{
|
||||
public CommandCharacterEditBio(KittyRole level, KittyRating rating) { super(level, rating); }
|
||||
|
||||
@Override
|
||||
public String HelpText() { return LocStrings.Stub("CharacterEditBioInfo"); }
|
||||
|
||||
@Override
|
||||
public void OnRun(KittyGuild guild, KittyChannel channel, KittyUser user, UserInput input, Response res)
|
||||
{
|
||||
try
|
||||
{
|
||||
Long.parseLong(input.args.split(" ")[0]);
|
||||
}
|
||||
catch(Exception e)
|
||||
{
|
||||
res.Call(LocStrings.Stub("CharacterEditBioNotValid"));
|
||||
return;
|
||||
}
|
||||
KittyCharacter character = CharacterManager.instance.searchCharacter(input.args.split(" ")[0]).get(0);
|
||||
if(character.getOwner().equals(user))
|
||||
{
|
||||
CharacterManager.instance.editBio(character, input.args.substring(input.args.indexOf(' ')));
|
||||
res.Call(LocStrings.Stub("CharacterEditBioSuccess"));
|
||||
}
|
||||
else
|
||||
{
|
||||
res.Call(LocStrings.Stub("CharacterEditBioNotAuth"));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
package commands;
|
||||
|
||||
import core.CharacterManager;
|
||||
import core.Command;
|
||||
import core.LocStrings;
|
||||
import dataStructures.*;
|
||||
|
||||
public class CommandCharacterEditName extends Command
|
||||
{
|
||||
public CommandCharacterEditName(KittyRole level, KittyRating rating) { super(level, rating); }
|
||||
|
||||
@Override
|
||||
public String HelpText() { return LocStrings.Stub("CharacterEditNameInfo"); }
|
||||
|
||||
@Override
|
||||
public void OnRun(KittyGuild guild, KittyChannel channel, KittyUser user, UserInput input, Response res)
|
||||
{
|
||||
try
|
||||
{
|
||||
Long.parseLong(input.args.split(" ")[0]);
|
||||
}
|
||||
catch(Exception e)
|
||||
{
|
||||
res.Call(LocStrings.Stub("CharacterEditNameNotValid"));
|
||||
return;
|
||||
}
|
||||
KittyCharacter character = CharacterManager.instance.searchCharacter(input.args.split(" ")[0]).get(0);
|
||||
if(character.getOwner().equals(user))
|
||||
{
|
||||
CharacterManager.instance.editName(character, input.args.substring(input.args.indexOf(' ')));
|
||||
res.Call(LocStrings.Stub("CharacterEditNameSuccess"));
|
||||
}
|
||||
else
|
||||
{
|
||||
res.Call(LocStrings.Stub("CharacterEditNameNotAuth"));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
package commands;
|
||||
|
||||
import core.CharacterManager;
|
||||
import core.Command;
|
||||
import core.LocStrings;
|
||||
import dataStructures.*;
|
||||
|
||||
public class CommandCharacterEditURL extends Command
|
||||
{
|
||||
public CommandCharacterEditURL(KittyRole level, KittyRating rating) { super(level, rating); }
|
||||
|
||||
@Override
|
||||
public String HelpText() { return LocStrings.Stub("CharacterEditURLInfo"); }
|
||||
|
||||
@Override
|
||||
public void OnRun(KittyGuild guild, KittyChannel channel, KittyUser user, UserInput input, Response res)
|
||||
{
|
||||
try
|
||||
{
|
||||
Long.parseLong(input.args.split(" ")[0]);
|
||||
}
|
||||
catch(Exception e)
|
||||
{
|
||||
res.Call(LocStrings.Stub("CharacterEditURLNotValid"));
|
||||
return;
|
||||
}
|
||||
KittyCharacter character = CharacterManager.instance.searchCharacter(input.args.split(" ")[0]).get(0);
|
||||
if(character.getOwner().equals(user))
|
||||
{
|
||||
CharacterManager.instance.editRefImage(character, input.args.substring(input.args.indexOf(' ')));
|
||||
res.Call(LocStrings.Stub("CharacterEditURLSuccess"));
|
||||
}
|
||||
else
|
||||
{
|
||||
res.Call(LocStrings.Stub("CharacterEditURLNotAuth"));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
package commands;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import core.CharacterManager;
|
||||
import core.Command;
|
||||
import core.LocStrings;
|
||||
import dataStructures.*;
|
||||
|
||||
public class CommandCharacterSearch extends Command
|
||||
{
|
||||
public CommandCharacterSearch(KittyRole level, KittyRating rating) { super(level, rating); }
|
||||
|
||||
@Override
|
||||
public String HelpText() { return LocStrings.Stub("CharacterSearchInfo"); }
|
||||
|
||||
@Override
|
||||
public void OnRun(KittyGuild guild, KittyChannel channel, KittyUser user, UserInput input, Response res)
|
||||
{
|
||||
ArrayList <KittyCharacter> characters = CharacterManager.instance.searchCharacter(input.args);
|
||||
if(characters.size() < 1)
|
||||
{
|
||||
res.Call(LocStrings.Stub("CharacterSearchNoCharacterFound"));
|
||||
return;
|
||||
}
|
||||
if(characters.size() > 1)
|
||||
{
|
||||
res.Call(LocStrings.Stub("CharacterSearchMultipleCharacterHeader"));
|
||||
for(KittyCharacter character:characters)
|
||||
{
|
||||
res.Call(String.format(LocStrings.Stub("CharacterSearchMultipleCharacter"), character.getName(), character.getOwner().name, character.getUID()));
|
||||
}
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
res.Call(String.format(LocStrings.Stub("CharacterSearchOneCharacter"), characters.get(0).getOwner().name, characters.get(0).getName(), characters.get(0).getBio(), characters.get(0).getRefImage(), characters.get(0).getUID()));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,15 +1,19 @@
|
||||
package core;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Vector;
|
||||
|
||||
import dataStructures.KittyCharacter;
|
||||
import dataStructures.KittyTrackedLong;
|
||||
import dataStructures.KittyUser;
|
||||
import me.xdrop.fuzzywuzzy.FuzzySearch;
|
||||
import utils.GlobalLog;
|
||||
import utils.LogFilter;
|
||||
|
||||
public class CharacterManager
|
||||
{
|
||||
public static CharacterManager instance;
|
||||
KittyTrackedLong uniqueID = new KittyTrackedLong("CharacterIDCounter", "");
|
||||
|
||||
private Vector <KittyCharacter> characters = new Vector<KittyCharacter>();
|
||||
public CharacterManager()
|
||||
@@ -25,6 +29,33 @@ public class CharacterManager
|
||||
}
|
||||
}
|
||||
|
||||
public ArrayList<KittyCharacter> searchCharacter(String query)
|
||||
{
|
||||
ArrayList<KittyCharacter> chars = new ArrayList<KittyCharacter>();
|
||||
try
|
||||
{
|
||||
long UID = Long.parseLong(query);
|
||||
for(KittyCharacter character:characters)
|
||||
{
|
||||
if(character.getUID() == UID)
|
||||
{
|
||||
chars.add(character);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}catch(Exception e)
|
||||
{
|
||||
for(KittyCharacter character:characters)
|
||||
{
|
||||
if(FuzzySearch.ratio(query.toLowerCase(), character.getName().toLowerCase()) > 60)
|
||||
{
|
||||
chars.add(character);
|
||||
}
|
||||
}
|
||||
}
|
||||
return chars;
|
||||
}
|
||||
|
||||
public boolean addCharacter(KittyUser user, String name, String bio, String refImage)
|
||||
{
|
||||
for(KittyCharacter character:characters)
|
||||
@@ -35,45 +66,29 @@ public class CharacterManager
|
||||
}
|
||||
}
|
||||
|
||||
characters.add(new KittyCharacter(user, name, bio, refImage));
|
||||
characters.add(new KittyCharacter(user, name, bio, refImage, uniqueID.Get()));
|
||||
uniqueID.Add(1);
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean removeCharacter(KittyUser user, String name)
|
||||
{
|
||||
for(KittyCharacter character:characters)
|
||||
{
|
||||
if(character.getName().equals(name) && character.getOwner().discordID.equals(user.discordID))
|
||||
public void removeCharacter(KittyCharacter character, String name)
|
||||
{
|
||||
characters.remove(character);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean editRefImage(KittyUser user, String name, String refImage)
|
||||
public void editRefImage(KittyCharacter character, String refImage)
|
||||
{
|
||||
for(KittyCharacter character:characters)
|
||||
{
|
||||
if(character.getName().equals(name) && character.getOwner().discordID.equals(user.discordID))
|
||||
{
|
||||
return character.editRefImage(user, refImage);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
character.editRefImage(refImage);
|
||||
}
|
||||
|
||||
public boolean editBio(KittyUser user, String name, String bio)
|
||||
public void editBio(KittyCharacter character, String bio)
|
||||
{
|
||||
for(KittyCharacter character:characters)
|
||||
{
|
||||
if(character.getName().equals(name) && character.getOwner().discordID.equals(user.discordID))
|
||||
{
|
||||
return character.editBio(user, bio);
|
||||
character.editBio(bio);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
|
||||
public void editName(KittyCharacter character, String name)
|
||||
{
|
||||
character.editName(name);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -424,6 +424,10 @@ public class ObjectBuilderFactory
|
||||
manager.Register(LocCommands.Stub("benchmark, bench"), new CommandBenchmark(KittyRole.General, KittyRating.Safe));
|
||||
manager.Register(LocCommands.Stub("rafflejoin"), new CommandRaffleJoin(KittyRole.General, KittyRating.Safe));
|
||||
manager.Register(LocCommands.Stub("charactercreate"), new CommandCharacterCreate(KittyRole.General, KittyRating.Safe));
|
||||
manager.Register(LocCommands.Stub("searchcharacter"), new CommandCharacterSearch(KittyRole.General, KittyRating.Safe));
|
||||
manager.Register(LocCommands.Stub("charactereditbio"), new CommandCharacterEditBio(KittyRole.General, KittyRating.Safe));
|
||||
manager.Register(LocCommands.Stub("charactereditname"), new CommandCharacterEditName(KittyRole.General, KittyRating.Safe));
|
||||
manager.Register(LocCommands.Stub("charactereditURL"), new CommandCharacterEditURL(KittyRole.General, KittyRating.Safe));
|
||||
manager.Register(LocCommands.Stub("leaderboard"), new CommandLeaderboard(KittyRole.General, KittyRating.Safe));
|
||||
manager.Register(LocCommands.Stub("color, colour"), new CommandColor(KittyRole.General, KittyRating.Safe));
|
||||
|
||||
|
||||
@@ -6,43 +6,30 @@ public class KittyCharacter
|
||||
private String name;
|
||||
private String bio;
|
||||
private String refImage;
|
||||
private long uniqueID;
|
||||
|
||||
public KittyCharacter(KittyUser owner, String name, String bio, String refImage)
|
||||
public KittyCharacter(KittyUser owner, String name, String bio, String refImage, long uniqueID)
|
||||
{
|
||||
this.owner = owner;
|
||||
this.name = name;
|
||||
this.bio = bio;
|
||||
this.refImage = refImage;
|
||||
this.uniqueID = uniqueID;
|
||||
}
|
||||
|
||||
|
||||
private boolean allowedToEdit(KittyUser editor)
|
||||
{
|
||||
if(editor.identifier.equals(owner.identifier))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean editBio(KittyUser editor, String bio)
|
||||
{
|
||||
if(allowedToEdit(editor))
|
||||
public void editBio(String bio)
|
||||
{
|
||||
this.bio = bio;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean editRefImage(KittyUser editor, String refImage)
|
||||
{
|
||||
if(allowedToEdit(editor))
|
||||
public void editRefImage(String refImage)
|
||||
{
|
||||
this.refImage = refImage;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
||||
public void editName(String name)
|
||||
{
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public KittyUser getOwner()
|
||||
@@ -65,6 +52,11 @@ public class KittyCharacter
|
||||
return refImage;
|
||||
}
|
||||
|
||||
public long getUID()
|
||||
{
|
||||
return uniqueID;
|
||||
}
|
||||
|
||||
public String toString()
|
||||
{
|
||||
return name + " " + bio + " " + refImage;
|
||||
|
||||
Reference in New Issue
Block a user