Fix up the [Client] [Server] stupid shit

This commit is contained in:
2025-07-20 17:24:54 +02:00
parent 907490d37a
commit 42de0ddbb2

View File

@@ -167,13 +167,40 @@ func ParseClass(file string) (*Class, error) {
} }
className := strings.TrimSpace(class.Text()) className := strings.TrimSpace(class.Text())
// Clean up class name to be a valid Lua identifier // Clean up class name to be a valid Lua identifier
// Replace spaces and special characters with underscores // Handle [Client], [Server] patterns as affixes
className = strings.ReplaceAll(className, " ", "_") // Replace "Class [Client]" with "Class_Client"
// Replace "Class [Client] [Client] : Parent" with "Class_Client_Client_Parent"
// First, handle the inheritance part (after ":")
if strings.Contains(className, " : ") {
parts := strings.Split(className, " : ")
if len(parts) == 2 {
className = parts[0] + "_" + parts[1]
}
}
// Handle [Client] and [Server] patterns
// Replace "[Client]" with "_Client"
className = strings.ReplaceAll(className, "[Client]", "_Client")
className = strings.ReplaceAll(className, "[Server]", "_Server")
// Remove any remaining brackets and clean up
className = strings.ReplaceAll(className, "[", "") className = strings.ReplaceAll(className, "[", "")
className = strings.ReplaceAll(className, "]", "") className = strings.ReplaceAll(className, "]", "")
className = strings.ReplaceAll(className, ":", "_")
className = strings.ReplaceAll(className, "-", "_") className = strings.ReplaceAll(className, "-", "_")
className = strings.ReplaceAll(className, ",", "") className = strings.ReplaceAll(className, ",", "")
// Replace spaces with underscores
className = strings.ReplaceAll(className, " ", "_")
// Clean up multiple underscores
for strings.Contains(className, "__") {
className = strings.ReplaceAll(className, "__", "_")
}
// Remove leading/trailing underscores
className = strings.Trim(className, "_")
res.ClassName = className res.ClassName = className
log.Info("Found class: %s (cleaned from: %s)", res.ClassName, strings.TrimSpace(class.Text())) log.Info("Found class: %s (cleaned from: %s)", res.ClassName, strings.TrimSpace(class.Text()))