mirror of
https://github.com/Mezeporta/Erupe.git
synced 2025-12-14 16:04:38 +01:00
recurse quest enum into dirs
This commit is contained in:
@@ -64,27 +64,32 @@ func handleMsgMhfEnumerateQuest(s *Session, p mhfpacket.MHFPacket) {
|
|||||||
var totalCount, returnedCount uint16
|
var totalCount, returnedCount uint16
|
||||||
bf := byteframe.NewByteFrame()
|
bf := byteframe.NewByteFrame()
|
||||||
bf.WriteUint16(0)
|
bf.WriteUint16(0)
|
||||||
files, err := ioutil.ReadDir(fmt.Sprintf("%s/events/", s.server.erupeConfig.BinPath))
|
err := filepath.Walk(fmt.Sprintf("%s/events/", s.server.erupeConfig.BinPath), func(path string, info os.FileInfo, err error) error {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
stubEnumerateNoResults(s, pkt.AckHandle)
|
return err
|
||||||
return
|
} else if info.IsDir() {
|
||||||
} else {
|
return nil
|
||||||
for _, file := range files {
|
}
|
||||||
data, err := ioutil.ReadFile(fmt.Sprintf("%s/events/%s", s.server.erupeConfig.BinPath, file.Name()))
|
data, err := ioutil.ReadFile(path)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
continue
|
return err
|
||||||
|
} else {
|
||||||
|
if len(data) > 850 || len(data) < 400 {
|
||||||
|
return nil // Could be more or less strict with size limits
|
||||||
} else {
|
} else {
|
||||||
if len(data) > 850 || len(data) < 400 {
|
totalCount++
|
||||||
continue // Could be more or less strict with size limits
|
if totalCount > pkt.Offset && len(bf.Data()) < 64000 {
|
||||||
} else {
|
returnedCount++
|
||||||
totalCount++
|
bf.WriteBytes(data)
|
||||||
if totalCount > pkt.Offset && len(bf.Data()) < 64000 {
|
return nil
|
||||||
returnedCount++
|
|
||||||
bf.WriteBytes(data)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return nil
|
||||||
|
})
|
||||||
|
if err != nil || totalCount == 0 {
|
||||||
|
doAckBufSucceed(s, pkt.AckHandle, make([]byte, 18))
|
||||||
|
return
|
||||||
}
|
}
|
||||||
bf.WriteUint16(0) // Unk
|
bf.WriteUint16(0) // Unk
|
||||||
bf.WriteUint16(0) // Unk
|
bf.WriteUint16(0) // Unk
|
||||||
|
|||||||
Reference in New Issue
Block a user