mirror of
https://github.com/plan-player-analytics/Plan.git
synced 2025-01-23 00:21:43 +01:00
Plan API 5.0-R0.2: Changed GroupProvider to return String[]
This commit is contained in:
parent
41cec8a055
commit
6cbf28ad17
@ -2,7 +2,7 @@ plugins {
|
|||||||
id "com.jfrog.bintray" version "1.8.4"
|
id "com.jfrog.bintray" version "1.8.4"
|
||||||
}
|
}
|
||||||
|
|
||||||
ext.apiVersion = '5.0-R0.1'
|
ext.apiVersion = '5.0-R0.2'
|
||||||
|
|
||||||
bintray {
|
bintray {
|
||||||
user = System.getenv('BINTRAY_USER')
|
user = System.getenv('BINTRAY_USER')
|
||||||
|
@ -25,12 +25,12 @@ import java.lang.annotation.RetentionPolicy;
|
|||||||
import java.lang.annotation.Target;
|
import java.lang.annotation.Target;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Method annotation to provide {@code Group[]} array about a Player.
|
* Method annotation to provide {@code String[]} array of Group names about a Player.
|
||||||
* <p>
|
* <p>
|
||||||
* This method annotation only works when used with {@code UUID} or {@code String} as a method parameter (for Players).
|
* This method annotation only works when used with {@code UUID} or {@code String} as a method parameter (for Players).
|
||||||
* <p>
|
* <p>
|
||||||
* For example:
|
* For example:
|
||||||
* {@code @GroupProvider public Group[] getJobs(UUID playerUUID) {}}
|
* {@code @GroupProvider public String[] getJobs(UUID playerUUID) {}}
|
||||||
* <p>
|
* <p>
|
||||||
* Group data is parsed as Table for /server & /network page and similar to {@link StringProvider} for /player page.
|
* Group data is parsed as Table for /server & /network page and similar to {@link StringProvider} for /player page.
|
||||||
* <p>
|
* <p>
|
||||||
|
@ -278,7 +278,7 @@ public final class ExtensionExtractor {
|
|||||||
Method method = groupProvider.getKey();
|
Method method = groupProvider.getKey();
|
||||||
GroupProvider annotation = groupProvider.getValue();
|
GroupProvider annotation = groupProvider.getValue();
|
||||||
|
|
||||||
validateReturnType(method, Group[].class);
|
validateReturnType(method, String[].class);
|
||||||
validateMethodAnnotationPropertyLength(annotation.text(), "text", 50, method);
|
validateMethodAnnotationPropertyLength(annotation.text(), "text", 50, method);
|
||||||
validateMethodArguments(method, true, UUID.class, String.class);
|
validateMethodArguments(method, true, UUID.class, String.class);
|
||||||
}
|
}
|
||||||
|
@ -192,7 +192,7 @@ class ExtensionExtractorTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
ExtensionExtractor underTest = new ExtensionExtractor(new Extension());
|
ExtensionExtractor underTest = new ExtensionExtractor(new Extension());
|
||||||
assertEquals("Extension.method has invalid return type. was: java.lang.Double, expected: [Lcom.djrapitops.plan.extension.Group; (an array)", assertThrows(IllegalArgumentException.class, underTest::validateAnnotations).getMessage());
|
assertEquals("Extension.method has invalid return type. was: java.lang.Double, expected: [Ljava.lang.String; (an array)", assertThrows(IllegalArgumentException.class, underTest::validateAnnotations).getMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ -206,7 +206,7 @@ class ExtensionExtractorTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
ExtensionExtractor underTest = new ExtensionExtractor(new Extension());
|
ExtensionExtractor underTest = new ExtensionExtractor(new Extension());
|
||||||
assertEquals("Extension.method has invalid return type. was: com.djrapitops.plan.extension.Group, expected: [Lcom.djrapitops.plan.extension.Group; (an array)", assertThrows(IllegalArgumentException.class, underTest::validateAnnotations).getMessage());
|
assertEquals("Extension.method has invalid return type. was: com.djrapitops.plan.extension.Group, expected: [Ljava.lang.String; (an array)", assertThrows(IllegalArgumentException.class, underTest::validateAnnotations).getMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -16,7 +16,6 @@
|
|||||||
*/
|
*/
|
||||||
package com.djrapitops.plan.extension.implementation.providers;
|
package com.djrapitops.plan.extension.implementation.providers;
|
||||||
|
|
||||||
import com.djrapitops.plan.extension.Group;
|
|
||||||
import com.djrapitops.plan.extension.annotation.Conditional;
|
import com.djrapitops.plan.extension.annotation.Conditional;
|
||||||
import com.djrapitops.plan.extension.annotation.GroupProvider;
|
import com.djrapitops.plan.extension.annotation.GroupProvider;
|
||||||
import com.djrapitops.plan.extension.annotation.StringProvider;
|
import com.djrapitops.plan.extension.annotation.StringProvider;
|
||||||
@ -32,9 +31,9 @@ import java.lang.reflect.Method;
|
|||||||
*
|
*
|
||||||
* @author Rsl1122
|
* @author Rsl1122
|
||||||
*/
|
*/
|
||||||
public class GroupDataProvider extends DataProvider<Group[]> {
|
public class GroupDataProvider extends DataProvider<String[]> {
|
||||||
|
|
||||||
private GroupDataProvider(ProviderInformation providerInformation, MethodWrapper<Group[]> methodWrapper) {
|
private GroupDataProvider(ProviderInformation providerInformation, MethodWrapper<String[]> methodWrapper) {
|
||||||
super(providerInformation, methodWrapper);
|
super(providerInformation, methodWrapper);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -42,7 +41,7 @@ public class GroupDataProvider extends DataProvider<Group[]> {
|
|||||||
DataProviders dataProviders, Method method, GroupProvider annotation,
|
DataProviders dataProviders, Method method, GroupProvider annotation,
|
||||||
Conditional condition, String tab, String pluginName
|
Conditional condition, String tab, String pluginName
|
||||||
) {
|
) {
|
||||||
MethodWrapper<Group[]> methodWrapper = new MethodWrapper<>(method, Group[].class);
|
MethodWrapper<String[]> methodWrapper = new MethodWrapper<>(method, String[].class);
|
||||||
Icon providerIcon = new Icon(annotation.iconFamily(), annotation.iconName(), annotation.groupColor());
|
Icon providerIcon = new Icon(annotation.iconFamily(), annotation.iconName(), annotation.groupColor());
|
||||||
|
|
||||||
ProviderInformation providerInformation = new ProviderInformation(
|
ProviderInformation providerInformation = new ProviderInformation(
|
||||||
|
@ -19,7 +19,6 @@ package com.djrapitops.plan.extension.implementation.providers.gathering;
|
|||||||
import com.djrapitops.plan.api.exceptions.DataExtensionMethodCallException;
|
import com.djrapitops.plan.api.exceptions.DataExtensionMethodCallException;
|
||||||
import com.djrapitops.plan.db.Database;
|
import com.djrapitops.plan.db.Database;
|
||||||
import com.djrapitops.plan.extension.DataExtension;
|
import com.djrapitops.plan.extension.DataExtension;
|
||||||
import com.djrapitops.plan.extension.Group;
|
|
||||||
import com.djrapitops.plan.extension.implementation.ProviderInformation;
|
import com.djrapitops.plan.extension.implementation.ProviderInformation;
|
||||||
import com.djrapitops.plan.extension.implementation.providers.DataProvider;
|
import com.djrapitops.plan.extension.implementation.providers.DataProvider;
|
||||||
import com.djrapitops.plan.extension.implementation.providers.DataProviders;
|
import com.djrapitops.plan.extension.implementation.providers.DataProviders;
|
||||||
@ -58,7 +57,7 @@ class GroupProviderValueGatherer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void gatherGroupDataOfPlayer(UUID playerUUID, String playerName, Conditions conditions) {
|
void gatherGroupDataOfPlayer(UUID playerUUID, String playerName, Conditions conditions) {
|
||||||
for (DataProvider<Group[]> groupProvider : dataProviders.getPlayerMethodsByType(Group[].class)) {
|
for (DataProvider<String[]> groupProvider : dataProviders.getPlayerMethodsByType(String[].class)) {
|
||||||
gatherGroupDataOfProvider(playerUUID, playerName, conditions, groupProvider);
|
gatherGroupDataOfProvider(playerUUID, playerName, conditions, groupProvider);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -66,7 +65,7 @@ class GroupProviderValueGatherer {
|
|||||||
private void gatherGroupDataOfProvider(
|
private void gatherGroupDataOfProvider(
|
||||||
UUID playerUUID, String playerName,
|
UUID playerUUID, String playerName,
|
||||||
Conditions conditions,
|
Conditions conditions,
|
||||||
DataProvider<Group[]> groupProvider
|
DataProvider<String[]> groupProvider
|
||||||
) {
|
) {
|
||||||
ProviderInformation providerInformation = groupProvider.getProviderInformation();
|
ProviderInformation providerInformation = groupProvider.getProviderInformation();
|
||||||
Optional<String> condition = providerInformation.getCondition();
|
Optional<String> condition = providerInformation.getCondition();
|
||||||
@ -74,9 +73,9 @@ class GroupProviderValueGatherer {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
MethodWrapper<Group[]> method = groupProvider.getMethod();
|
MethodWrapper<String[]> method = groupProvider.getMethod();
|
||||||
try {
|
try {
|
||||||
Group[] result = method.callMethod(extension, playerUUID, playerName);
|
String[] result = method.callMethod(extension, playerUUID, playerName);
|
||||||
if (result == null) {
|
if (result == null) {
|
||||||
return; // Error during call
|
return; // Error during call
|
||||||
}
|
}
|
||||||
|
@ -22,7 +22,6 @@ import com.djrapitops.plan.db.access.transactions.Transaction;
|
|||||||
import com.djrapitops.plan.db.sql.tables.ExtensionIconTable;
|
import com.djrapitops.plan.db.sql.tables.ExtensionIconTable;
|
||||||
import com.djrapitops.plan.db.sql.tables.ExtensionPluginTable;
|
import com.djrapitops.plan.db.sql.tables.ExtensionPluginTable;
|
||||||
import com.djrapitops.plan.db.sql.tables.ExtensionTabTable;
|
import com.djrapitops.plan.db.sql.tables.ExtensionTabTable;
|
||||||
import com.djrapitops.plan.extension.Group;
|
|
||||||
import com.djrapitops.plan.extension.implementation.ProviderInformation;
|
import com.djrapitops.plan.extension.implementation.ProviderInformation;
|
||||||
import com.djrapitops.plan.extension.implementation.providers.DataProvider;
|
import com.djrapitops.plan.extension.implementation.providers.DataProvider;
|
||||||
|
|
||||||
@ -46,7 +45,7 @@ public class StoreGroupProviderTransaction extends Transaction {
|
|||||||
private final UUID serverUUID;
|
private final UUID serverUUID;
|
||||||
private ProviderInformation providerInformation;
|
private ProviderInformation providerInformation;
|
||||||
|
|
||||||
public StoreGroupProviderTransaction(DataProvider<Group[]> provider, UUID serverUUID) {
|
public StoreGroupProviderTransaction(DataProvider<String[]> provider, UUID serverUUID) {
|
||||||
this.serverUUID = serverUUID;
|
this.serverUUID = serverUUID;
|
||||||
providerInformation = provider.getProviderInformation();
|
providerInformation = provider.getProviderInformation();
|
||||||
}
|
}
|
||||||
|
@ -21,7 +21,6 @@ import com.djrapitops.plan.db.access.Executable;
|
|||||||
import com.djrapitops.plan.db.access.transactions.Transaction;
|
import com.djrapitops.plan.db.access.transactions.Transaction;
|
||||||
import com.djrapitops.plan.db.sql.tables.ExtensionGroupsTable;
|
import com.djrapitops.plan.db.sql.tables.ExtensionGroupsTable;
|
||||||
import com.djrapitops.plan.db.sql.tables.ExtensionProviderTable;
|
import com.djrapitops.plan.db.sql.tables.ExtensionProviderTable;
|
||||||
import com.djrapitops.plan.extension.Group;
|
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|
||||||
import java.sql.PreparedStatement;
|
import java.sql.PreparedStatement;
|
||||||
@ -43,9 +42,9 @@ public class StorePlayerGroupsResultTransaction extends Transaction {
|
|||||||
private final String providerName;
|
private final String providerName;
|
||||||
private final UUID playerUUID;
|
private final UUID playerUUID;
|
||||||
|
|
||||||
private final Group[] value;
|
private final String[] value;
|
||||||
|
|
||||||
public StorePlayerGroupsResultTransaction(String pluginName, UUID serverUUID, String providerName, UUID playerUUID, Group[] value) {
|
public StorePlayerGroupsResultTransaction(String pluginName, UUID serverUUID, String providerName, UUID playerUUID, String[] value) {
|
||||||
this.pluginName = pluginName;
|
this.pluginName = pluginName;
|
||||||
this.serverUUID = serverUUID;
|
this.serverUUID = serverUUID;
|
||||||
this.providerName = providerName;
|
this.providerName = providerName;
|
||||||
@ -56,8 +55,8 @@ public class StorePlayerGroupsResultTransaction extends Transaction {
|
|||||||
@Override
|
@Override
|
||||||
protected void performOperations() {
|
protected void performOperations() {
|
||||||
execute(deleteOldValues());
|
execute(deleteOldValues());
|
||||||
for (Group group : value) {
|
for (String group : value) {
|
||||||
String groupName = StringUtils.truncate(group.getGroupName(), 50);
|
String groupName = StringUtils.truncate(group, 50);
|
||||||
execute(insertGroup(groupName));
|
execute(insertGroup(groupName));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -51,7 +51,10 @@ import com.djrapitops.plan.db.access.transactions.init.RemoveDuplicateUserInfoTr
|
|||||||
import com.djrapitops.plan.db.patches.Patch;
|
import com.djrapitops.plan.db.patches.Patch;
|
||||||
import com.djrapitops.plan.db.sql.parsing.Sql;
|
import com.djrapitops.plan.db.sql.parsing.Sql;
|
||||||
import com.djrapitops.plan.db.tasks.DBCleanTask;
|
import com.djrapitops.plan.db.tasks.DBCleanTask;
|
||||||
import com.djrapitops.plan.extension.*;
|
import com.djrapitops.plan.extension.CallEvents;
|
||||||
|
import com.djrapitops.plan.extension.DataExtension;
|
||||||
|
import com.djrapitops.plan.extension.ExtensionService;
|
||||||
|
import com.djrapitops.plan.extension.ExtensionServiceImplementation;
|
||||||
import com.djrapitops.plan.extension.annotation.*;
|
import com.djrapitops.plan.extension.annotation.*;
|
||||||
import com.djrapitops.plan.extension.icon.Color;
|
import com.djrapitops.plan.extension.icon.Color;
|
||||||
import com.djrapitops.plan.extension.icon.Icon;
|
import com.djrapitops.plan.extension.icon.Icon;
|
||||||
@ -1465,8 +1468,8 @@ public interface DatabaseTest {
|
|||||||
|
|
||||||
@GroupProvider(text = "Conditional Group")
|
@GroupProvider(text = "Conditional Group")
|
||||||
@Conditional("condition")
|
@Conditional("condition")
|
||||||
public Group[] conditionalGroups(UUID playerUUID) {
|
public String[] conditionalGroups(UUID playerUUID) {
|
||||||
return new Group[]{() -> "Group"};
|
return new String[]{"Group"};
|
||||||
}
|
}
|
||||||
|
|
||||||
@StringProvider(text = "Unconditional")
|
@StringProvider(text = "Unconditional")
|
||||||
@ -1531,8 +1534,8 @@ public interface DatabaseTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@GroupProvider(text = "a group")
|
@GroupProvider(text = "a group")
|
||||||
public Group[] groupVal(UUID playerUUID) {
|
public String[] groupVal(UUID playerUUID) {
|
||||||
return new Group[]{() -> "Group"};
|
return new String[]{"Group"};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user