Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save Gcunhaa/997413e3741d70c0010e234df6c05698 to your computer and use it in GitHub Desktop.
Save Gcunhaa/997413e3741d70c0010e234df6c05698 to your computer and use it in GitHub Desktop.
Plugin de captcha para Authme.
<component name="ArtifactManager">
<artifact type="jar" name="authmeCaptcha:jar">
<output-path>$USER_HOME$/Documents/Minecraft/Desenvolvimento/Servidor Teste/plugins</output-path>
<root id="archive" name="authmeCaptcha.jar">
<element id="module-output" name="authmeCaptcha" />
</root>
</artifact>
</component>
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<annotationProcessing>
<profile name="Maven default annotation processors profile" enabled="true">
<sourceOutputDir name="target/generated-sources/annotations" />
<sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
<outputRelativeToContentRoot value="true" />
<module name="authmeCaptcha" />
</profile>
</annotationProcessing>
<bytecodeTargetLevel>
<module name="authmeCaptcha" target="1.8" />
</bytecodeTargetLevel>
</component>
</project>
<component name="libraryTable">
<library name="Maven: com.google.code.gson:gson:2.2.4">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/com/google/code/gson/gson/2.2.4/gson-2.2.4.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/com/google/code/gson/gson/2.2.4/gson-2.2.4-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/com/google/code/gson/gson/2.2.4/gson-2.2.4-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: com.google.guava:guava:17.0">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/com/google/guava/guava/17.0/guava-17.0.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/com/google/guava/guava/17.0/guava-17.0-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/com/google/guava/guava/17.0/guava-17.0-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: com.googlecode.json-simple:json-simple:1.1.1">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/com/googlecode/json-simple/json-simple/1.1.1/json-simple-1.1.1.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/com/googlecode/json-simple/json-simple/1.1.1/json-simple-1.1.1-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/com/googlecode/json-simple/json-simple/1.1.1/json-simple-1.1.1-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: commons-lang:commons-lang:2.6">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/commons-lang/commons-lang/2.6/commons-lang-2.6.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/commons-lang/commons-lang/2.6/commons-lang-2.6-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/commons-lang/commons-lang/2.6/commons-lang-2.6-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: de.mkammerer:argon2-jvm-nolibs:2.2">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/de/mkammerer/argon2-jvm-nolibs/2.2/argon2-jvm-nolibs-2.2.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/de/mkammerer/argon2-jvm-nolibs/2.2/argon2-jvm-nolibs-2.2-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/de/mkammerer/argon2-jvm-nolibs/2.2/argon2-jvm-nolibs-2.2-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: fr.xephi:authme:5.4.0">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/fr/xephi/authme/5.4.0/authme-5.4.0.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/fr/xephi/authme/5.4.0/authme-5.4.0-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/fr/xephi/authme/5.4.0/authme-5.4.0-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: javax.persistence:persistence-api:1.0">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/javax/persistence/persistence-api/1.0/persistence-api-1.0.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/javax/persistence/persistence-api/1.0/persistence-api-1.0-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/javax/persistence/persistence-api/1.0/persistence-api-1.0-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: junit:junit:4.10">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/junit/junit/4.10/junit-4.10.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/junit/junit/4.10/junit-4.10-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/junit/junit/4.10/junit-4.10-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: net.java.dev.jna:jna:4.2.1">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/net/java/dev/jna/jna/4.2.1/jna-4.2.1.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/net/java/dev/jna/jna/4.2.1/jna-4.2.1-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/net/java/dev/jna/jna/4.2.1/jna-4.2.1-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: net.md-5:bungeecord-chat:1.8-SNAPSHOT">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/net/md-5/bungeecord-chat/1.8-SNAPSHOT/bungeecord-chat-1.8-20160221.214602-128.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/net/md-5/bungeecord-chat/1.8-SNAPSHOT/bungeecord-chat-1.8-20160221.214602-128-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/net/md-5/bungeecord-chat/1.8-SNAPSHOT/bungeecord-chat-1.8-20160221.214602-128-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: org.avaje:ebean:2.8.1">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/avaje/ebean/2.8.1/ebean-2.8.1.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/avaje/ebean/2.8.1/ebean-2.8.1-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/avaje/ebean/2.8.1/ebean-2.8.1-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: org.hamcrest:hamcrest-core:1.1">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: org.spigotmc:spigot-api:1.8.8-R0.1-SNAPSHOT">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/spigotmc/spigot-api/1.8.8-R0.1-SNAPSHOT/spigot-api-1.8.8-R0.1-20160221.082514-43.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/spigotmc/spigot-api/1.8.8-R0.1-SNAPSHOT/spigot-api-1.8.8-R0.1-20160221.082514-43-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/spigotmc/spigot-api/1.8.8-R0.1-SNAPSHOT/spigot-api-1.8.8-R0.1-20160221.082514-43-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: org.yaml:snakeyaml:1.15">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/yaml/snakeyaml/1.15/snakeyaml-1.15.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/yaml/snakeyaml/1.15/snakeyaml-1.15-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/yaml/snakeyaml/1.15/snakeyaml-1.15-sources.jar!/" />
</SOURCES>
</library>
</component>
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="MavenProjectsManager">
<option name="originalFiles">
<list>
<option value="$PROJECT_DIR$/pom.xml" />
</list>
</option>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/authmeCaptcha.iml" filepath="$PROJECT_DIR$/authmeCaptcha.iml" />
</modules>
</component>
</project>
<template>
<input-field default="com.gcunha.template">IJ_BASE_PACKAGE</input-field>
</template>
<template unencoded="false">
<roots>
<root index="0" path="" />
</roots>
</template>
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Palette2">
<group name="Swing">
<item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" />
</item>
<item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" />
</item>
<item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
</item>
<item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.png" removable="false" auto-create-binding="false" can-attach-label="true">
<default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" />
</item>
<item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" />
<initial-values>
<property name="text" value="Button" />
</initial-values>
</item>
<item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
<initial-values>
<property name="text" value="RadioButton" />
</initial-values>
</item>
<item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
<initial-values>
<property name="text" value="CheckBox" />
</initial-values>
</item>
<item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
<initial-values>
<property name="text" value="Label" />
</initial-values>
</item>
<item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" />
</item>
<item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
<preferred-size width="200" height="200" />
</default-constraints>
</item>
<item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
<preferred-size width="200" height="200" />
</default-constraints>
</item>
<item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
</item>
<item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
</item>
<item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" />
</item>
<item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" />
</item>
<item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1">
<preferred-size width="-1" height="20" />
</default-constraints>
</item>
<item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" />
</item>
<item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" />
</item>
</group>
</component>
</project>
<?xml version="1.0" encoding="UTF-8"?>
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
<output url="file://$MODULE_DIR$/target/classes" />
<output-test url="file://$MODULE_DIR$/target/test-classes" />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/target" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.spigotmc:spigot-api:1.8.8-R0.1-SNAPSHOT" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: commons-lang:commons-lang:2.6" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.googlecode.json-simple:json-simple:1.1.1" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: junit:junit:4.10" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.hamcrest:hamcrest-core:1.1" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.google.guava:guava:17.0" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.google.code.gson:gson:2.2.4" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.avaje:ebean:2.8.1" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: javax.persistence:persistence-api:1.0" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.yaml:snakeyaml:1.15" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: net.md-5:bungeecord-chat:1.8-SNAPSHOT" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: fr.xephi:authme:5.4.0" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: de.mkammerer:argon2-jvm-nolibs:2.2" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: net.java.dev.jna:jna:4.2.1" level="project" />
</component>
</module>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.gcunha</groupId>
<artifactId>authmeCaptcha</artifactId>
<version>1.0-SNAPSHOT</version>
<repositories>
<repository>
<id>spigot-repo</id>
<url>https://hub.spigotmc.org/nexus/content/repositories/snapshots/</url>
</repository>
<repository>
<id>codemc-repo</id>
<url>http://repo.codemc.org/repository/maven-public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>org.spigotmc</groupId>
<artifactId>spigot-api</artifactId>
<version>1.8.8-R0.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>fr.xephi</groupId>
<artifactId>authme</artifactId>
<version>5.4.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
</project>
package com.gcunha.authmeCaptcha.abstracts;
import com.gcunha.authmeCaptcha.AuthmeCaptcha;
import org.bukkit.command.CommandSender;
public abstract class Command {
protected AuthmeCaptcha plugin;
private String name;
private String permission;
private String description;
private String syntax;
private boolean playerCommand = true;
private boolean consoleCommand = true;
public Command(){
setup();
}
private void setup(){
this.plugin = AuthmeCaptcha.getInstance();
}
public void buildCommand(String name,String syntax, String description, String permission,boolean playerCommand, boolean consoleCommand){
setName(name);
setSyntax(syntax);
setDescription(description);
setPermission(permission);
setPlayerCommand(playerCommand);
setConsoleCommand(consoleCommand);
}
public abstract boolean execute(CommandSender sender, String[] args) throws Exception;
private void setPermission(String permission) {
this.permission = permission;
}
private void setDescription(String description) {
this.description = description;
}
private void setSyntax(String syntax) {
this.syntax = syntax;
}
private void setPlayerCommand(boolean playerCommand) {
this.playerCommand = playerCommand;
}
private void setConsoleCommand(boolean consoleCommand) {
this.consoleCommand = consoleCommand;
}
public void setName(String name) {
this.name = name;
}
public String getPermission() {
return permission;
}
public String getName() {
return name;
}
public String getDescription() {
return description;
}
public String getSyntax() {
return syntax;
}
public boolean isPlayerCommand() {
return playerCommand;
}
public boolean isConsoleCommand() {
return consoleCommand;
}
}
package com.gcunha.authmeCaptcha;
import com.gcunha.authmeCaptcha.events.EventPreLogin;
import com.gcunha.authmeCaptcha.events.EventShouldCancel;
import com.gcunha.authmeCaptcha.manager.CaptchaManager;
import com.gcunha.authmeCaptcha.manager.CommandManager;
import org.bukkit.event.Listener;
import org.bukkit.plugin.java.JavaPlugin;
import java.util.ArrayList;
import java.util.UUID;
public class AuthmeCaptcha extends JavaPlugin {
private static AuthmeCaptcha instance;
private CaptchaManager captchaManager;
@Override
public void onEnable() {
instance = this;
captchaManager = new CaptchaManager();
setupEvents();
new CommandManager();
}
private void setupEvents(){
registerEvent(new EventPreLogin());
registerEvent(new EventShouldCancel());
}
public CaptchaManager getCaptchaManager() {
return captchaManager;
}
private void registerEvent(Listener event){
getServer().getPluginManager().registerEvents(event , getInstance());
}
public static AuthmeCaptcha getInstance() {
return instance;
}
}
package com.gcunha.authmeCaptcha;
public enum Color {
ROSA("&d&lROSA"), AZUL("&9&lAZUL"), VERDE("&a&lVERDE"), VERMELHO("&c&lVERMELHO");
private final String text;
Color(String text){
this.text = text;
}
public String getText(){
return this.text;
}
}
package com.gcunha.authmeCaptcha.commands;
import com.gcunha.authmeCaptcha.Color;
import com.gcunha.authmeCaptcha.abstracts.Command;
import fr.xephi.authme.api.v3.AuthMeApi;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.potion.PotionEffectType;
import java.util.UUID;
public class CommandCaptcha extends Command {
public CommandCaptcha() {
buildCommand("color","/color <cor>","comando para selecionar cor do captcha. ","",true,false);
}
public boolean execute(CommandSender sender, String[] args) throws Exception {
Player player = (Player) sender;
if(!plugin.getCaptchaManager().hasCaptcha(player.getUniqueId())) return false;
if(args.length > 0){
if(checkCaptcha(args[0],player.getUniqueId())){
plugin.getCaptchaManager().delCaptchaPLayer(player.getUniqueId());
player.removePotionEffect(PotionEffectType.JUMP);
player.setWalkSpeed((float) 0.2);
player.setFlySpeed((float) 0.2);
player.sendMessage(ChatColor.translateAlternateColorCodes('&', "&aCaptcha confirmado com sucesso!"));
player.sendMessage("\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n");
}else{
player.kickPlayer("Valor do captcha incorreto.");
}
}
return false;
}
private boolean checkCaptcha(String strColor, UUID uuid){
for(Color c : Color.values()){
if(c.getText().substring(4).equalsIgnoreCase(strColor)){
return plugin.getCaptchaManager().getColor(uuid).equals(c);
}
}
return false;
}
}
package com.gcunha.authmeCaptcha.events;
import com.gcunha.authmeCaptcha.Color;
import com.gcunha.authmeCaptcha.AuthmeCaptcha;
import com.gcunha.authmeCaptcha.abstracts.Command;
import fr.xephi.authme.api.v3.AuthMeApi;
import fr.xephi.authme.events.AuthMeAsyncPreLoginEvent;
import fr.xephi.authme.events.LoginEvent;
import net.md_5.bungee.api.chat.ClickEvent;
import net.md_5.bungee.api.chat.ComponentBuilder;
import net.md_5.bungee.api.chat.HoverEvent;
import net.md_5.bungee.api.chat.TextComponent;
import org.bukkit.ChatColor;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;
import java.util.Random;
public class EventPreLogin implements Listener {
final protected AuthmeCaptcha plugin = AuthmeCaptcha.getInstance();
private Color[] cores = Color.values();
private Random random = new Random();
@EventHandler
public void preLoginEvent(LoginEvent event){
Player player = event.getPlayer();
Color color = getRandom();
plugin.getCaptchaManager().addCaptchaPlayer(player.getUniqueId(), color);
player.sendMessage(" ");
player.sendMessage(" ");
player.sendMessage(" ");
String textAsk = "&6Para poder jogar, faça o teste, clique na cor %cor%";
textAsk = textAsk.replace("%cor%",color.getText());
player.sendMessage(ChatColor.translateAlternateColorCodes('&',textAsk));
player.sendMessage(" ");
TextComponent msg = new TextComponent(" ");
msg.addExtra(getColorTextComponent(Color.AZUL));
msg.addExtra(" ");
msg.addExtra(getColorTextComponent(Color.VERMELHO));
msg.addExtra(" ");
msg.addExtra(getColorTextComponent(Color.VERDE));
msg.addExtra(" ");
msg.addExtra(getColorTextComponent(Color.ROSA));
player.spigot().sendMessage(msg);
player.sendMessage(" ");
player.setWalkSpeed(0);
player.setFlySpeed(0);
player.addPotionEffect(new PotionEffect(PotionEffectType.JUMP,Integer.MAX_VALUE, -15));
}
private TextComponent getColorTextComponent(Color color){
TextComponent msg = new TextComponent(ChatColor.translateAlternateColorCodes('&', color.getText()));
msg.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new ComponentBuilder("§7Clique para selecionar!").create()));
msg.setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/color " + color.getText().substring(4)));
return msg;
}
final Color getRandom(){
return cores[random.nextInt(cores.length)];
}
}
package com.gcunha.authmeCaptcha.events;
import com.gcunha.authmeCaptcha.AuthmeCaptcha;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.player.AsyncPlayerChatEvent;
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.event.player.PlayerQuitEvent;
public class EventShouldCancel implements Listener{
final protected AuthmeCaptcha plugin = AuthmeCaptcha.getInstance();
@EventHandler
public void aoConversar(AsyncPlayerChatEvent event){
Player player = event.getPlayer();
if(plugin.getCaptchaManager().hasCaptcha(player.getUniqueId())){
event.setCancelled(true);
}
}
@EventHandler
public void aoSair(PlayerQuitEvent event){
Player player = event.getPlayer();
plugin.getCaptchaManager().delCaptchaPLayer(player.getUniqueId());
player.setWalkSpeed(0.2F);
player.setFlySpeed(0.2F);
}
@EventHandler(priority = EventPriority.HIGHEST)
public void aoUsarComando(PlayerCommandPreprocessEvent event){
Player player = event.getPlayer();
if(plugin.getCaptchaManager().hasCaptcha(player.getUniqueId()) &&
!event.getMessage().contains("color")){
event.setCancelled(true);
}
}
@EventHandler(priority = EventPriority.HIGHEST)
public void aoInteragir(PlayerInteractEvent event){
Player player = event.getPlayer();
if(plugin.getCaptchaManager().hasCaptcha(player.getUniqueId())){
event.setCancelled(true);
}
}
}
package com.gcunha.authmeCaptcha.manager;
import com.gcunha.authmeCaptcha.Color;
import java.util.HashMap;
import java.util.UUID;
public class CaptchaManager {
private HashMap<UUID , Color> captchaPlayers;
public CaptchaManager(){
this.captchaPlayers = new HashMap<UUID, Color>();
}
public void addCaptchaPlayer(UUID uuid, Color color){
delCaptchaPLayer(uuid);
captchaPlayers.put(uuid, color);
}
public void delCaptchaPLayer(UUID uuid){
if(captchaPlayers.containsKey(uuid)) captchaPlayers.remove(uuid);
}
public Color getColor(UUID uuid){
if(captchaPlayers.containsKey(uuid)) return captchaPlayers.get(uuid);
return null;
}
public boolean hasCaptcha(UUID uuid){
return captchaPlayers.containsKey(uuid);
}
}
package com.gcunha.authmeCaptcha.manager;
import com.gcunha.authmeCaptcha.AuthmeCaptcha;
import com.gcunha.authmeCaptcha.abstracts.Command;
import com.gcunha.authmeCaptcha.commands.CommandCaptcha;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.command.ConsoleCommandSender;
import org.bukkit.entity.Player;
import java.util.ArrayList;
public class CommandManager implements CommandExecutor{
private AuthmeCaptcha plugin;
private ArrayList<Command> commands;
public CommandManager() {
setup();
addCommand(new CommandCaptcha());
registerCommands();
}
private void setup(){
this.plugin = AuthmeCaptcha.getInstance();
this.commands = new ArrayList<Command>();
}
public void addCommand(Command command){
commands.add(command);
}
public ArrayList<Command> getCommands() {
return commands;
}
public void registerCommands(){
for(Command c : getCommands()){
plugin.getCommand(c.getName()).setExecutor(this);
}
}
public boolean onCommand(CommandSender commandSender, org.bukkit.command.Command command, String s, String[] strings) {
for (Command c : getCommands()) {
//Verifica se o comando existe
if (command.getLabel().equalsIgnoreCase(c.getName())) {
//verifica se entidade pode usar o comando
if (commandSender instanceof ConsoleCommandSender && !c.isConsoleCommand()) {
commandSender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&cEsse comando não pode ser executado pelo console."));
return false;
}
if (commandSender instanceof Player && !c.isPlayerCommand()) {
commandSender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&cEsse comando não pode ser executado por jogadores."));
return false;
}
//executa o comando
try {
c.execute(commandSender, strings);
} catch (Exception e) {
commandSender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&6Uso incorreto do comando, utilize: &c" + c.getSyntax()));
}
return true;
}
}
return false;
}
}
name: AuthmeCaptcha
version: 1.0
author: Gcunha
main: com.gcunha.authmeCaptcha.AuthmeCaptcha
commands:
color:
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment