summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorXor Boole <mcyoung@mit.edu>2015-02-20 19:52:58 -0500
committerXor Boole <mcyoung@mit.edu>2015-02-20 19:52:58 -0500
commitdf545f4fc89a706003b939b32d4f0bae1574dca5 (patch)
tree349acf02f5b409ed5c5f2c77105d5722db7c183d
downloadplugin-annotations-df545f4fc89a706003b939b32d4f0bae1574dca5.tar
plugin-annotations-df545f4fc89a706003b939b32d4f0bae1574dca5.tar.gz
plugin-annotations-df545f4fc89a706003b939b32d4f0bae1574dca5.tar.lz
plugin-annotations-df545f4fc89a706003b939b32d4f0bae1574dca5.tar.xz
plugin-annotations-df545f4fc89a706003b939b32d4f0bae1574dca5.zip
Initial Commit
-rw-r--r--.idea/.name1
-rw-r--r--.idea/compiler.xml33
-rw-r--r--.idea/copyright/profiles_settings.xml3
-rw-r--r--.idea/encodings.xml7
-rw-r--r--.idea/libraries/Maven__com_google_guava_guava_17_0.xml13
-rw-r--r--.idea/libraries/Maven__com_googlecode_json_simple_json_simple_1_1_1.xml13
-rw-r--r--.idea/libraries/Maven__commons_lang_commons_lang_2_6.xml13
-rw-r--r--.idea/libraries/Maven__javax_persistence_persistence_api_1_0.xml13
-rw-r--r--.idea/libraries/Maven__junit_junit_4_10.xml13
-rw-r--r--.idea/libraries/Maven__org_avaje_ebean_2_8_1.xml13
-rw-r--r--.idea/libraries/Maven__org_bukkit_bukkit_1_8_R0_1_SNAPSHOT.xml13
-rw-r--r--.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_1.xml13
-rw-r--r--.idea/libraries/Maven__org_yaml_snakeyaml_1_14.xml13
-rw-r--r--.idea/misc.xml22
-rw-r--r--.idea/modules.xml9
-rw-r--r--.idea/scopes/scope_settings.xml5
-rw-r--r--.idea/vcs.xml7
-rw-r--r--.idea/workspace.xml764
-rw-r--r--PluginAnnotations.iml24
-rw-r--r--pom.xml119
-rw-r--r--src/main/java/org/bukkit/plugin/java/annotation/Author.java18
-rw-r--r--src/main/java/org/bukkit/plugin/java/annotation/Commands.java52
-rw-r--r--src/main/java/org/bukkit/plugin/java/annotation/DependsOn.java17
-rw-r--r--src/main/java/org/bukkit/plugin/java/annotation/Description.java17
-rw-r--r--src/main/java/org/bukkit/plugin/java/annotation/LoadBefore.java17
-rw-r--r--src/main/java/org/bukkit/plugin/java/annotation/LoadOn.java18
-rw-r--r--src/main/java/org/bukkit/plugin/java/annotation/LogPrefix.java16
-rw-r--r--src/main/java/org/bukkit/plugin/java/annotation/Main.java55
-rw-r--r--src/main/java/org/bukkit/plugin/java/annotation/Name.java18
-rw-r--r--src/main/java/org/bukkit/plugin/java/annotation/Permissions.java50
-rw-r--r--src/main/java/org/bukkit/plugin/java/annotation/PluginAnnotationProcessor.java194
-rw-r--r--src/main/java/org/bukkit/plugin/java/annotation/SoftDependsOn.java17
-rw-r--r--src/main/java/org/bukkit/plugin/java/annotation/UsesDatabase.java13
-rw-r--r--src/main/java/org/bukkit/plugin/java/annotation/Version.java20
-rw-r--r--src/main/java/org/bukkit/plugin/java/annotation/Website.java17
-rw-r--r--src/main/resources/META-INF/services/javax.annotation.processing.Processor1
-rw-r--r--target/classes/META-INF/services/javax.annotation.processing.Processor1
-rw-r--r--target/classes/org/bukkit/plugin/java/annotation/Author.classbin0 -> 332 bytes
-rw-r--r--target/classes/org/bukkit/plugin/java/annotation/Commands$Cmd.classbin0 -> 565 bytes
-rw-r--r--target/classes/org/bukkit/plugin/java/annotation/Commands.classbin0 -> 455 bytes
-rw-r--r--target/classes/org/bukkit/plugin/java/annotation/DependsOn.classbin0 -> 338 bytes
-rw-r--r--target/classes/org/bukkit/plugin/java/annotation/Description.classbin0 -> 341 bytes
-rw-r--r--target/classes/org/bukkit/plugin/java/annotation/LoadBefore.classbin0 -> 340 bytes
-rw-r--r--target/classes/org/bukkit/plugin/java/annotation/LoadOn.classbin0 -> 348 bytes
-rw-r--r--target/classes/org/bukkit/plugin/java/annotation/LogPrefix.classbin0 -> 337 bytes
-rw-r--r--target/classes/org/bukkit/plugin/java/annotation/Main.classbin0 -> 296 bytes
-rw-r--r--target/classes/org/bukkit/plugin/java/annotation/Name.classbin0 -> 327 bytes
-rw-r--r--target/classes/org/bukkit/plugin/java/annotation/Permissions$Perm.classbin0 -> 648 bytes
-rw-r--r--target/classes/org/bukkit/plugin/java/annotation/Permissions.classbin0 -> 470 bytes
-rw-r--r--target/classes/org/bukkit/plugin/java/annotation/PluginAnnotationProcessor.classbin0 -> 12125 bytes
-rw-r--r--target/classes/org/bukkit/plugin/java/annotation/SoftDependsOn.classbin0 -> 346 bytes
-rw-r--r--target/classes/org/bukkit/plugin/java/annotation/UsesDatabase.classbin0 -> 312 bytes
-rw-r--r--target/classes/org/bukkit/plugin/java/annotation/Version.classbin0 -> 414 bytes
-rw-r--r--target/classes/org/bukkit/plugin/java/annotation/Website.classbin0 -> 333 bytes
-rw-r--r--target/maven-archiver/pom.properties5
-rw-r--r--target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst17
-rw-r--r--target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst15
-rw-r--r--target/plugin-annotations-1.0.0-SNAPSHOT.jarbin0 -> 15456 bytes
58 files changed, 1689 insertions, 0 deletions
diff --git a/.idea/.name b/.idea/.name
new file mode 100644
index 0000000..88f0cf8
--- /dev/null
+++ b/.idea/.name
@@ -0,0 +1 @@
+PluginAnnotations \ No newline at end of file
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
new file mode 100644
index 0000000..1238a1f
--- /dev/null
+++ b/.idea/compiler.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="CompilerConfiguration">
+ <option name="DEFAULT_COMPILER" value="Javac" />
+ <resourceExtensions />
+ <wildcardResourcePatterns>
+ <entry name="!?*.java" />
+ <entry name="!?*.form" />
+ <entry name="!?*.class" />
+ <entry name="!?*.groovy" />
+ <entry name="!?*.scala" />
+ <entry name="!?*.flex" />
+ <entry name="!?*.kt" />
+ <entry name="!?*.clj" />
+ </wildcardResourcePatterns>
+ <annotationProcessing>
+ <profile default="true" name="Default" enabled="false">
+ <processorPath useClasspath="true" />
+ </profile>
+ <profile default="false" 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" />
+ <processorPath useClasspath="true" />
+ <module name="PluginAnnotations" />
+ </profile>
+ </annotationProcessing>
+ <bytecodeTargetLevel>
+ <module name="PluginAnnotations" target="1.6" />
+ </bytecodeTargetLevel>
+ </component>
+</project>
+
diff --git a/.idea/copyright/profiles_settings.xml b/.idea/copyright/profiles_settings.xml
new file mode 100644
index 0000000..e7bedf3
--- /dev/null
+++ b/.idea/copyright/profiles_settings.xml
@@ -0,0 +1,3 @@
+<component name="CopyrightManager">
+ <settings default="" />
+</component> \ No newline at end of file
diff --git a/.idea/encodings.xml b/.idea/encodings.xml
new file mode 100644
index 0000000..74c0d0a
--- /dev/null
+++ b/.idea/encodings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="Encoding" useUTFGuessing="true" native2AsciiForPropertiesFiles="false">
+ <file url="file://$PROJECT_DIR$" charset="UTF-8" />
+ </component>
+</project>
+
diff --git a/.idea/libraries/Maven__com_google_guava_guava_17_0.xml b/.idea/libraries/Maven__com_google_guava_guava_17_0.xml
new file mode 100644
index 0000000..2a9069c
--- /dev/null
+++ b/.idea/libraries/Maven__com_google_guava_guava_17_0.xml
@@ -0,0 +1,13 @@
+<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> \ No newline at end of file
diff --git a/.idea/libraries/Maven__com_googlecode_json_simple_json_simple_1_1_1.xml b/.idea/libraries/Maven__com_googlecode_json_simple_json_simple_1_1_1.xml
new file mode 100644
index 0000000..f3f3738
--- /dev/null
+++ b/.idea/libraries/Maven__com_googlecode_json_simple_json_simple_1_1_1.xml
@@ -0,0 +1,13 @@
+<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> \ No newline at end of file
diff --git a/.idea/libraries/Maven__commons_lang_commons_lang_2_6.xml b/.idea/libraries/Maven__commons_lang_commons_lang_2_6.xml
new file mode 100644
index 0000000..2ec8376
--- /dev/null
+++ b/.idea/libraries/Maven__commons_lang_commons_lang_2_6.xml
@@ -0,0 +1,13 @@
+<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> \ No newline at end of file
diff --git a/.idea/libraries/Maven__javax_persistence_persistence_api_1_0.xml b/.idea/libraries/Maven__javax_persistence_persistence_api_1_0.xml
new file mode 100644
index 0000000..e60370e
--- /dev/null
+++ b/.idea/libraries/Maven__javax_persistence_persistence_api_1_0.xml
@@ -0,0 +1,13 @@
+<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> \ No newline at end of file
diff --git a/.idea/libraries/Maven__junit_junit_4_10.xml b/.idea/libraries/Maven__junit_junit_4_10.xml
new file mode 100644
index 0000000..ed8bf5f
--- /dev/null
+++ b/.idea/libraries/Maven__junit_junit_4_10.xml
@@ -0,0 +1,13 @@
+<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> \ No newline at end of file
diff --git a/.idea/libraries/Maven__org_avaje_ebean_2_8_1.xml b/.idea/libraries/Maven__org_avaje_ebean_2_8_1.xml
new file mode 100644
index 0000000..91f161a
--- /dev/null
+++ b/.idea/libraries/Maven__org_avaje_ebean_2_8_1.xml
@@ -0,0 +1,13 @@
+<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> \ No newline at end of file
diff --git a/.idea/libraries/Maven__org_bukkit_bukkit_1_8_R0_1_SNAPSHOT.xml b/.idea/libraries/Maven__org_bukkit_bukkit_1_8_R0_1_SNAPSHOT.xml
new file mode 100644
index 0000000..624897d
--- /dev/null
+++ b/.idea/libraries/Maven__org_bukkit_bukkit_1_8_R0_1_SNAPSHOT.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+ <library name="Maven: org.bukkit:bukkit:1.8-R0.1-SNAPSHOT">
+ <CLASSES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/bukkit/bukkit/1.8-R0.1-SNAPSHOT/bukkit-1.8-R0.1-SNAPSHOT.jar!/" />
+ </CLASSES>
+ <JAVADOC>
+ <root url="jar://$MAVEN_REPOSITORY$/org/bukkit/bukkit/1.8-R0.1-SNAPSHOT/bukkit-1.8-R0.1-SNAPSHOT-javadoc.jar!/" />
+ </JAVADOC>
+ <SOURCES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/bukkit/bukkit/1.8-R0.1-SNAPSHOT/bukkit-1.8-R0.1-SNAPSHOT-sources.jar!/" />
+ </SOURCES>
+ </library>
+</component> \ No newline at end of file
diff --git a/.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_1.xml b/.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_1.xml
new file mode 100644
index 0000000..acdf443
--- /dev/null
+++ b/.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_1.xml
@@ -0,0 +1,13 @@
+<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> \ No newline at end of file
diff --git a/.idea/libraries/Maven__org_yaml_snakeyaml_1_14.xml b/.idea/libraries/Maven__org_yaml_snakeyaml_1_14.xml
new file mode 100644
index 0000000..d9fbe59
--- /dev/null
+++ b/.idea/libraries/Maven__org_yaml_snakeyaml_1_14.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+ <library name="Maven: org.yaml:snakeyaml:1.14">
+ <CLASSES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/yaml/snakeyaml/1.14/snakeyaml-1.14.jar!/" />
+ </CLASSES>
+ <JAVADOC>
+ <root url="jar://$MAVEN_REPOSITORY$/org/yaml/snakeyaml/1.14/snakeyaml-1.14-javadoc.jar!/" />
+ </JAVADOC>
+ <SOURCES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/yaml/snakeyaml/1.14/snakeyaml-1.14-sources.jar!/" />
+ </SOURCES>
+ </library>
+</component> \ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..3a32f24
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="ASMPluginConfiguration">
+ <asm skipDebug="false" skipFrames="false" skipCode="false" expandFrames="false" />
+ <groovy codeStyle="LEGACY" />
+ </component>
+ <component name="EntryPointsManager">
+ <entry_points version="2.0" />
+ </component>
+ <component name="IdProvider" IDEtalkID="D962DDBDD82F044B23245F018DF130E8" />
+ <component name="MavenProjectsManager">
+ <option name="originalFiles">
+ <list>
+ <option value="$PROJECT_DIR$/pom.xml" />
+ </list>
+ </option>
+ </component>
+ <component name="ProjectRootManager" version="2" languageLevel="JDK_1_6" assert-keyword="true" jdk-15="true" project-jdk-name="1.7" project-jdk-type="JavaSDK">
+ <output url="file://$PROJECT_DIR$/out" />
+ </component>
+</project>
+
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..aa8be29
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="ProjectModuleManager">
+ <modules>
+ <module fileurl="file://$PROJECT_DIR$/PluginAnnotations.iml" filepath="$PROJECT_DIR$/PluginAnnotations.iml" />
+ </modules>
+ </component>
+</project>
+
diff --git a/.idea/scopes/scope_settings.xml b/.idea/scopes/scope_settings.xml
new file mode 100644
index 0000000..922003b
--- /dev/null
+++ b/.idea/scopes/scope_settings.xml
@@ -0,0 +1,5 @@
+<component name="DependencyValidationManager">
+ <state>
+ <option name="SKIP_IMPORT_STATEMENTS" value="false" />
+ </state>
+</component> \ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..def6a6a
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="VcsDirectoryMappings">
+ <mapping directory="" vcs="" />
+ </component>
+</project>
+
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
new file mode 100644
index 0000000..e5453c4
--- /dev/null
+++ b/.idea/workspace.xml
@@ -0,0 +1,764 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="ChangeListManager">
+ <list default="true" id="69ef6a83-e653-462d-8a49-10efc6dea7ee" name="Default" comment="" />
+ <ignored path="PluginAnnotations.iws" />
+ <ignored path=".idea/workspace.xml" />
+ <option name="TRACKING_ENABLED" value="true" />
+ <option name="SHOW_DIALOG" value="false" />
+ <option name="HIGHLIGHT_CONFLICTS" value="true" />
+ <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
+ <option name="LAST_RESOLUTION" value="IGNORE" />
+ </component>
+ <component name="ChangesViewManager" flattened_view="true" show_ignored="false" />
+ <component name="CreatePatchCommitExecutor">
+ <option name="PATCH_PATH" value="" />
+ </component>
+ <component name="DaemonCodeAnalyzer">
+ <disable_hints />
+ </component>
+ <component name="ExecutionTargetManager" SELECTED_TARGET="default_target" />
+ <component name="FavoritesManager">
+ <favorites_list name="PluginAnnotations" />
+ </component>
+ <component name="FileEditorManager">
+ <leaf>
+ <file leaf-file-name="compiler.xml" pinned="false" current="false" current-in-tab="false">
+ <entry file="file://$PROJECT_DIR$/.idea/compiler.xml">
+ <provider selected="true" editor-type-id="text-editor">
+ <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="585">
+ <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ </file>
+ <file leaf-file-name="PluginAnnotationProcessor.java" pinned="false" current="true" current-in-tab="true">
+ <entry file="file://$PROJECT_DIR$/src/main/java/org/bukkit/plugin/java/annotation/PluginAnnotationProcessor.java">
+ <provider selected="true" editor-type-id="text-editor">
+ <state vertical-scroll-proportion="0.55785125" vertical-offset="1935" max-vertical-offset="3000">
+ <caret line="147" column="167" selection-start-line="147" selection-start-column="167" selection-end-line="147" selection-end-column="167" />
+ <folding>
+ <element signature="imports" expanded="true" />
+ </folding>
+ </state>
+ </provider>
+ </entry>
+ </file>
+ <file leaf-file-name="pom.xml" pinned="false" current="false" current-in-tab="false">
+ <entry file="file://$PROJECT_DIR$/pom.xml">
+ <provider selected="true" editor-type-id="text-editor">
+ <state vertical-scroll-proportion="0.0" vertical-offset="1274" max-vertical-offset="1860">
+ <caret line="116" column="20" selection-start-line="116" selection-start-column="20" selection-end-line="116" selection-end-column="20" />
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ </file>
+ <file leaf-file-name="javax.annotation.processing.Processor" pinned="false" current="false" current-in-tab="false">
+ <entry file="file://$PROJECT_DIR$/src/main/resources/META-INF/services/javax.annotation.processing.Processor">
+ <provider selected="true" editor-type-id="text-editor">
+ <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="105">
+ <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ </file>
+ <file leaf-file-name="Main.java" pinned="false" current="false" current-in-tab="false">
+ <entry file="file://$PROJECT_DIR$/src/main/java/org/bukkit/plugin/java/annotation/Main.java">
+ <provider selected="true" editor-type-id="text-editor">
+ <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="900">
+ <caret line="54" column="18" selection-start-line="54" selection-start-column="18" selection-end-line="54" selection-end-column="18" />
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ </file>
+ </leaf>
+ </component>
+ <component name="FindManager">
+ <FindUsagesManager>
+ <setting name="OPEN_NEW_TAB" value="true" />
+ </FindUsagesManager>
+ </component>
+ <component name="IdeDocumentHistory">
+ <option name="changedFiles">
+ <list>
+ <option value="$PROJECT_DIR$/pom.xml" />
+ <option value="$PROJECT_DIR$/src/main/java/org/bukkit/plugin/java/annotation/PluginAnnotationProcessor.java" />
+ </list>
+ </option>
+ </component>
+ <component name="MavenImportPreferences">
+ <option name="importingSettings">
+ <MavenImportingSettings>
+ <option name="importAutomatically" value="true" />
+ </MavenImportingSettings>
+ </option>
+ </component>
+ <component name="ProjectFrameBounds">
+ <option name="y" value="22" />
+ <option name="width" value="1440" />
+ <option name="height" value="874" />
+ </component>
+ <component name="ProjectLevelVcsManager" settingsEditedManually="false">
+ <OptionsSetting value="true" id="Add" />
+ <OptionsSetting value="true" id="Remove" />
+ <OptionsSetting value="true" id="Checkout" />
+ <OptionsSetting value="true" id="Update" />
+ <OptionsSetting value="true" id="Status" />
+ <OptionsSetting value="true" id="Edit" />
+ <ConfirmationsSetting value="0" id="Add" />
+ <ConfirmationsSetting value="0" id="Remove" />
+ </component>
+ <component name="ProjectReloadState">
+ <option name="STATE" value="0" />
+ </component>
+ <component name="ProjectView">
+ <navigator currentView="ProjectPane" proportions="" version="1">
+ <flattenPackages />
+ <showMembers />
+ <showModules />
+ <showLibraryContents />
+ <hideEmptyPackages />
+ <abbreviatePackageNames />
+ <autoscrollToSource />
+ <autoscrollFromSource />
+ <sortByType />
+ </navigator>
+ <panes>
+ <pane id="Scope" />
+ <pane id="ProjectPane">
+ <subPane>
+ <PATH>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="PluginAnnotations" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+ </PATH_ELEMENT>
+ </PATH>
+ <PATH>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="PluginAnnotations" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="PluginAnnotations" />
+ <option name="myItemType" value="com.android.tools.idea.gradle.projectView.AndroidPsiDirectoryNode" />
+ </PATH_ELEMENT>
+ </PATH>
+ <PATH>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="PluginAnnotations" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="PluginAnnotations" />
+ <option name="myItemType" value="com.android.tools.idea.gradle.projectView.AndroidPsiDirectoryNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="src" />
+ <option name="myItemType" value="com.android.tools.idea.gradle.projectView.AndroidPsiDirectoryNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="main" />
+ <option name="myItemType" value="com.android.tools.idea.gradle.projectView.AndroidPsiDirectoryNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="resources" />
+ <option name="myItemType" value="com.android.tools.idea.gradle.projectView.AndroidPsiDirectoryNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="META-INF" />
+ <option name="myItemType" value="com.android.tools.idea.gradle.projectView.AndroidPsiDirectoryNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="services" />
+ <option name="myItemType" value="com.android.tools.idea.gradle.projectView.AndroidPsiDirectoryNode" />
+ </PATH_ELEMENT>
+ </PATH>
+ <PATH>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="PluginAnnotations" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="PluginAnnotations" />
+ <option name="myItemType" value="com.android.tools.idea.gradle.projectView.AndroidPsiDirectoryNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="src" />
+ <option name="myItemType" value="com.android.tools.idea.gradle.projectView.AndroidPsiDirectoryNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="main" />
+ <option name="myItemType" value="com.android.tools.idea.gradle.projectView.AndroidPsiDirectoryNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="java" />
+ <option name="myItemType" value="com.android.tools.idea.gradle.projectView.AndroidPsiDirectoryNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="annotation" />
+ <option name="myItemType" value="com.android.tools.idea.gradle.projectView.AndroidPsiDirectoryNode" />
+ </PATH_ELEMENT>
+ </PATH>
+ </subPane>
+ </pane>
+ <pane id="PackagesPane" />
+ </panes>
+ </component>
+ <component name="PropertiesComponent">
+ <property name="GoToClass.includeLibraries" value="false" />
+ <property name="GoToClass.toSaveIncludeLibraries" value="false" />
+ <property name="GoToFile.includeJavaFiles" value="false" />
+ <property name="MemberChooser.sorted" value="false" />
+ <property name="MemberChooser.showClasses" value="true" />
+ <property name="MemberChooser.copyJavadoc" value="false" />
+ <property name="WebServerToolWindowFactoryState" value="false" />
+ <property name="options.lastSelected" value="org.objectweb.asm.idea.config.ASMPluginComponent" />
+ <property name="options.splitter.main.proportions" value="0.3" />
+ <property name="options.splitter.details.proportions" value="0.2" />
+ <property name="options.searchVisible" value="true" />
+ <property name="project.structure.last.edited" value="Modules" />
+ <property name="project.structure.proportion" value="0.0" />
+ <property name="project.structure.side.proportion" value="0.0" />
+ <property name="FullScreen" value="false" />
+ <property name="recentsLimit" value="5" />
+ <property name="restartRequiresConfirmation" value="true" />
+ <property name="dynamic.classpath" value="false" />
+ </component>
+ <component name="RecentsManager">
+ <key name="CopyFile.RECENT_KEYS">
+ <recent name="$PROJECT_DIR$/src/main" />
+ </key>
+ </component>
+ <component name="RunManager" selected="Maven.install">
+ <configuration default="true" type="JUnit" factoryName="JUnit">
+ <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
+ <module name="" />
+ <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
+ <option name="ALTERNATIVE_JRE_PATH" />
+ <option name="PACKAGE_NAME" />
+ <option name="MAIN_CLASS_NAME" />
+ <option name="METHOD_NAME" />
+ <option name="TEST_OBJECT" value="class" />
+ <option name="VM_PARAMETERS" value="-ea" />
+ <option name="PARAMETERS" />
+ <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
+ <option name="ENV_VARIABLES" />
+ <option name="PASS_PARENT_ENVS" value="true" />
+ <option name="TEST_SEARCH_SCOPE">
+ <value defaultName="moduleWithDependencies" />
+ </option>
+ <envs />
+ <patterns />
+ <method />
+ </configuration>
+ <configuration default="true" type="Remote" factoryName="Remote">
+ <option name="USE_SOCKET_TRANSPORT" value="true" />
+ <option name="SERVER_MODE" value="false" />
+ <option name="SHMEM_ADDRESS" value="javadebug" />
+ <option name="HOST" value="localhost" />
+ <option name="PORT" value="5005" />
+ <method />
+ </configuration>
+ <configuration default="true" type="AndroidRunConfigurationType" factoryName="Android Application">
+ <module name="" />
+ <option name="ACTIVITY_CLASS" value="" />
+ <option name="MODE" value="default_activity" />
+ <option name="DEPLOY" value="true" />
+ <option name="ARTIFACT_NAME" value="" />
+ <option name="TARGET_SELECTION_MODE" value="EMULATOR" />
+ <option name="USE_LAST_SELECTED_DEVICE" value="false" />
+ <option name="PREFERRED_AVD" value="" />
+ <option name="USE_COMMAND_LINE" value="true" />
+ <option name="COMMAND_LINE" value="" />
+ <option name="WIPE_USER_DATA" value="false" />
+ <option name="DISABLE_BOOT_ANIMATION" value="false" />
+ <option name="NETWORK_SPEED" value="full" />
+ <option name="NETWORK_LATENCY" value="none" />
+ <option name="CLEAR_LOGCAT" value="false" />
+ <option name="SHOW_LOGCAT_AUTOMATICALLY" value="true" />
+ <option name="FILTER_LOGCAT_AUTOMATICALLY" value="true" />
+ <method />
+ </configuration>
+ <configuration default="true" type="CabalRunConfiguration" factoryName="Haskell">
+ <module name="" />
+ <setting name="executableName" value="" />
+ <setting name="parameters" value="" />
+ <setting name="workingDir" value="" />
+ <environmetVariables />
+ <method />
+ </configuration>
+ <configuration default="true" type="#org.jetbrains.idea.devkit.run.PluginConfigurationType" factoryName="Plugin">
+ <module name="" />
+ <option name="VM_PARAMETERS" value="-Xmx512m -Xms256m -XX:MaxPermSize=250m -ea" />
+ <option name="PROGRAM_PARAMETERS" />
+ <method />
+ </configuration>
+ <configuration default="true" type="GrailsRunConfigurationType" factoryName="Grails">
+ <module name="" />
+ <setting name="vmparams" value="" />
+ <setting name="cmdLine" value="run-app" />
+ <setting name="depsClasspath" value="false" />
+ <setting name="passParentEnv" value="true" />
+ <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
+ <setting name="launchBrowser" value="false" />
+ <method />
+ </configuration>
+ <configuration default="true" type="uTestRunConfiguration" factoryName="utest">
+ <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
+ <extension name="scalaCoverage" />
+ <module name="" />
+ <setting name="path" value="" />
+ <setting name="package" value="" />
+ <setting name="vmparams" value="" />
+ <setting name="params" value="" />
+ <setting name="workingDirectory" value="$PROJECT_DIR$" />
+ <setting name="searchForTest" value="Across module dependencies" />
+ <setting name="testName" value="" />
+ <setting name="testKind" value="Class" />
+ <setting name="showProgressMessages" value="true" />
+ <method />
+ </configuration>
+ <configuration default="true" type="MavenRunConfiguration" factoryName="Maven">
+ <MavenSettings>
+ <option name="myGeneralSettings" />
+ <option name="myRunnerSettings" />
+ <option name="myRunnerParameters">
+ <MavenRunnerParameters>
+ <option name="profiles">
+ <set />
+ </option>
+ <option name="goals">
+ <list />
+ </option>
+ <option name="profilesMap">
+ <map />
+ </option>
+ <option name="resolveToWorkspace" value="false" />
+ <option name="workingDirPath" value="" />
+ </MavenRunnerParameters>
+ </option>
+ </MavenSettings>
+ <method />
+ </configuration>
+ <configuration default="true" type="ScalaTestRunConfiguration" factoryName="ScalaTest">
+ <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
+ <extension name="scalaCoverage" />
+ <module name="" />
+ <setting name="path" value="" />
+ <setting name="package" value="" />
+ <setting name="vmparams" value="" />
+ <setting name="params" value="" />
+ <setting name="workingDirectory" value="$PROJECT_DIR$" />
+ <setting name="searchForTest" value="Across module dependencies" />
+ <setting name="testName" value="" />
+ <setting name="testKind" value="Class" />
+ <setting name="showProgressMessages" value="true" />
+ <method />
+ </configuration>
+ <configuration default="true" type="Application" factoryName="Application">
+ <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
+ <option name="MAIN_CLASS_NAME" />
+ <option name="VM_PARAMETERS" />
+ <option name="PROGRAM_PARAMETERS" />
+ <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
+ <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
+ <option name="ALTERNATIVE_JRE_PATH" />
+ <option name="ENABLE_SWING_INSPECTOR" value="false" />
+ <option name="ENV_VARIABLES" />
+ <option name="PASS_PARENT_ENVS" value="true" />
+ <module name="" />
+ <envs />
+ <method />
+ </configuration>
+ <configuration default="true" type="TestNG" factoryName="TestNG">
+ <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
+ <module name="" />
+ <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
+ <option name="ALTERNATIVE_JRE_PATH" />
+ <option name="SUITE_NAME" />
+ <option name="PACKAGE_NAME" />
+ <option name="MAIN_CLASS_NAME" />
+ <option name="METHOD_NAME" />
+ <option name="GROUP_NAME" />
+ <option name="TEST_OBJECT" value="CLASS" />
+ <option name="VM_PARAMETERS" value="-ea" />
+ <option name="PARAMETERS" />
+ <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
+ <option name="OUTPUT_DIRECTORY" />
+ <option name="ANNOTATION_TYPE" />
+ <option name="ENV_VARIABLES" />
+ <option name="PASS_PARENT_ENVS" value="true" />
+ <option name="TEST_SEARCH_SCOPE">
+ <value defaultName="moduleWithDependencies" />
+ </option>
+ <option name="USE_DEFAULT_REPORTERS" value="false" />
+ <option name="PROPERTIES_FILE" />
+ <envs />
+ <properties />
+ <listeners />
+ <method />
+ </configuration>
+ <configuration default="true" type="FlexUnitRunConfigurationType" factoryName="FlexUnit" appDescriptorForEmulator="Android" class_name="" emulatorAdlOptions="" method_name="" package_name="" scope="Class">
+ <option name="BCName" value="" />
+ <option name="launcherParameters">
+ <LauncherParameters>
+ <option name="browser" value="a7bb68e0-33c0-4d6f-a81a-aac1fdb870c8" />
+ <option name="launcherType" value="OSDefault" />
+ <option name="newPlayerInstance" value="false" />
+ <option name="playerPath" value="/Applications/Flash Player Debugger.app" />
+ </LauncherParameters>
+ </option>
+ <option name="moduleName" value="" />
+ <option name="trusted" value="true" />
+ <method />
+ </configuration>
+ <configuration default="true" type="AndroidTestRunConfigurationType" factoryName="Android Tests">
+ <module name="" />
+ <option name="TESTING_TYPE" value="0" />
+ <option name="INSTRUMENTATION_RUNNER_CLASS" value="" />
+ <option name="METHOD_NAME" value="" />
+ <option name="CLASS_NAME" value="" />
+ <option name="PACKAGE_NAME" value="" />
+ <option name="TARGET_SELECTION_MODE" value="EMULATOR" />
+ <option name="USE_LAST_SELECTED_DEVICE" value="false" />
+ <option name="PREFERRED_AVD" value="" />
+ <option name="USE_COMMAND_LINE" value="true" />
+ <option name="COMMAND_LINE" value="" />
+ <option name="WIPE_USER_DATA" value="false" />
+ <option name="DISABLE_BOOT_ANIMATION" value="false" />
+ <option name="NETWORK_SPEED" value="full" />
+ <option name="NETWORK_LATENCY" value="none" />
+ <option name="CLEAR_LOGCAT" value="false" />
+ <option name="SHOW_LOGCAT_AUTOMATICALLY" value="true" />
+ <option name="FILTER_LOGCAT_AUTOMATICALLY" value="true" />
+ <method />
+ </configuration>
+ <configuration default="true" type="FlashRunConfigurationType" factoryName="Flash App">
+ <option name="BCName" value="" />
+ <option name="IOSSimulatorSdkPath" value="" />
+ <option name="adlOptions" value="" />
+ <option name="airProgramParameters" value="" />
+ <option name="appDescriptorForEmulator" value="Android" />
+ <option name="debugTransport" value="USB" />
+ <option name="debuggerSdkRaw" value="BC SDK" />
+ <option name="emulator" value="NexusOne" />
+ <option name="emulatorAdlOptions" value="" />
+ <option name="fastPackaging" value="true" />
+ <option name="fullScreenHeight" value="0" />
+ <option name="fullScreenWidth" value="0" />
+ <option name="launchUrl" value="false" />
+ <option name="launcherParameters">
+ <LauncherParameters>
+ <option name="browser" value="a7bb68e0-33c0-4d6f-a81a-aac1fdb870c8" />
+ <option name="launcherType" value="OSDefault" />
+ <option name="newPlayerInstance" value="false" />
+ <option name="playerPath" value="/Applications/Flash Player Debugger.app" />
+ </LauncherParameters>
+ </option>
+ <option name="mobileRunTarget" value="Emulator" />
+ <option name="moduleName" value="" />
+ <option name="overriddenMainClass" value="" />
+ <option name="overriddenOutputFileName" value="" />
+ <option name="overrideMainClass" value="false" />
+ <option name="runTrusted" value="true" />
+ <option name="screenDpi" value="0" />
+ <option name="screenHeight" value="0" />
+ <option name="screenWidth" value="0" />
+ <option name="url" value="http://" />
+ <option name="usbDebugPort" value="7936" />
+ <method />
+ </configuration>
+ <configuration default="true" type="JavascriptDebugType" factoryName="JavaScript Debug">
+ <method />
+ </configuration>
+ <configuration default="true" type="Applet" factoryName="Applet">
+ <module name="" />
+ <option name="MAIN_CLASS_NAME" />
+ <option name="HTML_FILE_NAME" />
+ <option name="HTML_USED" value="false" />
+ <option name="WIDTH" value="400" />
+ <option name="HEIGHT" value="300" />
+ <option name="POLICY_FILE" value="$APPLICATION_HOME_DIR$/bin/appletviewer.policy" />
+ <option name="VM_PARAMETERS" />
+ <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
+ <option name="ALTERNATIVE_JRE_PATH" />
+ <method />
+ </configuration>
+ <configuration default="true" type="Specs2RunConfiguration" factoryName="Specs2">
+ <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
+ <extension name="scalaCoverage" />
+ <module name="" />
+ <setting name="path" value="" />
+ <setting name="package" value="" />
+ <setting name="vmparams" value="" />
+ <setting name="params" value="" />
+ <setting name="workingDirectory" value="$PROJECT_DIR$" />
+ <setting name="searchForTest" value="Across module dependencies" />
+ <setting name="testName" value="" />
+ <setting name="testKind" value="Class" />
+ <setting name="showProgressMessages" value="true" />
+ <method />
+ </configuration>
+ <configuration default="true" type="CucumberJavaRunConfigurationType" factoryName="Cucumber java">
+ <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
+ <option name="myFilePath" />
+ <option name="GLUE" />
+ <option name="myNameFilter" />
+ <option name="myGeneratedName" />
+ <option name="MAIN_CLASS_NAME" />
+ <option name="VM_PARAMETERS" />
+ <option name="PROGRAM_PARAMETERS" />
+ <option name="WORKING_DIRECTORY" />
+ <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
+ <option name="ALTERNATIVE_JRE_PATH" />
+ <option name="ENABLE_SWING_INSPECTOR" value="false" />
+ <option name="ENV_VARIABLES" />
+ <option name="PASS_PARENT_ENVS" value="true" />
+ <module name="" />
+ <envs />
+ <method />
+ </configuration>
+ <configuration default="false" name="install" type="MavenRunConfiguration" factoryName="Maven">
+ <MavenSettings>
+ <option name="myGeneralSettings" />
+ <option name="myRunnerSettings" />
+ <option name="myRunnerParameters">
+ <MavenRunnerParameters>
+ <option name="profiles">
+ <set />
+ </option>
+ <option name="goals">
+ <list>
+ <option value="clean" />
+ <option value="install" />
+ </list>
+ </option>
+ <option name="profilesMap">
+ <map />
+ </option>
+ <option name="resolveToWorkspace" value="false" />
+ <option name="workingDirPath" value="$PROJECT_DIR$" />
+ </MavenRunnerParameters>
+ </option>
+ </MavenSettings>
+ <RunnerSettings RunnerId="Run" />
+ <ConfigurationWrapper RunnerId="Run" />
+ <method />
+ </configuration>
+ <list size="1">
+ <item index="0" class="java.lang.String" itemvalue="Maven.install" />
+ </list>
+ <configuration name="&lt;template&gt;" type="WebApp" default="true" selected="false">
+ <Host>localhost</Host>
+ <Port>5050</Port>
+ </configuration>
+ </component>
+ <component name="ShelveChangesManager" show_recycled="false" />
+ <component name="TaskManager">
+ <task active="true" id="Default" summary="Default task">
+ <changelist id="69ef6a83-e653-462d-8a49-10efc6dea7ee" name="Default" comment="" />
+ <created>1424030427326</created>
+ <updated>1424030427326</updated>
+ <workItem from="1424030429054" duration="2604000" />
+ <workItem from="1424310505837" duration="2354000" />
+ </task>
+ <servers />
+ </component>
+ <component name="TimeTrackingManager">
+ <option name="totallyTimeSpent" value="4958000" />
+ </component>
+ <component name="ToolWindowManager">
+ <frame x="0" y="22" width="1440" height="874" extended-state="0" />
+ <editor active="false" />
+ <layout>
+ <window_info id="Changes" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
+ <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
+ <window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
+ <window_info id="IDEtalk" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
+ <window_info id="Palette&#9;" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
+ <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="SLIDING" type="SLIDING" visible="false" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
+ <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
+ <window_info id="Application Servers" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
+ <window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
+ <window_info id="Kotlin Bytecode" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
+ <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32992327" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
+ <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
+ <window_info id="Terminal" active="true" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.3286445" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
+ <window_info id="Designer" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
+ <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.24964234" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
+ <window_info id="Cabal" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
+ <window_info id="IDEtalk Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
+ <window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
+ <window_info id="ASM" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
+ <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
+ <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
+ <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
+ <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
+ <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
+ <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
+ <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
+ <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
+ <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
+ </layout>
+ </component>
+ <component name="Vcs.Log.UiProperties">
+ <option name="RECENTLY_FILTERED_USER_GROUPS">
+ <collection />
+ </option>
+ <option name="RECENTLY_FILTERED_BRANCH_GROUPS">
+ <collection />
+ </option>
+ </component>
+ <component name="VcsContentAnnotationSettings">
+ <option name="myLimit" value="2678400000" />
+ </component>
+ <component name="VcsManagerConfiguration">
+ <option name="myTodoPanelSettings">
+ <TodoPanelSettings />
+ </option>
+ </component>
+ <component name="XDebuggerManager">
+ <breakpoint-manager />
+ </component>
+ <component name="antWorkspaceConfiguration">
+ <option name="IS_AUTOSCROLL_TO_SOURCE" value="false" />
+ <option name="FILTER_TARGETS" value="false" />
+ </component>
+ <component name="editorHistoryManager">
+ <entry file="file://$PROJECT_DIR$/.idea/compiler.xml">
+ <provider selected="true" editor-type-id="text-editor">
+ <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="756">
+ <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/src/main/java/org/bukkit/plugin/java/annotation/Main.java">
+ <provider selected="true" editor-type-id="text-editor">
+ <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="900">
+ <caret line="54" column="18" selection-start-line="54" selection-start-column="18" selection-end-line="54" selection-end-column="18" />
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/pom.xml">
+ <provider selected="true" editor-type-id="text-editor">
+ <state vertical-scroll-proportion="0.0" vertical-offset="1274" max-vertical-offset="1860">
+ <caret line="116" column="20" selection-start-line="116" selection-start-column="20" selection-end-line="116" selection-end-column="20" />
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/src/main/resources/META-INF/services/javax.annotation.processing.Processor">
+ <provider selected="true" editor-type-id="text-editor">
+ <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="496">
+ <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/src/main/java/org/bukkit/plugin/java/annotation/PluginAnnotationProcessor.java">
+ <provider selected="true" editor-type-id="text-editor">
+ <state vertical-scroll-proportion="0.55785125" vertical-offset="1935" max-vertical-offset="3000">
+ <caret line="147" column="167" selection-start-line="147" selection-start-column="167" selection-end-line="147" selection-end-column="167" />
+ <folding>
+ <element signature="imports" expanded="true" />
+ </folding>
+ </state>
+ </provider>
+ </entry>
+ </component>
+ <component name="masterDetails">
+ <states>
+ <state key="ArtifactsStructureConfigurable.UI">
+ <settings>
+ <artifact-editor />
+ <splitter-proportions>
+ <option name="proportions">
+ <list>
+ <option value="0.2" />
+ </list>
+ </option>
+ </splitter-proportions>
+ </settings>
+ </state>
+ <state key="FacetStructureConfigurable.UI">
+ <settings>
+ <last-edited>No facets are configured</last-edited>
+ <splitter-proportions>
+ <option name="proportions">
+ <list>
+ <option value="0.2" />
+ </list>
+ </option>
+ </splitter-proportions>
+ </settings>
+ </state>
+ <state key="GlobalLibrariesConfigurable.UI">
+ <settings>
+ <last-edited>MayhemData</last-edited>
+ <splitter-proportions>
+ <option name="proportions">
+ <list>
+ <option value="0.2" />
+ </list>
+ </option>
+ </splitter-proportions>
+ </settings>
+ </state>
+ <state key="JdkListConfigurable.UI">
+ <settings>
+ <last-edited>1.7</last-edited>
+ <splitter-proportions>
+ <option name="proportions">
+ <list>
+ <option value="0.2" />
+ </list>
+ </option>
+ </splitter-proportions>
+ </settings>
+ </state>
+ <state key="ModuleStructureConfigurable.UI">
+ <settings>
+ <last-edited>PluginAnnotations</last-edited>
+ <splitter-proportions>
+ <option name="proportions">
+ <list>
+ <option value="0.2" />
+ <option value="0.6" />
+ </list>
+ </option>
+ </splitter-proportions>
+ </settings>
+ </state>
+ <state key="ProjectJDKs.UI">
+ <settings>
+ <last-edited>1.7</last-edited>
+ <splitter-proportions>
+ <option name="proportions">
+ <list>
+ <option value="0.2" />
+ </list>
+ </option>
+ </splitter-proportions>
+ </settings>
+ </state>
+ <state key="ProjectLibrariesConfigurable.UI">
+ <settings>
+ <splitter-proportions>
+ <option name="proportions">
+ <list>
+ <option value="0.2" />
+ </list>
+ </option>
+ </splitter-proportions>
+ </settings>
+ </state>
+ </states>
+ </component>
+</project>
+
diff --git a/PluginAnnotations.iml b/PluginAnnotations.iml
new file mode 100644
index 0000000..d979331
--- /dev/null
+++ b/PluginAnnotations.iml
@@ -0,0 +1,24 @@
+<?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_6" inherit-compiler-output="false">
+ <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/META-INF" type="java-resource" />
+ <excludeFolder url="file://$MODULE_DIR$/target" />
+ </content>
+ <orderEntry type="inheritedJdk" />
+ <orderEntry type="sourceFolder" forTests="false" />
+ <orderEntry type="library" name="Maven: org.bukkit:bukkit:1.8-R0.1-SNAPSHOT" level="project" />
+ <orderEntry type="library" name="Maven: commons-lang:commons-lang:2.6" level="project" />
+ <orderEntry type="library" name="Maven: com.googlecode.json-simple:json-simple:1.1.1" level="project" />
+ <orderEntry type="library" name="Maven: junit:junit:4.10" level="project" />
+ <orderEntry type="library" name="Maven: org.hamcrest:hamcrest-core:1.1" level="project" />
+ <orderEntry type="library" name="Maven: com.google.guava:guava:17.0" level="project" />
+ <orderEntry type="library" name="Maven: org.avaje:ebean:2.8.1" level="project" />
+ <orderEntry type="library" name="Maven: javax.persistence:persistence-api:1.0" level="project" />
+ <orderEntry type="library" name="Maven: org.yaml:snakeyaml:1.14" level="project" />
+ </component>
+</module>
+
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..47f56c1
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,119 @@
+<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>
+
+ <parent>
+ <groupId>org.sonatype.oss</groupId>
+ <artifactId>oss-parent</artifactId>
+ <version>9</version>
+ </parent>
+
+ <groupId>org.bukkit</groupId>
+ <artifactId>plugin-annotations</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ <packaging>jar</packaging>
+
+ <name>Plugin Annotations</name>
+ <url>http://www.spigotmc.org/</url>
+ <description>A annotaion-based compiletime plugin.yml generator.</description>
+
+ <properties>
+ <maven.compiler.source>1.6</maven.compiler.source>
+ <maven.compiler.target>1.6</maven.compiler.target>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ </properties>
+
+ <!-- just until we get deployment to central approved -->
+ <distributionManagement>
+ <repository>
+ <id>spigotmc-releases</id>
+ <url>https://hub.spigotmc.org/nexus/content/repositories/releases/</url>
+ </repository>
+ <snapshotRepository>
+ <id>spigotmc-releases</id>
+ <url>https://hub.spigotmc.org/nexus/content/repositories/snapshots/</url>
+ </snapshotRepository>
+ </distributionManagement>
+
+ <!-- required until fixed plexus-compiler-eclipse is deployed -->
+ <pluginRepositories>
+ <pluginRepository>
+ <id>spigotmc-public</id>
+ <url>https://hub.spigotmc.org/nexus/content/groups/public/</url>
+ </pluginRepository>
+ </pluginRepositories>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.bukkit</groupId>
+ <artifactId>bukkit</artifactId>
+ <version>1.8-R0.1-SNAPSHOT</version>
+ <scope>compile</scope>
+ </dependency>
+ <!-- we don't currently have tests
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.12</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.hamcrest</groupId>
+ <artifactId>hamcrest-library</artifactId>
+ <version>1.3</version>
+ <scope>test</scope>
+ </dependency>
+ -->
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <!-- versions after this appear to be broken -->
+ <version>3.1</version>
+ <configuration>
+ <!-- we use the Eclipse compiler as it doesn't need a JDK -->
+ <compilerId>eclipse</compilerId>
+ <!-- source and target are ignored if this isn't true -->
+ <optimize>true</optimize>
+ </configuration>
+ <dependencies>
+ <!-- we need our custom version as it fixes some bugs on case sensitive file systems -->
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-compiler-eclipse</artifactId>
+ <version>2.5.0-spigotmc</version>
+ </dependency>
+ </dependencies>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>animal-sniffer-maven-plugin</artifactId>
+ <version>1.13</version>
+ <executions>
+ <execution>
+ <phase>process-classes</phase>
+ <goals>
+ <goal>check</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <signature>
+ <groupId>org.codehaus.mojo.signature</groupId>
+ <artifactId>java16</artifactId>
+ <version>1.1</version>
+ </signature>
+ </configuration>
+ </plugin>
+ </plugins>
+ <resources>
+ <resource>
+ <directory>src/main/resources/META-INF</directory>
+ <targetPath>META-INF</targetPath>
+ </resource>
+ </resources>
+ </build>
+</project> \ No newline at end of file
diff --git a/src/main/java/org/bukkit/plugin/java/annotation/Author.java b/src/main/java/org/bukkit/plugin/java/annotation/Author.java
new file mode 100644
index 0000000..d226d7d
--- /dev/null
+++ b/src/main/java/org/bukkit/plugin/java/annotation/Author.java
@@ -0,0 +1,18 @@
+package org.bukkit.plugin.java.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Target;
+
+/**
+ * Part of the plugin annotations framework.
+ * <p>
+ * Represents the author(s) of the plugin. Translates to {@code author}
+ * in plugin.yml if a single author, otherwise {@code authors}
+ */
+
+@Target(ElementType.TYPE)
+public @interface Author {
+
+ public String[] value();
+
+}
diff --git a/src/main/java/org/bukkit/plugin/java/annotation/Commands.java b/src/main/java/org/bukkit/plugin/java/annotation/Commands.java
new file mode 100644
index 0000000..c730b59
--- /dev/null
+++ b/src/main/java/org/bukkit/plugin/java/annotation/Commands.java
@@ -0,0 +1,52 @@
+package org.bukkit.plugin.java.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Target;
+
+/**
+ * Part of the plugin annotations framework.
+ * <p>
+ * Represents a list of this plugin's registered commands.
+ */
+
+@Target(ElementType.TYPE)
+public @interface Commands { // TODO: in java 8, make repeatable.
+
+ public Cmd[] value();
+
+ @Target({})
+ public static @interface Cmd {
+
+ /**
+ * This command's name.
+ */
+ public String value();
+
+ /**
+ * This command's description.
+ */
+
+ public String desc() default "";
+
+ /**
+ * This command's aliases.
+ */
+ public String[] aliases() default {};
+
+ /**
+ * This command's permission node.
+ */
+ public String permission() default "";
+
+ /**
+ * This command's permission-check-fail message.
+ */
+ public String permissionMessage() default "";
+
+ /**
+ * This command's usage message.
+ */
+ public String usage() default "";
+ }
+
+}
diff --git a/src/main/java/org/bukkit/plugin/java/annotation/DependsOn.java b/src/main/java/org/bukkit/plugin/java/annotation/DependsOn.java
new file mode 100644
index 0000000..892a267
--- /dev/null
+++ b/src/main/java/org/bukkit/plugin/java/annotation/DependsOn.java
@@ -0,0 +1,17 @@
+package org.bukkit.plugin.java.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Target;
+
+/**
+ * Part of the plugin annotations framework.
+ * <p>
+ * Represents the plugin's hard dependencies.
+ */
+
+@Target(ElementType.TYPE)
+public @interface DependsOn {
+
+ public String[] value();
+
+}
diff --git a/src/main/java/org/bukkit/plugin/java/annotation/Description.java b/src/main/java/org/bukkit/plugin/java/annotation/Description.java
new file mode 100644
index 0000000..4595d06
--- /dev/null
+++ b/src/main/java/org/bukkit/plugin/java/annotation/Description.java
@@ -0,0 +1,17 @@
+package org.bukkit.plugin.java.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Target;
+
+/**
+ * Part of the plugin annotations framework.
+ * <p>
+ * Represents a short description for the plugin.
+ */
+
+@Target(ElementType.TYPE)
+public @interface Description {
+
+ public String value();
+
+}
diff --git a/src/main/java/org/bukkit/plugin/java/annotation/LoadBefore.java b/src/main/java/org/bukkit/plugin/java/annotation/LoadBefore.java
new file mode 100644
index 0000000..d0802f4
--- /dev/null
+++ b/src/main/java/org/bukkit/plugin/java/annotation/LoadBefore.java
@@ -0,0 +1,17 @@
+package org.bukkit.plugin.java.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Target;
+
+/**
+ * Part of the plugin annotations framework.
+ * <p>
+ * Represents the plugins this plugin should be loaded before
+ */
+
+@Target(ElementType.TYPE)
+public @interface LoadBefore {
+
+ public String[] value();
+
+}
diff --git a/src/main/java/org/bukkit/plugin/java/annotation/LoadOn.java b/src/main/java/org/bukkit/plugin/java/annotation/LoadOn.java
new file mode 100644
index 0000000..9e5372d
--- /dev/null
+++ b/src/main/java/org/bukkit/plugin/java/annotation/LoadOn.java
@@ -0,0 +1,18 @@
+package org.bukkit.plugin.java.annotation;
+
+import org.bukkit.plugin.PluginLoadOrder;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Target;
+
+/**
+ * Part of the plugin annotations framework.
+ * <p>
+ * Represents the optional load order of the plugin.
+ */
+
+@Target(ElementType.TYPE)
+public @interface LoadOn {
+
+ public PluginLoadOrder value();
+}
diff --git a/src/main/java/org/bukkit/plugin/java/annotation/LogPrefix.java b/src/main/java/org/bukkit/plugin/java/annotation/LogPrefix.java
new file mode 100644
index 0000000..e8d6ed4
--- /dev/null
+++ b/src/main/java/org/bukkit/plugin/java/annotation/LogPrefix.java
@@ -0,0 +1,16 @@
+package org.bukkit.plugin.java.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Target;
+
+/**
+ * Part of the plugin annotations framework.
+ * <p>
+ * Represents the prefix used for the plugin's log entries, defaults to plugin name.
+ */
+
+@Target(ElementType.TYPE)
+public @interface LogPrefix {
+
+ public String value();
+}
diff --git a/src/main/java/org/bukkit/plugin/java/annotation/Main.java b/src/main/java/org/bukkit/plugin/java/annotation/Main.java
new file mode 100644
index 0000000..ebef467
--- /dev/null
+++ b/src/main/java/org/bukkit/plugin/java/annotation/Main.java
@@ -0,0 +1,55 @@
+package org.bukkit.plugin.java.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Target;
+
+/**
+ * Marks this class (which <i>must</i> subclass JavaPlugin) as this plugin's main class.
+ * <p>
+ * This class is part of the plugin annotation framework that automates plugin.yml.
+ * <p>
+ * Example:
+ * <pre>
+ * <code>{@literal @}Main
+ * {@literal @}Name("Test")
+ * {@literal @}Version("v1.0")
+ * {@literal @}Description("A test plugin.")
+ * {@literal @}LoadOn(PluginLoadOrder.POSTWORLD)
+ * {@literal @}Author("md_5")
+ * {@literal @}Website("spigotmc.org")
+ * {@literal @}UsesDatabase
+ * {@literal @}DependsOn({"WorldEdit", "Towny"})
+ * {@literal @}SoftDependsOn("Vault")
+ * {@literal @}LogPrefix("Testing")
+ * {@literal @}LoadBefore("Essentials")
+ * {@literal @}Commands({
+ * {@literal @}Cmd(
+ * value = "foo",
+ * desc = "Foo command",
+ * aliases = {"foobar", "fubar"},
+ * permission = "test.foo",
+ * permissionMessage = "You do not have permission!",
+ * usage = "/<command> [test|stop]"
+ * ),
+ * {@literal @}Cmd("bar")
+ * })
+ * {@literal @}Permissions({
+ * {@literal @}Perm(
+ * value = "test.foo",
+ * desc = "Allows foo command",
+ * defaultValue = PermissionDefault.OP,
+ * ),
+ * {@literal @}Perm(
+ * value = "test.*",
+ * desc = "Wildcard perm",
+ * defaultValue = PermissionDefault.OP,
+ * children = {"test.foo"}
+ * )
+ * })
+ * public class Test extends JavaPlugin { ... }
+ * </code>
+ * </pre>
+ */
+
+@Target(ElementType.TYPE)
+public @interface Main {}
diff --git a/src/main/java/org/bukkit/plugin/java/annotation/Name.java b/src/main/java/org/bukkit/plugin/java/annotation/Name.java
new file mode 100644
index 0000000..2ef196b
--- /dev/null
+++ b/src/main/java/org/bukkit/plugin/java/annotation/Name.java
@@ -0,0 +1,18 @@
+package org.bukkit.plugin.java.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Target;
+
+/**
+ * Part of the plugin annotations framework.
+ * <p>
+ * Represents the name of the plugin.
+ * <p>
+ * If not present in a class annotated with {@link Main} the name defaults to Class.getSimpleName() and will emmit a warning.
+ */
+
+@Target(ElementType.TYPE)
+public @interface Name {
+
+ public String value();
+}
diff --git a/src/main/java/org/bukkit/plugin/java/annotation/Permissions.java b/src/main/java/org/bukkit/plugin/java/annotation/Permissions.java
new file mode 100644
index 0000000..c6097c3
--- /dev/null
+++ b/src/main/java/org/bukkit/plugin/java/annotation/Permissions.java
@@ -0,0 +1,50 @@
+package org.bukkit.plugin.java.annotation;
+
+import org.bukkit.permissions.PermissionDefault;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Target;
+
+/**
+ * Part of the plugin annotations framework.
+ * <p>
+ * Represents a list of this plugin's registered permissions.
+ */
+
+@Target(ElementType.TYPE)
+public @interface Permissions { // TODO: in java 8, make repeatable.
+
+ public Perm[] value();
+
+ @Target({})
+ public static @interface Perm {
+
+ /**
+ * This perm's name.
+ */
+ public String value();
+
+ /**
+ * This perm's description.
+ */
+
+ public String desc() default "";
+
+ /**
+ * This perm's default.
+ */
+ public PermissionDefault defaultValue() default PermissionDefault.OP;
+
+ /**
+ * This perm's child nodes
+ */
+ public String[] children() default {};
+
+ /**
+ * This perms's negated child nodes
+ */
+ public String[] antichildren() default {};
+
+ }
+
+}
diff --git a/src/main/java/org/bukkit/plugin/java/annotation/PluginAnnotationProcessor.java b/src/main/java/org/bukkit/plugin/java/annotation/PluginAnnotationProcessor.java
new file mode 100644
index 0000000..9266c97
--- /dev/null
+++ b/src/main/java/org/bukkit/plugin/java/annotation/PluginAnnotationProcessor.java
@@ -0,0 +1,194 @@
+package org.bukkit.plugin.java.annotation;
+
+import org.bukkit.plugin.PluginLoadOrder;
+import org.bukkit.plugin.java.JavaPlugin;
+import org.yaml.snakeyaml.Yaml;
+
+import javax.annotation.processing.*;
+import javax.lang.model.SourceVersion;
+import javax.lang.model.element.Element;
+import javax.lang.model.element.Modifier;
+import javax.lang.model.element.PackageElement;
+import javax.lang.model.element.TypeElement;
+import javax.lang.model.type.TypeMirror;
+import javax.tools.Diagnostic;
+import javax.tools.FileObject;
+import javax.tools.StandardLocation;
+import java.io.IOException;
+import java.io.StringWriter;
+import java.io.Writer;
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Method;
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Set;
+
+@SupportedAnnotationTypes("org.bukkit.plugin.java.annotation.*")
+@SupportedSourceVersion(SourceVersion.RELEASE_6)
+public class PluginAnnotationProcessor extends AbstractProcessor {
+
+ private boolean hasMainBeenFound = false;
+
+ private static final DateFormat dFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
+
+ @Override
+ public boolean process(Set<? extends TypeElement> annots, RoundEnvironment rEnv) {
+ Element main = null;
+ for(Element el : rEnv.getElementsAnnotatedWith(Main.class)) {
+ if(main != null){
+ raiseError("More than one class with @Main found, aborting!");
+ return false;
+ }
+ main = el;
+ }
+
+ if(main == null) return false;
+
+ if(hasMainBeenFound){
+ raiseError("More than one class with @Main found, aborting!");
+ return false;
+ }
+ hasMainBeenFound = true;
+
+ TypeElement mainType;
+ if(main instanceof TypeElement){
+ mainType = (TypeElement) main;
+ } else {
+ raiseError("Element annotated with @Main is not a type!");
+ return false;
+ }
+
+ if(!(mainType.getEnclosingElement() instanceof PackageElement) && !mainType.getModifiers().contains(Modifier.STATIC)){
+ raiseError("Element annotated with @Main is not top-level or static nested!");
+ return false;
+ }
+
+ if(!processingEnv.getTypeUtils().isSubtype(mainType.asType(), fromClass(JavaPlugin.class))){
+ raiseError("Class annotated with @Main is not an subclass of JavaPlugin!");
+ }
+
+ Map<String, Object> yml = new HashMap<String, Object>();
+
+ final String mainName = mainType.getQualifiedName().toString();
+ yml.put("main", mainName);
+
+ processAndPut(yml, "name", mainType, mainName.substring(mainName.lastIndexOf('.') + 1), Name.class, String.class);
+
+ processAndPut(yml, "version", mainType, Version.DEFAULT_VERSION, Version.class, String.class);
+
+ processAndPut(yml, "description", mainType, null, Description.class, String.class);
+
+ processAndPut(yml, "load", mainType, null, LoadOn.class, String.class);
+
+ {
+ String[] authors = process(mainType, new String[0], Author.class, String[].class);
+ switch(authors.length) {
+ case 0: break;
+ case 1: yml.put("author", authors[0]); break;
+ default: yml.put("authors", authors); break;
+ }
+ }
+
+ processAndPut(yml, "website", mainType, null, Website.class, String.class);
+
+ if(mainType.getAnnotation(UsesDatabase.class) != null) yml.put("database", true);
+
+ processAndPut(yml, "depend", mainType, null, DependsOn.class, String[].class);
+
+ processAndPut(yml, "softdepend", mainType, null, SoftDependsOn.class, String[].class);
+
+ processAndPut(yml, "prefix", mainType, null, LogPrefix.class, String.class);
+
+ processAndPut(yml, "loadbefore", mainType, null, LoadBefore.class, String[].class);
+
+ Commands.Cmd[] commands = process(mainType, new Commands.Cmd[0], Commands.class, Commands.Cmd[].class);
+
+ Map<String, Object> commandMap = new HashMap<String, Object>();
+
+ for(Commands.Cmd cmd : commands) {
+ String name = cmd.value();
+ Map<String, Object> desc = new HashMap<String, Object>();
+ if(!cmd.desc().isEmpty()) desc.put("description", cmd.desc());
+ if(cmd.aliases().length != 0) desc.put("aliases", cmd.aliases());
+ if(!cmd.permission().isEmpty()) desc.put("permission", cmd.permission());
+ if(!cmd.permissionMessage().isEmpty()) desc.put("permission-message", cmd.permissionMessage());
+ if(!cmd.usage().isEmpty()) desc.put("usage", cmd.usage());
+ commandMap.put(name, desc);
+ }
+
+ if(!commandMap.isEmpty()) yml.put("commands", commandMap);
+
+ Permissions.Perm[] perms = process(mainType, new Permissions.Perm[0], Permissions.class, Permissions.Perm[].class);
+
+ Map<String, Object> permMap = new HashMap<String, Object>();
+
+ for(Permissions.Perm perm : perms) {
+ String name = perm.value();
+ Map<String, Object> desc = new HashMap<String, Object>();
+ if(!perm.desc().isEmpty()) desc.put("description", perm.desc());
+ desc.put("default", perm.defaultValue().toString());
+ Map<String, Object> children = new HashMap<String, Object>();
+ for(String p : perm.children()) children.put(p, true);
+ for(String p : perm.antichildren()) children.put(p, false);
+ if(!children.isEmpty()) desc.put("children", children);
+ permMap.put(name, desc);
+ }
+
+ if(!permMap.isEmpty()) yml.put("permissions", permMap);
+
+ Yaml yaml = new Yaml();
+
+ try {
+ FileObject file = this.processingEnv.getFiler().createResource(StandardLocation.CLASS_OUTPUT, "", "plugin.yml");
+ Writer w = file.openWriter();
+ try{
+ w.append("# Auto-generated plugin.yml, generated at ").append(dFormat.format(new Date())).append(" by ").append(this.getClass().getName()).append("\n\n");
+ yaml.dump(yml, w);
+ } finally {
+ w.flush();
+ w.close();
+ }
+
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+
+ processingEnv.getMessager().printMessage(Diagnostic.Kind.WARNING, "NOTE: You are using org.bukkit.plugin.java.annotation, an experimental API!");
+
+ return true;
+ }
+
+ private void raiseError(String message) {
+ this.processingEnv.getMessager().printMessage(Diagnostic.Kind.ERROR, message);
+ }
+
+ private TypeMirror fromClass(Class<?> clazz) {
+ return processingEnv.getElementUtils().getTypeElement(clazz.getName()).asType();
+ }
+
+ private <A extends Annotation, R> R processAndPut(
+ Map<String, Object> map, String name, Element el, R defaultVal, Class<A> annotationType, Class<R> returnType) {
+ R result = process(el, defaultVal, annotationType, returnType);
+ if(result != null)
+ map.put(name, result);
+ return result;
+ }
+ private <A extends Annotation, R> R process(Element el, R defaultVal, Class<A> annotationType, Class<R> returnType) {
+ R result;
+ A ann = el.getAnnotation(annotationType);
+ if(ann == null) result = defaultVal;
+ else {
+ try {
+ Method value = annotationType.getMethod("value");
+ Object res = value.invoke(ann);
+ result = (R) (returnType == String.class ? res.toString() : returnType.cast(res));
+ } catch (Exception e) {
+ throw new RuntimeException(e); // shouldn't happen in theory
+ }
+ }
+ return result;
+ }
+}
diff --git a/src/main/java/org/bukkit/plugin/java/annotation/SoftDependsOn.java b/src/main/java/org/bukkit/plugin/java/annotation/SoftDependsOn.java
new file mode 100644
index 0000000..81e8662
--- /dev/null
+++ b/src/main/java/org/bukkit/plugin/java/annotation/SoftDependsOn.java
@@ -0,0 +1,17 @@
+package org.bukkit.plugin.java.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Target;
+
+/**
+ * Part of the plugin annotations framework.
+ * <p>
+ * Represents the plugin's soft dependencies.
+ */
+
+@Target(ElementType.TYPE)
+public @interface SoftDependsOn {
+
+ public String[] value();
+
+}
diff --git a/src/main/java/org/bukkit/plugin/java/annotation/UsesDatabase.java b/src/main/java/org/bukkit/plugin/java/annotation/UsesDatabase.java
new file mode 100644
index 0000000..e73ebfc
--- /dev/null
+++ b/src/main/java/org/bukkit/plugin/java/annotation/UsesDatabase.java
@@ -0,0 +1,13 @@
+package org.bukkit.plugin.java.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Target;
+
+/**
+ * Part of the plugin annotations framework.
+ * <p>
+ * Denotes this plugin as using Bukkit's bundled database system.
+ */
+
+@Target(ElementType.TYPE)
+public @interface UsesDatabase {}
diff --git a/src/main/java/org/bukkit/plugin/java/annotation/Version.java b/src/main/java/org/bukkit/plugin/java/annotation/Version.java
new file mode 100644
index 0000000..2d7ab66
--- /dev/null
+++ b/src/main/java/org/bukkit/plugin/java/annotation/Version.java
@@ -0,0 +1,20 @@
+package org.bukkit.plugin.java.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Target;
+
+/**
+ * Part of the plugin annotations framework.
+ * <p>
+ * Represents the version of the plugin.
+ * <p>
+ * If not present in a class annotated with {@link Main} the name defaults to "v0.0" and will emmit a warning.
+ */
+
+@Target(ElementType.TYPE)
+public @interface Version {
+
+ public String value();
+
+ public static final String DEFAULT_VERSION = "v0.0";
+}
diff --git a/src/main/java/org/bukkit/plugin/java/annotation/Website.java b/src/main/java/org/bukkit/plugin/java/annotation/Website.java
new file mode 100644
index 0000000..385483f
--- /dev/null
+++ b/src/main/java/org/bukkit/plugin/java/annotation/Website.java
@@ -0,0 +1,17 @@
+package org.bukkit.plugin.java.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Target;
+
+/**
+ * Part of the plugin annotations framework.
+ * <p>
+ * Represents the website of the plugin.
+ */
+
+@Target(ElementType.TYPE)
+public @interface Website {
+
+ public String value();
+
+} \ No newline at end of file
diff --git a/src/main/resources/META-INF/services/javax.annotation.processing.Processor b/src/main/resources/META-INF/services/javax.annotation.processing.Processor
new file mode 100644
index 0000000..387e75c
--- /dev/null
+++ b/src/main/resources/META-INF/services/javax.annotation.processing.Processor
@@ -0,0 +1 @@
+org.bukkit.plugin.java.annotation.PluginAnnotationProcessor
diff --git a/target/classes/META-INF/services/javax.annotation.processing.Processor b/target/classes/META-INF/services/javax.annotation.processing.Processor
new file mode 100644
index 0000000..387e75c
--- /dev/null
+++ b/target/classes/META-INF/services/javax.annotation.processing.Processor
@@ -0,0 +1 @@
+org.bukkit.plugin.java.annotation.PluginAnnotationProcessor
diff --git a/target/classes/org/bukkit/plugin/java/annotation/Author.class b/target/classes/org/bukkit/plugin/java/annotation/Author.class
new file mode 100644
index 0000000..1cc34d5
--- /dev/null
+++ b/target/classes/org/bukkit/plugin/java/annotation/Author.class
Binary files differ
diff --git a/target/classes/org/bukkit/plugin/java/annotation/Commands$Cmd.class b/target/classes/org/bukkit/plugin/java/annotation/Commands$Cmd.class
new file mode 100644
index 0000000..2dc72f5
--- /dev/null
+++ b/target/classes/org/bukkit/plugin/java/annotation/Commands$Cmd.class
Binary files differ
diff --git a/target/classes/org/bukkit/plugin/java/annotation/Commands.class b/target/classes/org/bukkit/plugin/java/annotation/Commands.class
new file mode 100644
index 0000000..3d32d72
--- /dev/null
+++ b/target/classes/org/bukkit/plugin/java/annotation/Commands.class
Binary files differ
diff --git a/target/classes/org/bukkit/plugin/java/annotation/DependsOn.class b/target/classes/org/bukkit/plugin/java/annotation/DependsOn.class
new file mode 100644
index 0000000..36da70c
--- /dev/null
+++ b/target/classes/org/bukkit/plugin/java/annotation/DependsOn.class
Binary files differ
diff --git a/target/classes/org/bukkit/plugin/java/annotation/Description.class b/target/classes/org/bukkit/plugin/java/annotation/Description.class
new file mode 100644
index 0000000..be254d1
--- /dev/null
+++ b/target/classes/org/bukkit/plugin/java/annotation/Description.class
Binary files differ
diff --git a/target/classes/org/bukkit/plugin/java/annotation/LoadBefore.class b/target/classes/org/bukkit/plugin/java/annotation/LoadBefore.class
new file mode 100644
index 0000000..9b5f5a1
--- /dev/null
+++ b/target/classes/org/bukkit/plugin/java/annotation/LoadBefore.class
Binary files differ
diff --git a/target/classes/org/bukkit/plugin/java/annotation/LoadOn.class b/target/classes/org/bukkit/plugin/java/annotation/LoadOn.class
new file mode 100644
index 0000000..f260a92
--- /dev/null
+++ b/target/classes/org/bukkit/plugin/java/annotation/LoadOn.class
Binary files differ
diff --git a/target/classes/org/bukkit/plugin/java/annotation/LogPrefix.class b/target/classes/org/bukkit/plugin/java/annotation/LogPrefix.class
new file mode 100644
index 0000000..e678a78
--- /dev/null
+++ b/target/classes/org/bukkit/plugin/java/annotation/LogPrefix.class
Binary files differ
diff --git a/target/classes/org/bukkit/plugin/java/annotation/Main.class b/target/classes/org/bukkit/plugin/java/annotation/Main.class
new file mode 100644
index 0000000..76ef4dd
--- /dev/null
+++ b/target/classes/org/bukkit/plugin/java/annotation/Main.class
Binary files differ
diff --git a/target/classes/org/bukkit/plugin/java/annotation/Name.class b/target/classes/org/bukkit/plugin/java/annotation/Name.class
new file mode 100644
index 0000000..8119a13
--- /dev/null
+++ b/target/classes/org/bukkit/plugin/java/annotation/Name.class
Binary files differ
diff --git a/target/classes/org/bukkit/plugin/java/annotation/Permissions$Perm.class b/target/classes/org/bukkit/plugin/java/annotation/Permissions$Perm.class
new file mode 100644
index 0000000..28fc5c7
--- /dev/null
+++ b/target/classes/org/bukkit/plugin/java/annotation/Permissions$Perm.class
Binary files differ
diff --git a/target/classes/org/bukkit/plugin/java/annotation/Permissions.class b/target/classes/org/bukkit/plugin/java/annotation/Permissions.class
new file mode 100644
index 0000000..5559370
--- /dev/null
+++ b/target/classes/org/bukkit/plugin/java/annotation/Permissions.class
Binary files differ
diff --git a/target/classes/org/bukkit/plugin/java/annotation/PluginAnnotationProcessor.class b/target/classes/org/bukkit/plugin/java/annotation/PluginAnnotationProcessor.class
new file mode 100644
index 0000000..2fb1a5c
--- /dev/null
+++ b/target/classes/org/bukkit/plugin/java/annotation/PluginAnnotationProcessor.class
Binary files differ
diff --git a/target/classes/org/bukkit/plugin/java/annotation/SoftDependsOn.class b/target/classes/org/bukkit/plugin/java/annotation/SoftDependsOn.class
new file mode 100644
index 0000000..bb83d97
--- /dev/null
+++ b/target/classes/org/bukkit/plugin/java/annotation/SoftDependsOn.class
Binary files differ
diff --git a/target/classes/org/bukkit/plugin/java/annotation/UsesDatabase.class b/target/classes/org/bukkit/plugin/java/annotation/UsesDatabase.class
new file mode 100644
index 0000000..69d6cb2
--- /dev/null
+++ b/target/classes/org/bukkit/plugin/java/annotation/UsesDatabase.class
Binary files differ
diff --git a/target/classes/org/bukkit/plugin/java/annotation/Version.class b/target/classes/org/bukkit/plugin/java/annotation/Version.class
new file mode 100644
index 0000000..a8e3a21
--- /dev/null
+++ b/target/classes/org/bukkit/plugin/java/annotation/Version.class
Binary files differ
diff --git a/target/classes/org/bukkit/plugin/java/annotation/Website.class b/target/classes/org/bukkit/plugin/java/annotation/Website.class
new file mode 100644
index 0000000..fb2dc7f
--- /dev/null
+++ b/target/classes/org/bukkit/plugin/java/annotation/Website.class
Binary files differ
diff --git a/target/maven-archiver/pom.properties b/target/maven-archiver/pom.properties
new file mode 100644
index 0000000..4716c8f
--- /dev/null
+++ b/target/maven-archiver/pom.properties
@@ -0,0 +1,5 @@
+#Generated by Maven
+#Fri Feb 20 19:51:13 EST 2015
+version=1.0.0-SNAPSHOT
+groupId=org.bukkit
+artifactId=plugin-annotations
diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
new file mode 100644
index 0000000..d1fddfb
--- /dev/null
+++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
@@ -0,0 +1,17 @@
+org/bukkit/plugin/java/annotation/Version.class
+org/bukkit/plugin/java/annotation/Commands$Cmd.class
+org/bukkit/plugin/java/annotation/Permissions.class
+org/bukkit/plugin/java/annotation/Main.class
+org/bukkit/plugin/java/annotation/DependsOn.class
+org/bukkit/plugin/java/annotation/Author.class
+org/bukkit/plugin/java/annotation/Permissions$Perm.class
+org/bukkit/plugin/java/annotation/Description.class
+org/bukkit/plugin/java/annotation/Name.class
+org/bukkit/plugin/java/annotation/Commands.class
+org/bukkit/plugin/java/annotation/UsesDatabase.class
+org/bukkit/plugin/java/annotation/SoftDependsOn.class
+org/bukkit/plugin/java/annotation/LoadOn.class
+org/bukkit/plugin/java/annotation/LogPrefix.class
+org/bukkit/plugin/java/annotation/Website.class
+org/bukkit/plugin/java/annotation/LoadBefore.class
+org/bukkit/plugin/java/annotation/PluginAnnotationProcessor.class
diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
new file mode 100644
index 0000000..a87a200
--- /dev/null
+++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -0,0 +1,15 @@
+/Users/xor/PluginsWorkspace/misc/PluginAnnotations/src/main/java/org/bukkit/plugin/java/annotation/PluginAnnotationProcessor.java
+/Users/xor/PluginsWorkspace/misc/PluginAnnotations/src/main/java/org/bukkit/plugin/java/annotation/Main.java
+/Users/xor/PluginsWorkspace/misc/PluginAnnotations/src/main/java/org/bukkit/plugin/java/annotation/LogPrefix.java
+/Users/xor/PluginsWorkspace/misc/PluginAnnotations/src/main/java/org/bukkit/plugin/java/annotation/UsesDatabase.java
+/Users/xor/PluginsWorkspace/misc/PluginAnnotations/src/main/java/org/bukkit/plugin/java/annotation/LoadOn.java
+/Users/xor/PluginsWorkspace/misc/PluginAnnotations/src/main/java/org/bukkit/plugin/java/annotation/Permissions.java
+/Users/xor/PluginsWorkspace/misc/PluginAnnotations/src/main/java/org/bukkit/plugin/java/annotation/Website.java
+/Users/xor/PluginsWorkspace/misc/PluginAnnotations/src/main/java/org/bukkit/plugin/java/annotation/Description.java
+/Users/xor/PluginsWorkspace/misc/PluginAnnotations/src/main/java/org/bukkit/plugin/java/annotation/LoadBefore.java
+/Users/xor/PluginsWorkspace/misc/PluginAnnotations/src/main/java/org/bukkit/plugin/java/annotation/Commands.java
+/Users/xor/PluginsWorkspace/misc/PluginAnnotations/src/main/java/org/bukkit/plugin/java/annotation/DependsOn.java
+/Users/xor/PluginsWorkspace/misc/PluginAnnotations/src/main/java/org/bukkit/plugin/java/annotation/Name.java
+/Users/xor/PluginsWorkspace/misc/PluginAnnotations/src/main/java/org/bukkit/plugin/java/annotation/Author.java
+/Users/xor/PluginsWorkspace/misc/PluginAnnotations/src/main/java/org/bukkit/plugin/java/annotation/Version.java
+/Users/xor/PluginsWorkspace/misc/PluginAnnotations/src/main/java/org/bukkit/plugin/java/annotation/SoftDependsOn.java
diff --git a/target/plugin-annotations-1.0.0-SNAPSHOT.jar b/target/plugin-annotations-1.0.0-SNAPSHOT.jar
new file mode 100644
index 0000000..6cedd20
--- /dev/null
+++ b/target/plugin-annotations-1.0.0-SNAPSHOT.jar
Binary files differ