001/* 002 * Trident - A Multithreaded Server Alternative 003 * Copyright 2014 The TridentSDK Team 004 * 005 * Licensed under the Apache License, Version 2.0 (the "License"); 006 * you may not use this file except in compliance with the License. 007 * You may obtain a copy of the License at 008 * 009 * http://www.apache.org/licenses/LICENSE-2.0 010 * 011 * Unless required by applicable law or agreed to in writing, software 012 * distributed under the License is distributed on an "AS IS" BASIS, 013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 014 * See the License for the specific language governing permissions and 015 * limitations under the License. 016 */ 017 018package net.tridentsdk.plugin.annotation; 019 020import java.lang.annotation.*; 021 022/** 023 * Describes a plugin properties and information 024 * 025 * <p>The information provided to each field has no semantic properties</p> 026 * 027 * @author The TridentSDK Team 028 * @since 0.3-alpha-DP 029 */ 030@Documented 031@Retention(RetentionPolicy.RUNTIME) 032@Target(ElementType.TYPE) 033public @interface PluginDesc { 034 // TODO: Provide documentation on what this priority actually is 035 int priority() default 1; 036 037 /** 038 * The plugin name, which will always be loaded even if it has the same name as another 039 */ 040 String name(); 041 042 /** 043 * The plugin version 044 */ 045 String version() default "1.0"; 046 047 /** 048 * Purpose of the plugin 049 */ 050 String description() default "Plugin made for TridentSDK"; 051 052 /** 053 * The person who wrote the plugin 054 */ 055 String author() default ""; 056 057 /** 058 * The people that wrote the plugin 059 */ 060 String[] authors() default { }; 061 062 /** 063 * The plugin(s) which is depended on by the described plugin 064 */ 065 String[] dependencies() default { }; 066}