Skip to content

Commit

Permalink
2.5.1 Personality Update.
Browse files Browse the repository at this point in the history
+ SetGender command
+ setQuote command
+ userInfo command
  • Loading branch information
Vaerys-Dawn committed Feb 27, 2017
1 parent 27cc381 commit d3aa5ba
Show file tree
Hide file tree
Showing 16 changed files with 862 additions and 306 deletions.
698 changes: 428 additions & 270 deletions .idea/workspace.xml

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dependency-reduced-pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>com.github.vaerys</groupId>
<artifactId>DiscordSAIL</artifactId>
<version>2.5.0</version>
<version>2.5.1</version>
<build>
<resources>
<resource>
Expand Down
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

<groupId>com.github.vaerys</groupId>
<artifactId>DiscordSAIL</artifactId>
<version>2.5.0</version>
<version>2.5.1</version>

<build>
<resources>
Expand Down
8 changes: 4 additions & 4 deletions src/main/java/Commands/CommandInit.java
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,7 @@
import Commands.Creator.Sudo;
import Commands.Creator.UpdateAvatar;
import Commands.DMCommands.*;
import Commands.General.GetAvatar;
import Commands.General.Hello;
import Commands.General.RemindMe;
import Commands.General.Test;
import Commands.General.*;
import Commands.Help.GetGuildInfo;
import Commands.Help.*;
import Commands.RoleSelect.CosmeticRoles;
Expand Down Expand Up @@ -56,7 +53,10 @@ public static ArrayList<Command> get() {
commands.add(new GetAvatar());
commands.add(new Hello());
commands.add(new RemindMe());
commands.add(new SetGender());
commands.add(new SetQuote());
commands.add(new Test());
commands.add(new UserInfo());
//Help commands
commands.add(new GetGuildInfo());
commands.add(new Help());
Expand Down
106 changes: 106 additions & 0 deletions src/main/java/Commands/General/SetGender.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
package Commands.General;

import Commands.Command;
import Commands.CommandObject;
import Main.Utility;
import Objects.SplitFirstObject;
import Objects.UserTypeObject;
import sx.blah.discord.handle.obj.IUser;
import sx.blah.discord.handle.obj.Permissions;

/**
* Created by Vaerys on 27/02/2017.
*/
public class SetGender implements Command {
@Override
public String execute(String args, CommandObject command) {
IUser user = command.author;
SplitFirstObject userID = new SplitFirstObject(args);
boolean adminEdit = false;
if (Utility.testForPerms(dualPerms(), command.author, command.guild) || Utility.canBypass(command.author, command.guild)) {
user = command.client.getUserByID(userID.getFirstWord());
if (user != null) {
adminEdit = true;
}
}

for (UserTypeObject u : command.guildUsers.getUsers()) {
if (args.length() > 20) {
return "> Your Gender's Length is too long...\n(Must be under 20 chars)";
}
if (adminEdit) {
if (u.getID().equals(user.getID())) {
u.setGender(userID.getRest());
return "> User's Gender Edited";
}
} else {
if (u.getID().equals(command.authorID)) {
u.setGender(args);
return "> Gender Edited";

}
}
}
return "> User Has not Spoken yet thus they have nothing to edit.";
}

@Override
public String[] names() {
return new String[]{"SetGender"};
}

@Override
public String description() {
return "Allows you to set your Gender on your User Card.";
}

@Override
public String usage() {
return "[Gender]";
}

@Override
public String type() {
return TYPE_GENERAL;
}

@Override
public String channel() {
return null;
}

@Override
public Permissions[] perms() {
return new Permissions[0];
}

@Override
public boolean requiresArgs() {
return true;
}

@Override
public boolean doAdminLogging() {
return false;
}

@Override
public String dualDescription() {
return "Allows you to set the Gender of a user.";
}

@Override
public String dualUsage() {
return "[UserID] [User Gender]";
}

@Override
public String dualType() {
return TYPE_ADMIN;
}

@Override
public Permissions[] dualPerms() {
return new Permissions[]{Permissions.MANAGE_MESSAGES};
}
}
106 changes: 106 additions & 0 deletions src/main/java/Commands/General/SetQuote.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
package Commands.General;

import Commands.Command;
import Commands.CommandObject;
import Main.Utility;
import Objects.SplitFirstObject;
import Objects.UserTypeObject;
import sx.blah.discord.handle.obj.IUser;
import sx.blah.discord.handle.obj.Permissions;

/**
* Created by Vaerys on 27/02/2017.
*/
public class SetQuote implements Command {

@Override
public String execute(String args, CommandObject command) {
IUser user = command.author;
SplitFirstObject userID = new SplitFirstObject(args);
boolean adminEdit = false;
if (Utility.testForPerms(dualPerms(), command.author, command.guild) || Utility.canBypass(command.author,command.guild)) {
user = command.client.getUserByID(userID.getFirstWord());
if (user != null) {
adminEdit = true;
}
}

for (UserTypeObject u : command.guildUsers.getUsers()) {
if (args.length() > 140) {
return "> Your Quote is too long...\n(must be under 140 chars)";
}
if (adminEdit) {
if (u.getID().equals(user.getID())) {
u.setQuote(userID.getRest());
return "> User's Quote Edited.";
}
}else {
if (u.getID().equals(command.authorID)) {
u.setQuote(args);
return "> Quote Edited.";
}
}
}
return "> User Has not Spoken yet thus they have nothing to edit.";
}

@Override
public String[] names() {
return new String[]{"SetQuote"};
}

@Override
public String description() {
return "Allows you to set your quote. Limit 140 chars.";
}

@Override
public String usage() {
return "[Quote...]";
}

@Override
public String type() {
return TYPE_GENERAL;
}

@Override
public String channel() {
return null;
}

@Override
public Permissions[] perms() {
return new Permissions[0];
}

@Override
public boolean requiresArgs() {
return true;
}

@Override
public boolean doAdminLogging() {
return false;
}

@Override
public String dualDescription() {
return "Allows you to set the quote of a user.";
}

@Override
public String dualUsage() {
return "[UserID] [User Quote]";
}

@Override
public String dualType() {
return TYPE_ADMIN;
}

@Override
public Permissions[] dualPerms() {
return new Permissions[]{Permissions.MANAGE_MESSAGES};
}
}
59 changes: 41 additions & 18 deletions src/main/java/Commands/General/Test.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,15 @@
import Commands.Command;
import Commands.CommandObject;
import Main.Utility;
import Objects.UserTypeObject;
import sx.blah.discord.handle.obj.IRole;
import sx.blah.discord.handle.obj.Permissions;
import sx.blah.discord.util.EmbedBuilder;

import java.time.ZoneOffset;
import java.time.ZonedDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;

/**
Expand All @@ -19,25 +21,46 @@ public class Test implements Command {

@Override
public String execute(String args, CommandObject command) {
EmbedBuilder builder = new EmbedBuilder();
ArrayList<IRole> cosmeticRoles = new ArrayList<>();
ArrayList<String> roleNames = new ArrayList<>();
builder.withTitle(command.authorDisplayName);
builder.withThumbnail(command.author.getAvatarURL());
long difference = ZonedDateTime.now(ZoneOffset.UTC).toEpochSecond() - command.author.getCreationDate().atZone(ZoneOffset.UTC).toEpochSecond();
cosmeticRoles.addAll(command.authorRoles.stream().filter(role -> command.guildConfig.isRoleCosmetic(role.getID())).collect(Collectors.toList()));
if (cosmeticRoles.size() > 0){
builder.withColor(Utility.getUsersColour(cosmeticRoles,command.guild));
}else {
builder.withColor(command.authorColour);
for (UserTypeObject u : command.guildUsers.getUsers()) {
if (u.getID().equals(command.authorID)) {

EmbedBuilder builder = new EmbedBuilder();
List<IRole> roles = command.authorRoles;
ArrayList<String> roleNames = new ArrayList<>();

//sets title to user Display Name;
builder.withTitle(command.authorDisplayName);

//sets thumbnail to user Avatar.
builder.withThumbnail(command.author.getAvatarURL());

//gets the age of the account.
long difference = ZonedDateTime.now(ZoneOffset.UTC).toEpochSecond() - command.author.getCreationDate().atZone(ZoneOffset.UTC).toEpochSecond();


//sets sidebar colour
builder.withColor(command.authorColour);

//collect role names;
roleNames.addAll(roles.stream().filter(role -> !role.isEveryoneRole()).map(IRole::getName).collect(Collectors.toList()));

//builds desc
builder.withDesc("Account Created: " + Utility.formatTimeDifference(difference) +
"\nGender: " + u.getGender() +
"\nRoles : " + Utility.listFormatter(roleNames, true) +
"\n\n*" + u.getQuote() + "*");

// TODO: 27/02/2017 when xp system is implemented put xp and rank on the user card.

//adds ID
builder.withFooterText("User ID: " + u.getID());

//sends Message
Utility.sendEmbededMessage("", builder.build(), command.channel);
return null;
}
}
roleNames.addAll(cosmeticRoles.stream().map(IRole::getName).collect(Collectors.toList()));
builder.withDesc("Age: " + Utility.formatTimeDifference(difference) +
"\nGender: ERROR\n" +
Utility.listFormatter(roleNames,true) +
"\nDesc: "+ args);
Utility.sendEmbededMessage("",builder.build(),command.channel);
return null;
return "> An Error occurred.";
}

@Override
Expand Down
Loading

0 comments on commit d3aa5ba

Please sign in to comment.