1
mirror of https://github.com/CarmJos/EasyListener.git synced 2024-09-19 21:35:51 +00:00

docs(java): 补全新方法的 Javadoc

This commit is contained in:
Carm Jos 2022-06-25 05:02:26 +08:00
parent 10b4800ac9
commit dfe9c833f7

View File

@ -4,7 +4,11 @@ import cc.carm.lib.easylistener.handler.BundleEventHandler;
import cc.carm.lib.easylistener.handler.MultiEventHandler; import cc.carm.lib.easylistener.handler.MultiEventHandler;
import cc.carm.lib.easylistener.handler.SingleEventHandler; import cc.carm.lib.easylistener.handler.SingleEventHandler;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.block.Block;
import org.bukkit.entity.Player;
import org.bukkit.event.*; import org.bukkit.event.*;
import org.bukkit.event.block.BlockEvent;
import org.bukkit.event.player.PlayerEvent;
import org.bukkit.plugin.*; import org.bukkit.plugin.*;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
@ -12,6 +16,7 @@ import org.jetbrains.annotations.Nullable;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.util.Optional; import java.util.Optional;
import java.util.function.Consumer; import java.util.function.Consumer;
import java.util.function.Function;
import java.util.function.Predicate; import java.util.function.Predicate;
/** /**
@ -45,18 +50,53 @@ public class EasyListener implements Listener {
HandlerList.unregisterAll(this); HandlerList.unregisterAll(this);
} }
/**
* 利用 functional 接口对单个 {@link Event} 进行监听处理
*
* @param eventClass {@link Event} 事件类
* @param <E> {@link Event} 事件的类型
* @return {@link SingleEventHandler} 构造器实例
*/
public <E extends Event> @NotNull SingleEventHandler<E> handleEvent(@NotNull Class<E> eventClass) { public <E extends Event> @NotNull SingleEventHandler<E> handleEvent(@NotNull Class<E> eventClass) {
return new SingleEventHandler<>(this, eventClass); return new SingleEventHandler<>(this, eventClass);
} }
/**
* 利用 functional 接口对多个同类 {@link Event} 进行监听处理
*
* <br> 创建后通过{@link MultiEventHandler#from(Class)} 申明具体监听的事件类型
*
* @param eventType {@link Event} 的主要类型 {@link PlayerEvent}{@link BlockEvent}
* @param <E> {@link Event} 的类型
* @return {@link MultiEventHandler} 构造器实例
*/
public <E extends Event> @NotNull MultiEventHandler<E> handleEvents(@NotNull Class<E> eventType) { public <E extends Event> @NotNull MultiEventHandler<E> handleEvents(@NotNull Class<E> eventType) {
return new MultiEventHandler<>(this, eventType); return new MultiEventHandler<>(this, eventType);
} }
/**
* 利用 functional 接口对多个同属 {@link Event} 进行监听处理
* <br> 创建后通过{@link BundleEventHandler#from(Class, Function)} 申明具体监听的事件类型与转换函数
* <br> 通过转换函数即可以将 {@link Event} 转换为给定类型实例以方便统一处理
*
* @param elementClass 要处理的目标类型类 {@link Player}{@link Block}
* @param <T> 要处理的目标类型
* @return {@link BundleEventHandler} 构造器实例
*/
public <T> @NotNull BundleEventHandler<T, Event> handleBundle(@NotNull Class<T> elementClass) { public <T> @NotNull BundleEventHandler<T, Event> handleBundle(@NotNull Class<T> elementClass) {
return handleBundle(elementClass, Event.class); return handleBundle(elementClass, Event.class);
} }
/**
* 利用 functional 接口对多个同属 {@link Event} 进行监听处理
* <br> 创建后通过{@link BundleEventHandler#from(Class, Function)} 申明具体监听的事件类型与转换函数
* <br> 通过转换函数即可以将 {@link Event} 转换为给定类型实例以方便统一处理
*
* @param elementClass 要处理的目标类型类 {@link Player}{@link Block}
* @param eventType {@link Event} 的主要类型 {@link PlayerEvent}{@link BlockEvent}
* @param <T> 要处理的目标类型
* @return {@link BundleEventHandler} 构造器实例
*/
public <T, E extends Event> @NotNull BundleEventHandler<T, E> handleBundle(@NotNull Class<T> elementClass, public <T, E extends Event> @NotNull BundleEventHandler<T, E> handleBundle(@NotNull Class<T> elementClass,
@NotNull Class<E> eventType) { @NotNull Class<E> eventType) {
return new BundleEventHandler<>(this, elementClass, eventType); return new BundleEventHandler<>(this, elementClass, eventType);