UPDATE: Lua in extra setting
Some checks failed
Gitea Auto Deploy / Deploy-Container (push) Has been cancelled
Some checks failed
Gitea Auto Deploy / Deploy-Container (push) Has been cancelled
This commit is contained in:
6
bun.lock
6
bun.lock
@@ -15,9 +15,11 @@
|
|||||||
"lucide-react": "^0.563.0",
|
"lucide-react": "^0.563.0",
|
||||||
"next": "16.1.6",
|
"next": "16.1.6",
|
||||||
"next-intl": "^4.8.2",
|
"next-intl": "^4.8.2",
|
||||||
|
"prismjs": "^1.30.0",
|
||||||
"react": "19.2.4",
|
"react": "19.2.4",
|
||||||
"react-dom": "19.2.4",
|
"react-dom": "19.2.4",
|
||||||
"react-select": "^5.10.2",
|
"react-select": "^5.10.2",
|
||||||
|
"react-simple-code-editor": "^0.14.1",
|
||||||
"react-toastify": "^11.0.5",
|
"react-toastify": "^11.0.5",
|
||||||
"sharp": "^0.34.5",
|
"sharp": "^0.34.5",
|
||||||
"zod": "^4.3.6",
|
"zod": "^4.3.6",
|
||||||
@@ -1035,6 +1037,8 @@
|
|||||||
|
|
||||||
"prism-react-renderer": ["prism-react-renderer@2.4.1", "", { "dependencies": { "@types/prismjs": "^1.26.0", "clsx": "^2.0.0" }, "peerDependencies": { "react": ">=16.0.0" } }, "sha512-ey8Ls/+Di31eqzUxC46h8MksNuGx/n0AAC8uKpwFau4RPDYLuE3EXTp8N8G2vX2N7UC/+IXeNUnlWBGGcAG+Ig=="],
|
"prism-react-renderer": ["prism-react-renderer@2.4.1", "", { "dependencies": { "@types/prismjs": "^1.26.0", "clsx": "^2.0.0" }, "peerDependencies": { "react": ">=16.0.0" } }, "sha512-ey8Ls/+Di31eqzUxC46h8MksNuGx/n0AAC8uKpwFau4RPDYLuE3EXTp8N8G2vX2N7UC/+IXeNUnlWBGGcAG+Ig=="],
|
||||||
|
|
||||||
|
"prismjs": ["prismjs@1.30.0", "", {}, "sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw=="],
|
||||||
|
|
||||||
"prop-types": ["prop-types@15.8.1", "", { "dependencies": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", "react-is": "^16.13.1" } }, "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg=="],
|
"prop-types": ["prop-types@15.8.1", "", { "dependencies": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", "react-is": "^16.13.1" } }, "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg=="],
|
||||||
|
|
||||||
"proxy-from-env": ["proxy-from-env@1.1.0", "", {}, "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="],
|
"proxy-from-env": ["proxy-from-env@1.1.0", "", {}, "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="],
|
||||||
@@ -1051,6 +1055,8 @@
|
|||||||
|
|
||||||
"react-select": ["react-select@5.10.2", "", { "dependencies": { "@babel/runtime": "^7.12.0", "@emotion/cache": "^11.4.0", "@emotion/react": "^11.8.1", "@floating-ui/dom": "^1.0.1", "@types/react-transition-group": "^4.4.0", "memoize-one": "^6.0.0", "prop-types": "^15.6.0", "react-transition-group": "^4.3.0", "use-isomorphic-layout-effect": "^1.2.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-Z33nHdEFWq9tfnfVXaiM12rbJmk+QjFEztWLtmXqQhz6Al4UZZ9xc0wiatmGtUOCCnHN0WizL3tCMYRENX4rVQ=="],
|
"react-select": ["react-select@5.10.2", "", { "dependencies": { "@babel/runtime": "^7.12.0", "@emotion/cache": "^11.4.0", "@emotion/react": "^11.8.1", "@floating-ui/dom": "^1.0.1", "@types/react-transition-group": "^4.4.0", "memoize-one": "^6.0.0", "prop-types": "^15.6.0", "react-transition-group": "^4.3.0", "use-isomorphic-layout-effect": "^1.2.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-Z33nHdEFWq9tfnfVXaiM12rbJmk+QjFEztWLtmXqQhz6Al4UZZ9xc0wiatmGtUOCCnHN0WizL3tCMYRENX4rVQ=="],
|
||||||
|
|
||||||
|
"react-simple-code-editor": ["react-simple-code-editor@0.14.1", "", { "peerDependencies": { "react": ">=16.8.0", "react-dom": ">=16.8.0" } }, "sha512-BR5DtNRy+AswWJECyA17qhUDvrrCZ6zXOCfkQY5zSmb96BVUbpVAv03WpcjcwtCwiLbIANx3gebHOcXYn1EHow=="],
|
||||||
|
|
||||||
"react-toastify": ["react-toastify@11.0.5", "", { "dependencies": { "clsx": "^2.1.1" }, "peerDependencies": { "react": "^18 || ^19", "react-dom": "^18 || ^19" } }, "sha512-EpqHBGvnSTtHYhCPLxML05NLY2ZX0JURbAdNYa6BUkk+amz4wbKBQvoKQAB0ardvSarUBuY4Q4s1sluAzZwkmA=="],
|
"react-toastify": ["react-toastify@11.0.5", "", { "dependencies": { "clsx": "^2.1.1" }, "peerDependencies": { "react": "^18 || ^19", "react-dom": "^18 || ^19" } }, "sha512-EpqHBGvnSTtHYhCPLxML05NLY2ZX0JURbAdNYa6BUkk+amz4wbKBQvoKQAB0ardvSarUBuY4Q4s1sluAzZwkmA=="],
|
||||||
|
|
||||||
"react-transition-group": ["react-transition-group@4.4.5", "", { "dependencies": { "@babel/runtime": "^7.5.5", "dom-helpers": "^5.0.1", "loose-envify": "^1.4.0", "prop-types": "^15.6.2" }, "peerDependencies": { "react": ">=16.6.0", "react-dom": ">=16.6.0" } }, "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g=="],
|
"react-transition-group": ["react-transition-group@4.4.5", "", { "dependencies": { "@babel/runtime": "^7.5.5", "dom-helpers": "^5.0.1", "loose-envify": "^1.4.0", "prop-types": "^15.6.2" }, "peerDependencies": { "react": ">=16.6.0", "react-dom": ">=16.6.0" } }, "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g=="],
|
||||||
|
|||||||
@@ -19,9 +19,11 @@
|
|||||||
"lucide-react": "^0.563.0",
|
"lucide-react": "^0.563.0",
|
||||||
"next": "16.1.6",
|
"next": "16.1.6",
|
||||||
"next-intl": "^4.8.2",
|
"next-intl": "^4.8.2",
|
||||||
|
"prismjs": "^1.30.0",
|
||||||
"react": "19.2.4",
|
"react": "19.2.4",
|
||||||
"react-dom": "19.2.4",
|
"react-dom": "19.2.4",
|
||||||
"react-select": "^5.10.2",
|
"react-select": "^5.10.2",
|
||||||
|
"react-simple-code-editor": "^0.14.1",
|
||||||
"react-toastify": "^11.0.5",
|
"react-toastify": "^11.0.5",
|
||||||
"sharp": "^0.34.5",
|
"sharp": "^0.34.5",
|
||||||
"zod": "^4.3.6",
|
"zod": "^4.3.6",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
'use client'
|
'use client'
|
||||||
import { motion } from "framer-motion"
|
import { motion } from "framer-motion"
|
||||||
import { EyeOff, Eye, Hammer, RefreshCw, ShieldBan, User, Swords, SkipForward, BowArrow, Info, RouteIcon, Search } from "lucide-react"
|
import { EyeOff, Eye, Hammer, RefreshCw, ShieldBan, User, Swords, SkipForward, BowArrow, Info, RouteIcon, Search, CupSoda } from "lucide-react"
|
||||||
import useGlobalStore from '@/stores/globalStore'
|
import useGlobalStore from '@/stores/globalStore'
|
||||||
import { useTranslations } from "next-intl"
|
import { useTranslations } from "next-intl"
|
||||||
import { getLocaleName, getNameChar } from "@/helper"
|
import { getLocaleName, getNameChar } from "@/helper"
|
||||||
@@ -8,9 +8,13 @@ import useLocaleStore from "@/stores/localeStore"
|
|||||||
import SelectCustomImage from "../select/customSelectImage"
|
import SelectCustomImage from "../select/customSelectImage"
|
||||||
import { useMemo, useState } from "react"
|
import { useMemo, useState } from "react"
|
||||||
import useDetailDataStore from "@/stores/detailDataStore"
|
import useDetailDataStore from "@/stores/detailDataStore"
|
||||||
|
import Editor from "react-simple-code-editor"
|
||||||
|
import Prism from "prismjs"
|
||||||
|
import "prismjs/components/prism-lua"
|
||||||
|
import "prismjs/themes/prism-tomorrow.css"
|
||||||
|
|
||||||
export default function ExtraSettingBar() {
|
export default function ExtraSettingBar() {
|
||||||
const { extraData, setExtraData, isEnableChangePath, setIsEnableChangePath } = useGlobalStore()
|
const { extraData, setExtraData, isEnableChangePath, setIsEnableChangePath, isEnableLua, setIsEnableLua } = useGlobalStore()
|
||||||
const transI18n = useTranslations("DataPage")
|
const transI18n = useTranslations("DataPage")
|
||||||
const { mapAvatar, mapPeak, stage, baseType } = useDetailDataStore()
|
const { mapAvatar, mapPeak, stage, baseType } = useDetailDataStore()
|
||||||
const { locale } = useLocaleStore()
|
const { locale } = useLocaleStore()
|
||||||
@@ -259,7 +263,8 @@ export default function ExtraSettingBar() {
|
|||||||
main: Number(it) || 8001,
|
main: Number(it) || 8001,
|
||||||
multi_path_main: extraData?.multi_path?.multi_path_main || [],
|
multi_path_main: extraData?.multi_path?.multi_path_main || [],
|
||||||
multi_path_march_7: extraData?.multi_path?.multi_path_march_7 || []
|
multi_path_march_7: extraData?.multi_path?.multi_path_march_7 || []
|
||||||
}
|
},
|
||||||
|
lua: extraData?.lua || null
|
||||||
})
|
})
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
@@ -289,7 +294,8 @@ export default function ExtraSettingBar() {
|
|||||||
main: extraData?.multi_path?.main || 8001,
|
main: extraData?.multi_path?.main || 8001,
|
||||||
multi_path_main: extraData?.multi_path?.multi_path_main || [],
|
multi_path_main: extraData?.multi_path?.multi_path_main || [],
|
||||||
multi_path_march_7: extraData?.multi_path?.multi_path_march_7 || []
|
multi_path_march_7: extraData?.multi_path?.multi_path_march_7 || []
|
||||||
}
|
},
|
||||||
|
lua: extraData?.lua || null
|
||||||
})
|
})
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
@@ -320,7 +326,8 @@ export default function ExtraSettingBar() {
|
|||||||
skip_node: extraData?.challenge?.skip_node || 0,
|
skip_node: extraData?.challenge?.skip_node || 0,
|
||||||
challenge_peak_group_id: parseInt(e.target.value) || 0,
|
challenge_peak_group_id: parseInt(e.target.value) || 0,
|
||||||
challenge_peak_group_id_list: extraData?.challenge?.challenge_peak_group_id_list || []
|
challenge_peak_group_id_list: extraData?.challenge?.challenge_peak_group_id_list || []
|
||||||
}
|
},
|
||||||
|
lua: extraData?.lua || null
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
@@ -350,7 +357,8 @@ export default function ExtraSettingBar() {
|
|||||||
challenge_peak_group_id: extraData?.challenge?.challenge_peak_group_id || 0,
|
challenge_peak_group_id: extraData?.challenge?.challenge_peak_group_id || 0,
|
||||||
challenge_peak_group_id_list: extraData?.challenge?.challenge_peak_group_id_list || [],
|
challenge_peak_group_id_list: extraData?.challenge?.challenge_peak_group_id_list || [],
|
||||||
skip_node: parseInt(e.target.value) || 0
|
skip_node: parseInt(e.target.value) || 0
|
||||||
}
|
},
|
||||||
|
lua: extraData?.lua || null
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
@@ -427,6 +435,52 @@ export default function ExtraSettingBar() {
|
|||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div className="space-y-4">
|
||||||
|
<h3 className="text-lg font-bold flex items-center gap-2">
|
||||||
|
{"Lua"}
|
||||||
|
<div className="tooltip tooltip-info tooltip-bottom">
|
||||||
|
<CupSoda className="text-primary" size={20} />
|
||||||
|
</div>
|
||||||
|
<input
|
||||||
|
type="checkbox"
|
||||||
|
className="toggle toggle-primary"
|
||||||
|
checked={isEnableLua}
|
||||||
|
onChange={(e) => setIsEnableLua(e.target.checked)}
|
||||||
|
/>
|
||||||
|
</h3>
|
||||||
|
{isEnableLua && (
|
||||||
|
<>
|
||||||
|
<div className="form-control bg-base-200 p-4 rounded-xl shadow">
|
||||||
|
<label className="label">
|
||||||
|
<span className="label-text">Lua Script</span>
|
||||||
|
</label>
|
||||||
|
|
||||||
|
<div className="rounded-xl overflow-hidden border border-base-300">
|
||||||
|
<Editor
|
||||||
|
value={extraData?.lua || ""}
|
||||||
|
onValueChange={(code) =>
|
||||||
|
setExtraData(
|
||||||
|
{
|
||||||
|
...extraData,
|
||||||
|
lua: code
|
||||||
|
}
|
||||||
|
)
|
||||||
|
}
|
||||||
|
highlight={(code) => Prism.highlight(code, Prism.languages.lua, "lua")}
|
||||||
|
padding={16}
|
||||||
|
textareaClassName="outline-none"
|
||||||
|
className="text-sm font-mono min-h-[300px]"
|
||||||
|
style={{
|
||||||
|
background: "#1e1e1e",
|
||||||
|
color: "#fff",
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</>
|
||||||
|
)}
|
||||||
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -45,6 +45,7 @@ export const connectToPS = async (): Promise<{ success: boolean, message: string
|
|||||||
return { success: false, message: response.message }
|
return { success: false, message: response.message }
|
||||||
} else {
|
} else {
|
||||||
setIsConnectPS(true)
|
setIsConnectPS(true)
|
||||||
|
|
||||||
setExtraData(response?.extra_data)
|
setExtraData(response?.extra_data)
|
||||||
return { success: true, message: "" }
|
return { success: true, message: "" }
|
||||||
}
|
}
|
||||||
@@ -59,7 +60,7 @@ export const syncDataToPS = async (): Promise<{ success: boolean, message: strin
|
|||||||
password
|
password
|
||||||
} = useConnectStore.getState()
|
} = useConnectStore.getState()
|
||||||
|
|
||||||
const {extraData, setIsConnectPS, setExtraData, isEnableChangePath} = useGlobalStore.getState()
|
const {extraData, setIsConnectPS, setExtraData, isEnableChangePath, isEnableLua} = useGlobalStore.getState()
|
||||||
|
|
||||||
|
|
||||||
const {avatars, battle_type, moc_config, pf_config, as_config, ce_config, peak_config} = useUserDataStore.getState()
|
const {avatars, battle_type, moc_config, pf_config, as_config, ce_config, peak_config} = useUserDataStore.getState()
|
||||||
@@ -91,6 +92,10 @@ export const syncDataToPS = async (): Promise<{ success: boolean, message: strin
|
|||||||
newExtra.multi_path = undefined
|
newExtra.multi_path = undefined
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (newExtra && !isEnableLua) {
|
||||||
|
newExtra.lua = null
|
||||||
|
}
|
||||||
|
|
||||||
const response = await SendDataToServer(username, password, urlQuery, data, newExtra)
|
const response = await SendDataToServer(username, password, urlQuery, data, newExtra)
|
||||||
if (typeof response === "string") {
|
if (typeof response === "string") {
|
||||||
setIsConnectPS(false)
|
setIsConnectPS(false)
|
||||||
@@ -100,7 +105,11 @@ export const syncDataToPS = async (): Promise<{ success: boolean, message: strin
|
|||||||
return { success: false, message: response.message }
|
return { success: false, message: response.message }
|
||||||
} else {
|
} else {
|
||||||
setIsConnectPS(true)
|
setIsConnectPS(true)
|
||||||
setExtraData(response?.extra_data)
|
const newData = structuredClone(response?.extra_data)
|
||||||
|
if (newData) {
|
||||||
|
newData.lua = extraData?.lua || null
|
||||||
|
}
|
||||||
|
setExtraData(newData)
|
||||||
return { success: true, message: "" }
|
return { success: true, message: "" }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -5,7 +5,9 @@ interface GlobalState {
|
|||||||
isConnectPS: boolean;
|
isConnectPS: boolean;
|
||||||
extraData?: ExtraData;
|
extraData?: ExtraData;
|
||||||
isEnableChangePath: boolean
|
isEnableChangePath: boolean
|
||||||
|
isEnableLua: boolean
|
||||||
setIsEnableChangePath: (newIsEnableChangePath: boolean) => void;
|
setIsEnableChangePath: (newIsEnableChangePath: boolean) => void;
|
||||||
|
setIsEnableLua: (newIsEnableLua: boolean) => void;
|
||||||
setExtraData: (newExtraData: ExtraData | undefined) => void;
|
setExtraData: (newExtraData: ExtraData | undefined) => void;
|
||||||
setIsConnectPS: (newIsConnectPS: boolean) => void;
|
setIsConnectPS: (newIsConnectPS: boolean) => void;
|
||||||
}
|
}
|
||||||
@@ -14,7 +16,9 @@ const useGlobalStore = create<GlobalState>((set) => ({
|
|||||||
isConnectPS: false,
|
isConnectPS: false,
|
||||||
extraData: undefined,
|
extraData: undefined,
|
||||||
isEnableChangePath: false,
|
isEnableChangePath: false,
|
||||||
|
isEnableLua: false,
|
||||||
setIsEnableChangePath: (newIsEnableChangePath: boolean) => set({ isEnableChangePath: newIsEnableChangePath }),
|
setIsEnableChangePath: (newIsEnableChangePath: boolean) => set({ isEnableChangePath: newIsEnableChangePath }),
|
||||||
|
setIsEnableLua: (newIsEnableLua: boolean) => set({ isEnableLua: newIsEnableLua }),
|
||||||
setExtraData: (newExtraData: ExtraData | undefined) => set({ extraData: newExtraData }),
|
setExtraData: (newExtraData: ExtraData | undefined) => set({ extraData: newExtraData }),
|
||||||
setIsConnectPS: (newIsConnectPS: boolean) => set({ isConnectPS: newIsConnectPS }),
|
setIsConnectPS: (newIsConnectPS: boolean) => set({ isConnectPS: newIsConnectPS }),
|
||||||
}));
|
}));
|
||||||
|
|||||||
@@ -21,5 +21,6 @@ export interface ExtraData {
|
|||||||
march_7: number
|
march_7: number
|
||||||
multi_path_main: number[]
|
multi_path_main: number[]
|
||||||
multi_path_march_7: number[]
|
multi_path_march_7: number[]
|
||||||
}
|
},
|
||||||
|
lua: string | null
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,5 +24,6 @@ export const extraDataSchema = z.object({
|
|||||||
march_7: z.number(),
|
march_7: z.number(),
|
||||||
multi_path_main: z.array(z.number()),
|
multi_path_main: z.array(z.number()),
|
||||||
multi_path_march_7: z.array(z.number())
|
multi_path_march_7: z.array(z.number())
|
||||||
})
|
}),
|
||||||
|
lua: z.string().optional()
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user