package main

import (
	"github.com/MaaXYZ/MaaEnd/agent/go-service/autoecofarm"
	"github.com/MaaXYZ/MaaEnd/agent/go-service/autofight"
	"github.com/MaaXYZ/MaaEnd/agent/go-service/autosell"
	"github.com/MaaXYZ/MaaEnd/agent/go-service/autostockpile"
	"github.com/MaaXYZ/MaaEnd/agent/go-service/batchaddfriends"
	"github.com/MaaXYZ/MaaEnd/agent/go-service/bettersliding"
	"github.com/MaaXYZ/MaaEnd/agent/go-service/blueprintimport"
	"github.com/MaaXYZ/MaaEnd/agent/go-service/common/attachregex"
	"github.com/MaaXYZ/MaaEnd/agent/go-service/common/autoaltclick"
	"github.com/MaaXYZ/MaaEnd/agent/go-service/common/charactercontroller"
	"github.com/MaaXYZ/MaaEnd/agent/go-service/common/clearhitcount"
	"github.com/MaaXYZ/MaaEnd/agent/go-service/common/expressionrecognition"
	"github.com/MaaXYZ/MaaEnd/agent/go-service/common/pipelineoverride"
	"github.com/MaaXYZ/MaaEnd/agent/go-service/common/subtask"
	"github.com/MaaXYZ/MaaEnd/agent/go-service/dailyrewards"
	"github.com/MaaXYZ/MaaEnd/agent/go-service/essencefilter"
	"github.com/MaaXYZ/MaaEnd/agent/go-service/itemtransfer"
	maptracker "github.com/MaaXYZ/MaaEnd/agent/go-service/map-tracker"
	"github.com/MaaXYZ/MaaEnd/agent/go-service/pkg/resource"
	puzzle "github.com/MaaXYZ/MaaEnd/agent/go-service/puzzle-solver"
	"github.com/MaaXYZ/MaaEnd/agent/go-service/scenemanager"
	"github.com/MaaXYZ/MaaEnd/agent/go-service/taskersink/aspectratio"
	"github.com/MaaXYZ/MaaEnd/agent/go-service/taskersink/cursormove"
	"github.com/MaaXYZ/MaaEnd/agent/go-service/taskersink/hdrcheck"
	"github.com/MaaXYZ/MaaEnd/agent/go-service/taskersink/processcheck"
	"github.com/MaaXYZ/MaaEnd/agent/go-service/visitfriends"
	"github.com/rs/zerolog/log"
)

func registerAll() {
	// Resource Sink
	resource.EnsureResourcePathSink()

	// Pre-Check Custom
	aspectratio.Register()
	hdrcheck.Register()
	processcheck.Register()
	cursormove.Register()

	// General Custom
	subtask.Register()
	clearhitcount.Register()
	pipelineoverride.Register()
	expressionrecognition.Register()
	attachregex.Register()
	autoaltclick.Register()
	charactercontroller.Register()

	// Business Custom
	autosell.Register()
	blueprintimport.Register()
	puzzle.Register()
	bettersliding.Register()
	essencefilter.Register()
	dailyrewards.Register()
	maptracker.Register()
	batchaddfriends.Register()
	autoecofarm.Register()
	autofight.Register()
	visitfriends.Register()
	scenemanager.Register()
	autostockpile.Register()
	itemtransfer.Register()
	log.Info().
		Msg("All custom components and sinks registered successfully")
}
