/*
* Copyright 2019-2021 GregTCLTK and Schlauer-Hax
*
* Licensed under the GNU Affero General Public License, Version 3.0;
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.gnu.org/licenses/agpl-3.0.en.html
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package one.bbn.hadder.commands.misc;
import one.bbn.hadder.commands.Command;
import one.bbn.hadder.commands.CommandEvent;
import one.bbn.hadder.utils.EventWaiter;
import one.bbn.hadder.utils.MessageEditor;
import org.kohsuke.github.GHIssue;
import org.kohsuke.github.GHRepository;
import org.kohsuke.github.GitHub;
import java.io.IOException;
public class FeedbackCommand implements Command {
@Override
public void executed(String[] args, CommandEvent e) {
e.getTextChannel().sendMessage(
e.getMessageEditor().getMessage(
MessageEditor.MessageType.INFO,
"commands.misc.feedback.title.request.title",
"commands.misc.feedback.title.request.description")
.build()).queue();
new EventWaiter().newOnMessageEventWaiter(e1 -> {
String title = e1.getMessage().getContentDisplay();
e1.getChannel().sendMessage(e.getMessageEditor().getMessage(
MessageEditor.MessageType.INFO,
"commands.misc.feedback.description.request.title",
"commands.misc.feedback.description.request.description")
.build()).queue();
new EventWaiter().newOnMessageEventWaiter(e2 -> {
String description = e2.getMessage().getContentDisplay();
try {
GitHub connection = GitHub.connectUsingOAuth(e.getConfig().getGitHubToken());
GHRepository Hadder = connection.getOrganization("BigBotNetwork").getRepository("Hadder");
GHIssue issue = Hadder.createIssue(title).body("Feedback by " + e.getAuthor().getAsTag() + "
" + description).label("feedback").create();
issue.addLabels("feedback");
e.getTextChannel().sendMessage(
e.getMessageEditor().getMessage(
MessageEditor.MessageType.INFO,
"commands.misc.feedback.success.title",
"")
.setDescription(issue.getHtmlUrl().toString())
.build()).queue();
} catch (IOException ex) {
ex.printStackTrace();
}
}, e.getJDA(), e.getAuthor());
}, e.getJDA(), e.getAuthor());
}
@Override
public String[] labels() {
return new String[]{"feedback"};
}
@Override
public String description() {
return "commands.misc.feedback.help.description";
}
@Override
public String usage() {
return null;
}
@Override
public String example() {
return null;
}
}