mirror of
https://github.com/BrenBroZAYT/gameyfin.git
synced 2026-06-13 16:40:01 +00:00
Preparation for plugins
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
plugins {
|
||||
kotlin("jvm")
|
||||
}
|
||||
|
||||
group = "de.grimsi.gameyfin"
|
||||
|
||||
repositories {
|
||||
mavenCentral()
|
||||
}
|
||||
|
||||
dependencies {
|
||||
// PF4J (shared)
|
||||
api("org.pf4j:pf4j:${rootProject.extra["pf4jVersion"]}")
|
||||
|
||||
// Test dependencies
|
||||
testImplementation(kotlin("test"))
|
||||
}
|
||||
|
||||
tasks.test {
|
||||
useJUnitPlatform()
|
||||
}
|
||||
@@ -0,0 +1,106 @@
|
||||
package de.grimsi.gameyfin.pluginapi.gamemetadata
|
||||
import java.net.URL
|
||||
import java.time.Instant
|
||||
|
||||
class GameMetadata(
|
||||
val title: String,
|
||||
val description: String,
|
||||
val release: Instant,
|
||||
val userRating: Int?,
|
||||
val criticRating: Int?,
|
||||
val developedBy: List<String>,
|
||||
val publishedBy: List<String>,
|
||||
val genres: List<Genre>,
|
||||
val themes: List<Theme>,
|
||||
val screenshotUrls: List<URL>,
|
||||
val videoUrls: List<URL>,
|
||||
val features: List<GameFeature>,
|
||||
val perspectives: List<PlayerPerspective>
|
||||
)
|
||||
|
||||
enum class Genre {
|
||||
PINBALL,
|
||||
ADVENTURE,
|
||||
INDIE,
|
||||
ARCADE,
|
||||
VISUAL_NOVEL,
|
||||
CARD_AND_BOARD_GAME,
|
||||
MOBA,
|
||||
POINT_AND_CLICK,
|
||||
FIGHTING,
|
||||
SHOOTER,
|
||||
MUSIC,
|
||||
PLATFORM,
|
||||
PUZZLE,
|
||||
RACING,
|
||||
REAL_TIME_STRATEGY,
|
||||
ROLE_PLAYING,
|
||||
SIMULATOR,
|
||||
SPORT,
|
||||
STRATEGY,
|
||||
TURN_BASED_STRATEGY,
|
||||
TACTICAL,
|
||||
HACK_AND_SLASH_BEAT_EM_UP,
|
||||
QUIZ_TRIVIA
|
||||
}
|
||||
|
||||
enum class Theme {
|
||||
ACTION,
|
||||
FANTASY,
|
||||
SCIENCE_FICTION,
|
||||
HORROR,
|
||||
THRILLER,
|
||||
SURVIVAL,
|
||||
HISTORICAL,
|
||||
STEALTH,
|
||||
COMEDY,
|
||||
BUSINESS,
|
||||
DRAMA,
|
||||
NON_FICTION,
|
||||
SANDBOX,
|
||||
EDUCATIONAL,
|
||||
KIDS,
|
||||
OPEN_WORLD,
|
||||
WARFARE,
|
||||
PARTY,
|
||||
FOUR_X,
|
||||
MYSTERY,
|
||||
EROTIC,
|
||||
ROMANCE
|
||||
}
|
||||
|
||||
enum class GameFeature {
|
||||
SINGLEPLAYER,
|
||||
MULTIPLAYER,
|
||||
CO_OP,
|
||||
CROSS_PLATFORM,
|
||||
MODDING,
|
||||
VR,
|
||||
AR,
|
||||
CLOUD_SAVES,
|
||||
CLOUD_PLAY,
|
||||
ACHIEVEMENTS,
|
||||
LEADERBOARDS,
|
||||
WORKSHOP,
|
||||
CONTROLLER_SUPPORT,
|
||||
REMOTE_PLAY,
|
||||
LOCAL_MULTIPLAYER,
|
||||
LOCAL_CO_OP,
|
||||
ONLINE_MULTIPLAYER,
|
||||
ONLINE_CO_OP,
|
||||
ONLINE_PVP,
|
||||
ONLINE_PVE,
|
||||
LOCAL_PVP,
|
||||
LOCAL_PVE,
|
||||
CROSSPLAY
|
||||
}
|
||||
|
||||
enum class PlayerPerspective {
|
||||
FIRST_PERSON,
|
||||
THIRD_PERSON,
|
||||
BIRD_VIEW_ISOMETRIC,
|
||||
SIDE_VIEW,
|
||||
TEXT,
|
||||
AUDITORY,
|
||||
VIRTUAL_REALITY
|
||||
}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
package de.grimsi.gameyfin.pluginapi.gamemetadata
|
||||
|
||||
interface GameMetadataPlugin {
|
||||
fun getConfig(): Map<String, String>
|
||||
fun setConfig(config: Map<String, String>)
|
||||
fun fetchMetadata(gameId: String): GameMetadata
|
||||
}
|
||||
Reference in New Issue
Block a user