diff --git a/globals/globals.go b/globals/globals.go index 22539b8..1658215 100644 --- a/globals/globals.go +++ b/globals/globals.go @@ -1,6 +1,7 @@ package globals import ( + presign_post "github.com/PretendoNetwork/aws-sdk-presigned-post-go" "github.com/PretendoNetwork/nex-go" "github.com/PretendoNetwork/plogger-go" "github.com/PretendoNetwork/super-mario-maker-secure/database" @@ -10,5 +11,5 @@ import ( var Logger = plogger.NewLogger() var NEXServer *nex.Server var S3Client *s3.Client -var HMACSecret []byte +var S3PresignClient *presign_post.PresignClient var DataStoreIDGenerators []*database.DataStoreIDGenerator diff --git a/go.mod b/go.mod index 7fe0cb0..b97d96f 100644 --- a/go.mod +++ b/go.mod @@ -3,32 +3,40 @@ module github.com/PretendoNetwork/super-mario-maker-secure go 1.19 require ( - github.com/PretendoNetwork/nex-go v1.0.29 - github.com/PretendoNetwork/nex-protocols-common-go v1.0.23 - github.com/PretendoNetwork/nex-protocols-go v1.0.41 - github.com/PretendoNetwork/plogger-go v1.0.3 - github.com/aws/aws-sdk-go-v2/service/s3 v1.37.0 - github.com/gocql/gocql v1.5.2 + github.com/PretendoNetwork/aws-sdk-presigned-post-go v1.0.0 + github.com/PretendoNetwork/nex-go v1.0.41 + github.com/PretendoNetwork/nex-protocols-common-go v1.0.28 + github.com/PretendoNetwork/nex-protocols-go v1.0.54 + github.com/PretendoNetwork/plogger-go v1.0.4 + github.com/aws/aws-sdk-go-v2 v1.21.1 + github.com/aws/aws-sdk-go-v2/config v1.18.44 + github.com/aws/aws-sdk-go-v2/credentials v1.13.42 + github.com/aws/aws-sdk-go-v2/service/s3 v1.40.1 + github.com/gocql/gocql v1.6.0 github.com/joho/godotenv v1.5.1 - go.mongodb.org/mongo-driver v1.12.0 + go.mongodb.org/mongo-driver v1.12.1 ) require ( - github.com/aws/aws-sdk-go-v2 v1.19.0 // indirect - github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.35 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.29 // indirect - github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.27 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.11 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.30 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.29 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.4 // indirect - github.com/aws/smithy-go v1.13.5 // indirect + github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.14 // indirect + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.12 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.42 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.36 // indirect + github.com/aws/aws-sdk-go-v2/internal/ini v1.3.44 // indirect + github.com/aws/aws-sdk-go-v2/internal/v4a v1.1.5 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.15 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.37 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.36 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.15.5 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.15.1 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.17.2 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.23.1 // indirect + github.com/aws/smithy-go v1.15.0 // indirect github.com/fatih/color v1.15.0 // indirect github.com/golang/snappy v0.0.4 // indirect github.com/hailocab/go-hostpool v0.0.0-20160125115350-e80d13ce29ed // indirect github.com/jwalton/go-supportscolor v1.2.0 // indirect - github.com/klauspost/compress v1.16.7 // indirect + github.com/klauspost/compress v1.17.0 // indirect github.com/mattn/go-colorable v0.1.13 // indirect github.com/mattn/go-isatty v0.0.19 // indirect github.com/montanaflynn/stats v0.7.1 // indirect @@ -37,11 +45,12 @@ require ( github.com/xdg-go/scram v1.1.2 // indirect github.com/xdg-go/stringprep v1.0.4 // indirect github.com/youmark/pkcs8 v0.0.0-20201027041543-1326539a0a0a // indirect - golang.org/x/crypto v0.11.0 // indirect - golang.org/x/exp v0.0.0-20230713183714-613f0c0eb8a1 // indirect - golang.org/x/sync v0.3.0 // indirect - golang.org/x/sys v0.10.0 // indirect - golang.org/x/term v0.10.0 // indirect - golang.org/x/text v0.11.0 // indirect + golang.org/x/crypto v0.14.0 // indirect + golang.org/x/exp v0.0.0-20231006140011-7918f672742d // indirect + golang.org/x/mod v0.13.0 // indirect + golang.org/x/sync v0.4.0 // indirect + golang.org/x/sys v0.13.0 // indirect + golang.org/x/term v0.13.0 // indirect + golang.org/x/text v0.13.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect ) diff --git a/go.sum b/go.sum index 8397011..0e4c6ce 100644 --- a/go.sum +++ b/go.sum @@ -1,33 +1,49 @@ -github.com/PretendoNetwork/nex-go v1.0.29 h1:Mu/UGpYEt0YHgJR/l+8Ysc5rlX91NE86ab3sMSKpPWo= -github.com/PretendoNetwork/nex-go v1.0.29/go.mod h1:tWfWhrC/DCJuS08jTk0ceOv2R1VtElvKSVv13To6miE= -github.com/PretendoNetwork/nex-protocols-common-go v1.0.23 h1:5nhsCg0NtJ+Wlq4eAxLkpazsBDWOnSHLgpllW3XUeE0= -github.com/PretendoNetwork/nex-protocols-common-go v1.0.23/go.mod h1:WqdDoCdjAHg4cdnIGJCrBQUX/JQIJHbw0D5oQWZ8mfk= -github.com/PretendoNetwork/nex-protocols-go v1.0.41 h1:f4AJxoIgKt5k22IcYF/SM5MazR0/34hmyflZkFt/Hug= -github.com/PretendoNetwork/nex-protocols-go v1.0.41/go.mod h1:DPRCNkz45onV4ySCRJNp2+69NQnRa+SRqeErsnjW6P4= -github.com/PretendoNetwork/plogger-go v1.0.3 h1:KEnrUfPaCn0LFweg8OrhtiDhlN3pclWpNhlmAtmgfB0= -github.com/PretendoNetwork/plogger-go v1.0.3/go.mod h1:7kD6M4vPq1JL4LTuPg6kuB1OvUBOwQOtAvTaUwMbwvU= -github.com/aws/aws-sdk-go-v2 v1.19.0 h1:klAT+y3pGFBU/qVf1uzwttpBbiuozJYWzNLHioyDJ+k= -github.com/aws/aws-sdk-go-v2 v1.19.0/go.mod h1:uzbQtefpm44goOPmdKyAlXSNcwlRgF3ePWVW6EtJvvw= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10 h1:dK82zF6kkPeCo8J1e+tGx4JdvDIQzj7ygIoLg8WMuGs= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10/go.mod h1:VeTZetY5KRJLuD/7fkQXMU6Mw7H5m/KP2J5Iy9osMno= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.35 h1:hMUCiE3Zi5AHrRNGf5j985u0WyqI6r2NULhUfo0N/No= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.35/go.mod h1:ipR5PvpSPqIqL5Mi82BxLnfMkHVbmco8kUwO2xrCi0M= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.29 h1:yOpYx+FTBdpk/g+sBU6Cb1H0U/TLEcYYp66mYqsPpcc= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.29/go.mod h1:M/eUABlDbw2uVrdAn+UsI6M727qp2fxkp8K0ejcBDUY= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.27 h1:cZG7psLfqpkB6H+fIrgUDWmlzM474St1LP0jcz272yI= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.27/go.mod h1:ZdjYvJpDlefgh8/hWelJhqgqJeodxu4SmbVsSdBlL7E= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.11 h1:y2+VQzC6Zh2ojtV2LoC0MNwHWc6qXv/j2vrQtlftkdA= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.11/go.mod h1:iV4q2hsqtNECrfmlXyord9u4zyuFEJX9eLgLpSPzWA8= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.30 h1:Bje8Xkh2OWpjBdNfXLrnn8eZg569dUQmhgtydxAYyP0= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.30/go.mod h1:qQtIBl5OVMfmeQkz8HaVyh5DzFmmFXyvK27UgIgOr4c= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.29 h1:IiDolu/eLmuB18DRZibj77n1hHQT7z12jnGO7Ze3pLc= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.29/go.mod h1:fDbkK4o7fpPXWn8YAPmTieAMuB9mk/VgvW64uaUqxd4= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.4 h1:hx4WksB0NRQ9utR+2c3gEGzl6uKj3eM6PMQ6tN3lgXs= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.4/go.mod h1:JniVpqvw90sVjNqanGLufrVapWySL28fhBlYgl96Q/w= -github.com/aws/aws-sdk-go-v2/service/s3 v1.37.0 h1:PalLOEGZ/4XfQxpGZFTLaoJSmPoybnqJYotaIZEf/Rg= -github.com/aws/aws-sdk-go-v2/service/s3 v1.37.0/go.mod h1:PwyKKVL0cNkC37QwLcrhyeCrAk+5bY8O2ou7USyAS2A= -github.com/aws/smithy-go v1.13.5 h1:hgz0X/DX0dGqTYpGALqXJoRKRj5oQ7150i5FdTePzO8= -github.com/aws/smithy-go v1.13.5/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= +github.com/PretendoNetwork/aws-sdk-presigned-post-go v1.0.0 h1:YWJpAUpZvTXv+GAplbF6gmR7HGN/uAX2LhHseASYFCI= +github.com/PretendoNetwork/aws-sdk-presigned-post-go v1.0.0/go.mod h1:EflPd+1O5Hr5gfGDlWHPL87XkpAMbSFEQY+/NzoWuT4= +github.com/PretendoNetwork/nex-go v1.0.41 h1:TcBb1Bpe2KAB+AXaGX1K9NVQBRtZJIoy4yCvRde2xbI= +github.com/PretendoNetwork/nex-go v1.0.41/go.mod h1:QwHEa165DeVd0xIuthrgc3j6NWXT8lyPSG6t5kC/Shk= +github.com/PretendoNetwork/nex-protocols-common-go v1.0.28 h1:ErkWga7Uzn4WoDU8Q/Sy+geHy0fF0G/5wFnL5i6hngI= +github.com/PretendoNetwork/nex-protocols-common-go v1.0.28/go.mod h1:4jYhLg+Cb2qhJHyyA+f2OwCrmc98zuTO3JPWK22mIKw= +github.com/PretendoNetwork/nex-protocols-go v1.0.54 h1:nDbGnNpe7F/cwBZBvFFFPS1afZQ4OLpVHfF8t5xug/Y= +github.com/PretendoNetwork/nex-protocols-go v1.0.54/go.mod h1:136762CMIcAsTZDrt4W7gDE4ppiBuc9zN2QFOHESjS8= +github.com/PretendoNetwork/plogger-go v1.0.4 h1:PF7xHw9eDRHH+RsAP9tmAE7fG0N0p6H4iPwHKnsoXwc= +github.com/PretendoNetwork/plogger-go v1.0.4/go.mod h1:7kD6M4vPq1JL4LTuPg6kuB1OvUBOwQOtAvTaUwMbwvU= +github.com/aws/aws-sdk-go-v2 v1.21.1 h1:wjHYshtPpYOZm+/mu3NhVgRRc0baM6LJZOmxPZ5Cwzs= +github.com/aws/aws-sdk-go-v2 v1.21.1/go.mod h1:ErQhvNuEMhJjweavOYhxVkn2RUx7kQXVATHrjKtxIpM= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.14 h1:Sc82v7tDQ/vdU1WtuSyzZ1I7y/68j//HJ6uozND1IDs= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.14/go.mod h1:9NCTOURS8OpxvoAVHq79LK81/zC78hfRWFn+aL0SPcY= +github.com/aws/aws-sdk-go-v2/config v1.18.44 h1:U10NQ3OxiY0dGGozmVIENIDnCT0W432PWxk2VO8wGnY= +github.com/aws/aws-sdk-go-v2/config v1.18.44/go.mod h1:pHxnQBldd0heEdJmolLBk78D1Bf69YnKLY3LOpFImlU= +github.com/aws/aws-sdk-go-v2/credentials v1.13.42 h1:KMkjpZqcMOwtRHChVlHdNxTUUAC6NC/b58mRZDIdcRg= +github.com/aws/aws-sdk-go-v2/credentials v1.13.42/go.mod h1:7ltKclhvEB8305sBhrpls24HGxORl6qgnQqSJ314Uw8= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.12 h1:3j5lrl9kVQrJ1BU4O0z7MQ8sa+UXdiLuo4j0V+odNI8= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.12/go.mod h1:JbFpcHDBdsex1zpIKuVRorZSQiZEyc3MykNCcjgz174= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.42 h1:817VqVe6wvwE46xXy6YF5RywvjOX6U2zRQQ6IbQFK0s= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.42/go.mod h1:oDfgXoBBmj+kXnqxDDnIDnC56QBosglKp8ftRCTxR+0= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.36 h1:7ZApaXzWbo8slc+W5TynuUlB4z66g44h7uqa3/d/BsY= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.36/go.mod h1:rwr4WnmFi3RJO0M4dxbJtgi9BPLMpVBMX1nUte5ha9U= +github.com/aws/aws-sdk-go-v2/internal/ini v1.3.44 h1:quOJOqlbSfeJTboXLjYXM1M9T52LBXqLoTPlmsKLpBo= +github.com/aws/aws-sdk-go-v2/internal/ini v1.3.44/go.mod h1:LNy+P1+1LiRcCsVYr/4zG5n8zWFL0xsvZkOybjbftm8= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.1.5 h1:8JG9ny0BqBDzmtIzbpaN+eke152ZNsYKApFJ/q29Hxo= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.1.5/go.mod h1:kEDHQApP/ukMO9natNftgUN3NaTsMxK6jb2jjpSMX7Y= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.15 h1:7R8uRYyXzdD71KWVCL78lJZltah6VVznXBazvKjfH58= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.15/go.mod h1:26SQUPcTNgV1Tapwdt4a1rOsYRsnBsJHLMPoxK2b0d8= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.37 h1:Mx1zJlYbiUQANWT40koevLvxawGFolmkaP4m+LuyG7M= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.37/go.mod h1:PjKIAMFthKPgG/B8bbRpo3F8jfr2q2L+w3u78jJ12a0= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.36 h1:YXlm7LxwNlauqb2OrinWlcvtsflTzP8GaMvYfQBhoT4= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.36/go.mod h1:ou9ffqJ9hKOVZmjlC6kQ6oROAyG1M4yBKzR+9BKbDwk= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.15.5 h1:sAAz28SeA7YZl8Yaphjs9tlLsflhdniQPjf3X2cqr4s= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.15.5/go.mod h1:HC7gNz3VH0p+RvLKK+HqNQv/gHy+1Os3ko/F41s3+aw= +github.com/aws/aws-sdk-go-v2/service/s3 v1.40.1 h1:FqIaVPbs2W8U3fszl2PCL1IDKeRdM7TssjWamL6b2mg= +github.com/aws/aws-sdk-go-v2/service/s3 v1.40.1/go.mod h1:X0e0NCAx4GjOrKro7s9QYy+YEIFhgCkt6gYKVKhZB5Y= +github.com/aws/aws-sdk-go-v2/service/sso v1.15.1 h1:ZN3bxw9OYC5D6umLw6f57rNJfGfhg1DIAAcKpzyUTOE= +github.com/aws/aws-sdk-go-v2/service/sso v1.15.1/go.mod h1:PieckvBoT5HtyB9AsJRrYZFY2Z+EyfVM/9zG6gbV8DQ= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.17.2 h1:fSCCJuT5i6ht8TqGdZc5Q5K9pz/atrf7qH4iK5C9XzU= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.17.2/go.mod h1:5eNtr+vNc5vVd92q7SJ+U/HszsIdhZBEyi9dkMRKsp8= +github.com/aws/aws-sdk-go-v2/service/sts v1.23.1 h1:ASNYk1ypWAxRhJjKS0jBnTUeDl7HROOpeSMu1xDA/I8= +github.com/aws/aws-sdk-go-v2/service/sts v1.23.1/go.mod h1:2cnsAhVT3mqusovc2stUSUrSBGTcX9nh8Tu6xh//2eI= +github.com/aws/smithy-go v1.15.0 h1:PS/durmlzvAFpQHDs4wi4sNNP9ExsqZh6IlfdHXgKK8= +github.com/aws/smithy-go v1.15.0/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= github.com/bitly/go-hostpool v0.0.0-20171023180738-a3a6125de932 h1:mXoPYz/Ul5HYEDvkta6I8/rnYM5gSdSV2tJ6XbZuEtY= github.com/bitly/go-hostpool v0.0.0-20171023180738-a3a6125de932/go.mod h1:NOuUCSz6Q9T7+igc/hlvDOUdtWKryOrtFyIVABv/p7k= github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869 h1:DDGfHa7BWjL4YnC6+E63dPcxHo2sUxDIu8g3QgEJdRY= @@ -37,8 +53,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/fatih/color v1.15.0 h1:kOqh6YHBtK8aywxGerMG2Eq3H6Qgoqeo13Bk2Mv/nBs= github.com/fatih/color v1.15.0/go.mod h1:0h5ZqXfHYED7Bhv2ZJamyIOUej9KtShiJESRwBDUSsw= -github.com/gocql/gocql v1.5.2 h1:WnKf8xRQImcT/KLaEWG2pjEeryDB7K0qQN9mPs1C58Q= -github.com/gocql/gocql v1.5.2/go.mod h1:3gM2c4D3AnkISwBxGnMMsS8Oy4y2lhbPRsH4xnJrHG8= +github.com/gocql/gocql v1.6.0 h1:IdFdOTbnpbd0pDhl4REKQDM+Q0SzKXQ1Yh+YZZ8T/qU= +github.com/gocql/gocql v1.6.0/go.mod h1:3gM2c4D3AnkISwBxGnMMsS8Oy4y2lhbPRsH4xnJrHG8= github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= @@ -55,8 +71,8 @@ github.com/joho/godotenv v1.5.1/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwA github.com/jwalton/go-supportscolor v1.2.0 h1:g6Ha4u7Vm3LIsQ5wmeBpS4gazu0UP1DRDE8y6bre4H8= github.com/jwalton/go-supportscolor v1.2.0/go.mod h1:hFVUAZV2cWg+WFFC4v8pT2X/S2qUUBYMioBD9AINXGs= github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= -github.com/klauspost/compress v1.16.7 h1:2mk3MPGNzKyxErAw8YaohYh69+pa4sIQSC0fPGCFR9I= -github.com/klauspost/compress v1.16.7/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= +github.com/klauspost/compress v1.17.0 h1:Rnbp4K9EjcDuVuHtd0dgA4qNuv9yKDYKK1ulpJwgrqM= +github.com/klauspost/compress v1.17.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= @@ -85,17 +101,19 @@ github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7Jul github.com/youmark/pkcs8 v0.0.0-20201027041543-1326539a0a0a h1:fZHgsYlfvtyqToslyjUt3VOPF4J7aK/3MPcK7xp3PDk= github.com/youmark/pkcs8 v0.0.0-20201027041543-1326539a0a0a/go.mod h1:ul22v+Nro/R083muKhosV54bj5niojjWZvU8xrevuH4= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= -go.mongodb.org/mongo-driver v1.12.0 h1:aPx33jmn/rQuJXPQLZQ8NtfPQG8CaqgLThFtqRb0PiE= -go.mongodb.org/mongo-driver v1.12.0/go.mod h1:AZkxhPnFJUoH7kZlFkVKucV20K387miPfm7oimrSmK0= +go.mongodb.org/mongo-driver v1.12.1 h1:nLkghSU8fQNaK7oUmDhQFsnrtcoNy7Z6LVFKsEecqgE= +go.mongodb.org/mongo-driver v1.12.1/go.mod h1:/rGBTebI3XYboVmgz+Wv3Bcbl3aD0QF9zl6kDDw18rQ= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.11.0 h1:6Ewdq3tDic1mg5xRO4milcWCfMVQhI4NkqWWvqejpuA= -golang.org/x/crypto v0.11.0/go.mod h1:xgJhtzW8F9jGdVFWZESrid1U1bjeNy4zgy5cRr/CIio= -golang.org/x/exp v0.0.0-20230713183714-613f0c0eb8a1 h1:MGwJjxBy0HJshjDNfLsYO8xppfqWlA5ZT9OhtUUhTNw= -golang.org/x/exp v0.0.0-20230713183714-613f0c0eb8a1/go.mod h1:FXUEEKJgO7OQYeo8N01OfiKP8RXMtf6e8aTskBGqWdc= +golang.org/x/crypto v0.14.0 h1:wBqGXzWJW6m1XrIKlAH0Hs1JJ7+9KBwnIO8v66Q9cHc= +golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= +golang.org/x/exp v0.0.0-20231006140011-7918f672742d h1:jtJma62tbqLibJ5sFQz8bKtEM8rJBtfilJ2qTU199MI= +golang.org/x/exp v0.0.0-20231006140011-7918f672742d/go.mod h1:ldy0pHrwJyGW56pPQzzkH36rKxoZW1tw7ZJpeKx+hdo= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +golang.org/x/mod v0.13.0 h1:I/DsJXRlw/8l/0c24sM9yb0T4z9liZTduXvdAWYiysY= +golang.org/x/mod v0.13.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= @@ -103,8 +121,8 @@ golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qx golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= -golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= +golang.org/x/sync v0.4.0 h1:zxkM55ReGkDlKSM+Fu41A+zmbZuaPVbGMzvvdUPznYQ= +golang.org/x/sync v0.4.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -115,21 +133,21 @@ golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.10.0 h1:SqMFp9UcQJZa+pmYuAKjd9xq1f0j5rLcDIk0mj4qAsA= -golang.org/x/sys v0.10.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE= +golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.10.0 h1:3R7pNqamzBraeqj/Tj8qt1aQ2HpmlC+Cx/qL/7hn4/c= -golang.org/x/term v0.10.0/go.mod h1:lpqdcUyK/oCiQxvxVrppt5ggO2KCZ5QblwqPnfZ6d5o= +golang.org/x/term v0.13.0 h1:bb+I9cTfFazGW51MZqBVmZy7+JEJMouUHTUSKVQLBek= +golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.11.0 h1:LAntKIrcmeSKERyiOh0XMV39LXS8IE9UL2yP7+f5ij4= -golang.org/x/text v0.11.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= +golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= diff --git a/init.go b/init.go index 9a6e4b8..607abee 100644 --- a/init.go +++ b/init.go @@ -1,12 +1,17 @@ package main import ( - "io/ioutil" + "context" "log" + "os" "runtime" "github.com/PretendoNetwork/super-mario-maker-secure/database" "github.com/PretendoNetwork/super-mario-maker-secure/globals" + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/config" + "github.com/aws/aws-sdk-go-v2/credentials" + "github.com/aws/aws-sdk-go-v2/service/s3" "github.com/joho/godotenv" ) @@ -18,11 +23,32 @@ func init() { log.Fatal("Error loading .env file") } - globals.HMACSecret, err = ioutil.ReadFile("secret.key") + s3Endpoint := os.Getenv("PN_SMM_CONFIG_S3_ENDPOINT") + s3Region := os.Getenv("PN_SMM_CONFIG_S3_REGION") + s3AccessKey := os.Getenv("PN_SMM_CONFIG_S3_ACCESS_KEY") + s3AccessSecret := os.Getenv("PN_SMM_CONFIG_S3_ACCESS_SECRET") + + staticCredentials := credentials.NewStaticCredentialsProvider(s3AccessKey, s3AccessSecret, "") + + endpointResolver := aws.EndpointResolverWithOptionsFunc(func(service, region string, options ...interface{}) (aws.Endpoint, error) { + return aws.Endpoint{ + URL: s3Endpoint, + }, nil + }) + + cfg, err := config.LoadDefaultConfig( + context.TODO(), + config.WithRegion(s3Region), + config.WithCredentialsProvider(staticCredentials), + config.WithEndpointResolverWithOptions(endpointResolver), + ) + if err != nil { panic(err) } + globals.S3Client = s3.NewFromConfig(cfg) + // Connect to and setup databases database.ConnectAll() createDataStoreIDGenerators() diff --git a/nex/datastore/change_meta.go b/nex/datastore/change_meta.go index 800d0de..707639d 100644 --- a/nex/datastore/change_meta.go +++ b/nex/datastore/change_meta.go @@ -2,12 +2,12 @@ package nex_datastore import ( nex "github.com/PretendoNetwork/nex-go" - "github.com/PretendoNetwork/nex-protocols-go/datastore" + datastore "github.com/PretendoNetwork/nex-protocols-go/datastore" datastore_types "github.com/PretendoNetwork/nex-protocols-go/datastore/types" "github.com/PretendoNetwork/super-mario-maker-secure/globals" ) -func ChangeMeta(err error, client *nex.Client, callID uint32, dataStoreChangeMetaParam *datastore_types.DataStoreChangeMetaParam) { +func ChangeMeta(err error, client *nex.Client, callID uint32, dataStoreChangeMetaParam *datastore_types.DataStoreChangeMetaParam) uint32 { // STUBBED // TODO: DO SOMETHING WITH THE DATA rmcResponse := nex.NewRMCResponse(datastore.ProtocolID, callID) @@ -27,4 +27,6 @@ func ChangeMeta(err error, client *nex.Client, callID uint32, dataStoreChangeMet responsePacket.AddFlag(nex.FlagReliable) globals.NEXServer.Send(responsePacket) + + return 0 } diff --git a/nex/datastore/complete_post_object.go b/nex/datastore/complete_post_object.go index f9fd6cb..aea0b99 100644 --- a/nex/datastore/complete_post_object.go +++ b/nex/datastore/complete_post_object.go @@ -2,12 +2,12 @@ package nex_datastore import ( nex "github.com/PretendoNetwork/nex-go" - "github.com/PretendoNetwork/nex-protocols-go/datastore" + datastore "github.com/PretendoNetwork/nex-protocols-go/datastore" datastore_types "github.com/PretendoNetwork/nex-protocols-go/datastore/types" "github.com/PretendoNetwork/super-mario-maker-secure/globals" ) -func CompletePostObject(err error, client *nex.Client, callID uint32, dataStoreCompletePostParam *datastore_types.DataStoreCompletePostParam) { +func CompletePostObject(err error, client *nex.Client, callID uint32, dataStoreCompletePostParam *datastore_types.DataStoreCompletePostParam) uint32 { // TODO: DO SOMETHING WITH THE DATA rmcResponse := nex.NewRMCResponse(datastore.ProtocolID, callID) @@ -27,4 +27,6 @@ func CompletePostObject(err error, client *nex.Client, callID uint32, dataStoreC responsePacket.AddFlag(nex.FlagReliable) globals.NEXServer.Send(responsePacket) + + return 0 } diff --git a/nex/datastore/get_meta.go b/nex/datastore/get_meta.go index ae889fe..392ecaa 100644 --- a/nex/datastore/get_meta.go +++ b/nex/datastore/get_meta.go @@ -5,14 +5,14 @@ import ( "os" nex "github.com/PretendoNetwork/nex-go" - "github.com/PretendoNetwork/nex-protocols-go/datastore" + datastore "github.com/PretendoNetwork/nex-protocols-go/datastore" datastore_types "github.com/PretendoNetwork/nex-protocols-go/datastore/types" "github.com/PretendoNetwork/super-mario-maker-secure/database" "github.com/PretendoNetwork/super-mario-maker-secure/globals" "github.com/PretendoNetwork/super-mario-maker-secure/utility" ) -func GetMeta(err error, client *nex.Client, callID uint32, param *datastore_types.DataStoreGetMetaParam) { +func GetMeta(err error, client *nex.Client, callID uint32, param *datastore_types.DataStoreGetMetaParam) uint32 { switch param.DataID { case 0: // Mii Data getMetaMiiData(client, callID, param) @@ -21,6 +21,8 @@ func GetMeta(err error, client *nex.Client, callID uint32, param *datastore_type default: fmt.Printf("[Warning] DataStoreProtocol::GetMeta Unsupported dataId: %v\n", param.DataID) } + + return 0 } func getMetaMiiData(client *nex.Client, callID uint32, param *datastore_types.DataStoreGetMetaParam) { diff --git a/nex/datastore/get_metas_multiple_param.go b/nex/datastore/get_metas_multiple_param.go index d6a4330..94a0db2 100644 --- a/nex/datastore/get_metas_multiple_param.go +++ b/nex/datastore/get_metas_multiple_param.go @@ -4,14 +4,14 @@ import ( "fmt" nex "github.com/PretendoNetwork/nex-go" - "github.com/PretendoNetwork/nex-protocols-go/datastore" + datastore "github.com/PretendoNetwork/nex-protocols-go/datastore" datastore_types "github.com/PretendoNetwork/nex-protocols-go/datastore/types" "github.com/PretendoNetwork/super-mario-maker-secure/database" "github.com/PretendoNetwork/super-mario-maker-secure/globals" "github.com/PretendoNetwork/super-mario-maker-secure/utility" ) -func GetMetasMultipleParam(err error, client *nex.Client, callID uint32, params []*datastore_types.DataStoreGetMetaParam) { +func GetMetasMultipleParam(err error, client *nex.Client, callID uint32, params []*datastore_types.DataStoreGetMetaParam) uint32 { pMetaInfo := make([]*datastore_types.DataStoreMetaInfo, 0) pResults := make([]uint32, 0) @@ -49,6 +49,8 @@ func GetMetasMultipleParam(err error, client *nex.Client, callID uint32, params responsePacket.AddFlag(nex.FlagReliable) globals.NEXServer.Send(responsePacket) + + return 0 } func getMetasMultipleParamMiiData(param *datastore_types.DataStoreGetMetaParam) *datastore_types.DataStoreMetaInfo { diff --git a/nex/datastore/prepare_get_object.go b/nex/datastore/prepare_get_object.go index f3a46a1..3ee6675 100644 --- a/nex/datastore/prepare_get_object.go +++ b/nex/datastore/prepare_get_object.go @@ -5,18 +5,23 @@ import ( "os" nex "github.com/PretendoNetwork/nex-go" - "github.com/PretendoNetwork/nex-protocols-go/datastore" + datastore "github.com/PretendoNetwork/nex-protocols-go/datastore" datastore_types "github.com/PretendoNetwork/nex-protocols-go/datastore/types" "github.com/PretendoNetwork/super-mario-maker-secure/database" "github.com/PretendoNetwork/super-mario-maker-secure/globals" "github.com/PretendoNetwork/super-mario-maker-secure/utility" ) -func PrepareGetObject(err error, client *nex.Client, callID uint32, dataStorePrepareGetParam *datastore_types.DataStorePrepareGetParam) { +func PrepareGetObject(err error, client *nex.Client, callID uint32, dataStorePrepareGetParam *datastore_types.DataStorePrepareGetParam) uint32 { pReqGetInfo := datastore_types.NewDataStoreReqGetInfo() + bucket := os.Getenv("PN_SMM_CONFIG_S3_BUCKET") + if dataStorePrepareGetParam.DataID == 900000 { - objectSize, _ := utility.S3ObjectSize(os.Getenv("S3_BUCKET_NAME"), "special/900000.bin") + objectSize, err := utility.S3ObjectSize(bucket, "special/900000.bin") + if err != nil { + globals.Logger.Error(err.Error()) + } pReqGetInfo.URL = fmt.Sprintf("http://%s.b-cdn.net/special/900000.bin", "pds-AMAJ-d1") pReqGetInfo.RequestHeaders = []*datastore_types.DataStoreKeyValue{} @@ -26,7 +31,7 @@ func PrepareGetObject(err error, client *nex.Client, callID uint32, dataStorePre } else { courseMetadata := database.GetCourseMetadataByDataID(dataStorePrepareGetParam.DataID) - pReqGetInfo.URL = fmt.Sprintf("http://%s.b-cdn.net/course/%d.bin", os.Getenv("S3_BUCKET_NAME"), dataStorePrepareGetParam.DataID) + pReqGetInfo.URL = fmt.Sprintf("https://%s.b-cdn.net/course/%d.bin", bucket, dataStorePrepareGetParam.DataID) pReqGetInfo.RequestHeaders = []*datastore_types.DataStoreKeyValue{} pReqGetInfo.Size = courseMetadata.Size pReqGetInfo.RootCACert = []byte{} @@ -56,4 +61,6 @@ func PrepareGetObject(err error, client *nex.Client, callID uint32, dataStorePre responsePacket.AddFlag(nex.FlagReliable) globals.NEXServer.Send(responsePacket) + + return 0 } diff --git a/nex/datastore/prepare_post_object.go b/nex/datastore/prepare_post_object.go index 27cb53c..98d9d5c 100644 --- a/nex/datastore/prepare_post_object.go +++ b/nex/datastore/prepare_post_object.go @@ -11,13 +11,13 @@ import ( "time" nex "github.com/PretendoNetwork/nex-go" - "github.com/PretendoNetwork/nex-protocols-go/datastore" + datastore "github.com/PretendoNetwork/nex-protocols-go/datastore" datastore_types "github.com/PretendoNetwork/nex-protocols-go/datastore/types" "github.com/PretendoNetwork/super-mario-maker-secure/database" "github.com/PretendoNetwork/super-mario-maker-secure/globals" ) -func PreparePostObject(err error, client *nex.Client, callID uint32, param *datastore_types.DataStorePreparePostParam) { +func PreparePostObject(err error, client *nex.Client, callID uint32, param *datastore_types.DataStorePreparePostParam) uint32 { rand.Seed(time.Now().UnixNano()) nodeID := rand.Intn(len(globals.DataStoreIDGenerators)) @@ -38,7 +38,7 @@ func PreparePostObject(err error, client *nex.Client, callID uint32, param *data data := pid + bucket + key + date - hmac := hmac.New(sha256.New, globals.HMACSecret) + hmac := hmac.New(sha256.New, []byte{}) hmac.Write([]byte(data)) signature := hex.EncodeToString(hmac.Sum(nil)) @@ -98,4 +98,6 @@ func PreparePostObject(err error, client *nex.Client, callID uint32, param *data responsePacket.AddFlag(nex.FlagReliable) globals.NEXServer.Send(responsePacket) + + return 0 } diff --git a/nex/datastore/rate_objects.go b/nex/datastore/rate_objects.go index 0330656..9a343de 100644 --- a/nex/datastore/rate_objects.go +++ b/nex/datastore/rate_objects.go @@ -2,12 +2,12 @@ package nex_datastore import ( nex "github.com/PretendoNetwork/nex-go" - "github.com/PretendoNetwork/nex-protocols-go/datastore" + datastore "github.com/PretendoNetwork/nex-protocols-go/datastore" datastore_types "github.com/PretendoNetwork/nex-protocols-go/datastore/types" "github.com/PretendoNetwork/super-mario-maker-secure/globals" ) -func RateObjects(err error, client *nex.Client, callID uint32, targets []*datastore_types.DataStoreRatingTarget, params []*datastore_types.DataStoreRateObjectParam, transactional bool, fetchRatings bool) { +func RateObjects(err error, client *nex.Client, callID uint32, targets []*datastore_types.DataStoreRatingTarget, params []*datastore_types.DataStoreRateObjectParam, transactional bool, fetchRatings bool) uint32 { // TODO: complete this rmcResponseStream := nex.NewStreamOut(globals.NEXServer) @@ -34,4 +34,6 @@ func RateObjects(err error, client *nex.Client, callID uint32, targets []*datast responsePacket.AddFlag(nex.FlagReliable) globals.NEXServer.Send(responsePacket) + + return 0 } diff --git a/nex/datastore/super-mario-maker/add_to_buffer_queues.go b/nex/datastore/super-mario-maker/add_to_buffer_queues.go index 3f3f9a9..e581c5c 100644 --- a/nex/datastore/super-mario-maker/add_to_buffer_queues.go +++ b/nex/datastore/super-mario-maker/add_to_buffer_queues.go @@ -8,7 +8,7 @@ import ( "github.com/PretendoNetwork/super-mario-maker-secure/globals" ) -func AddToBufferQueues(err error, client *nex.Client, callID uint32, params []*datastore_super_mario_maker_types.BufferQueueParam, buffers [][]byte) { +func AddToBufferQueues(err error, client *nex.Client, callID uint32, params []*datastore_super_mario_maker_types.BufferQueueParam, buffers [][]byte) uint32 { pResults := make([]uint32, 0) for i := 0; i < len(params); i++ { @@ -44,4 +44,6 @@ func AddToBufferQueues(err error, client *nex.Client, callID uint32, params []*d responsePacket.AddFlag(nex.FlagReliable) globals.NEXServer.Send(responsePacket) + + return 0 } diff --git a/nex/datastore/super-mario-maker/check_rate_custom_ranking_counter.go b/nex/datastore/super-mario-maker/check_rate_custom_ranking_counter.go index 9965228..0ba9fc2 100644 --- a/nex/datastore/super-mario-maker/check_rate_custom_ranking_counter.go +++ b/nex/datastore/super-mario-maker/check_rate_custom_ranking_counter.go @@ -8,7 +8,7 @@ import ( "github.com/PretendoNetwork/super-mario-maker-secure/globals" ) -func CheckRateCustomRankingCounter(err error, client *nex.Client, callID uint32, applicationID uint32) { +func CheckRateCustomRankingCounter(err error, client *nex.Client, callID uint32, applicationID uint32) uint32 { var isBelowThreshold uint8 switch applicationID { @@ -41,4 +41,6 @@ func CheckRateCustomRankingCounter(err error, client *nex.Client, callID uint32, responsePacket.AddFlag(nex.FlagReliable) globals.NEXServer.Send(responsePacket) + + return 0 } diff --git a/nex/datastore/super-mario-maker/complete_attach_file.go b/nex/datastore/super-mario-maker/complete_attach_file.go index 3c6221e..920584f 100644 --- a/nex/datastore/super-mario-maker/complete_attach_file.go +++ b/nex/datastore/super-mario-maker/complete_attach_file.go @@ -10,7 +10,7 @@ import ( "github.com/PretendoNetwork/super-mario-maker-secure/globals" ) -func CompleteAttachFile(err error, client *nex.Client, callID uint32, dataStoreCompletePostParam *datastore_types.DataStoreCompletePostParam) { +func CompleteAttachFile(err error, client *nex.Client, callID uint32, dataStoreCompletePostParam *datastore_types.DataStoreCompletePostParam) uint32 { rmcResponseStream := nex.NewStreamOut(globals.NEXServer) // TODO: complete this @@ -36,4 +36,6 @@ func CompleteAttachFile(err error, client *nex.Client, callID uint32, dataStoreC responsePacket.AddFlag(nex.FlagReliable) globals.NEXServer.Send(responsePacket) + + return 0 } diff --git a/nex/datastore/super-mario-maker/ctr_pick_up_course_search_object.go b/nex/datastore/super-mario-maker/ctr_pick_up_course_search_object.go index 17d58fc..6db076f 100644 --- a/nex/datastore/super-mario-maker/ctr_pick_up_course_search_object.go +++ b/nex/datastore/super-mario-maker/ctr_pick_up_course_search_object.go @@ -12,7 +12,7 @@ import ( // This is the same as DataStoreSMM::RecommendedCourseSearchObject // Not sure why they used a different method here? -func CTRPickUpCourseSearchObject(err error, client *nex.Client, callID uint32, dataStoreSearchParam *datastore_types.DataStoreSearchParam, extraData []string) { +func CTRPickUpCourseSearchObject(err error, client *nex.Client, callID uint32, dataStoreSearchParam *datastore_types.DataStoreSearchParam, extraData []string) uint32 { pRankingResults := make([]*datastore_super_mario_maker_types.DataStoreCustomRankingResult, 0) courseMetadatas := database.GetCourseMetadatasByLimit(100) // In PCAPs param.minimalRatingFrequency is 100 but is 0 here? @@ -44,4 +44,6 @@ func CTRPickUpCourseSearchObject(err error, client *nex.Client, callID uint32, d responsePacket.AddFlag(nex.FlagReliable) globals.NEXServer.Send(responsePacket) + + return 0 } diff --git a/nex/datastore/super-mario-maker/followings_latest_course_search_object.go b/nex/datastore/super-mario-maker/followings_latest_course_search_object.go index 268bdb8..40ac63a 100644 --- a/nex/datastore/super-mario-maker/followings_latest_course_search_object.go +++ b/nex/datastore/super-mario-maker/followings_latest_course_search_object.go @@ -10,7 +10,7 @@ import ( "github.com/PretendoNetwork/super-mario-maker-secure/utility" ) -func FollowingsLatestCourseSearchObject(err error, client *nex.Client, callID uint32, dataStoreSearchParam *datastore_types.DataStoreSearchParam, extraData []string) { +func FollowingsLatestCourseSearchObject(err error, client *nex.Client, callID uint32, dataStoreSearchParam *datastore_types.DataStoreSearchParam, extraData []string) uint32 { pRankingResults := make([]*datastore_super_mario_maker_types.DataStoreCustomRankingResult, 0) for _, pid := range dataStoreSearchParam.OwnerIDs { @@ -44,4 +44,6 @@ func FollowingsLatestCourseSearchObject(err error, client *nex.Client, callID ui responsePacket.AddFlag(nex.FlagReliable) globals.NEXServer.Send(responsePacket) + + return 0 } diff --git a/nex/datastore/super-mario-maker/get_application_config.go b/nex/datastore/super-mario-maker/get_application_config.go index f825108..289091e 100644 --- a/nex/datastore/super-mario-maker/get_application_config.go +++ b/nex/datastore/super-mario-maker/get_application_config.go @@ -10,7 +10,7 @@ import ( var MAX_COURSE_UPLOADS uint32 = 0x64 // Nintendo has this set to 100, but we can change it if we want -func GetApplicationConfig(err error, client *nex.Client, callID uint32, applicationID uint32) { +func GetApplicationConfig(err error, client *nex.Client, callID uint32, applicationID uint32) uint32 { config := make([]uint32, 0) @@ -50,6 +50,8 @@ func GetApplicationConfig(err error, client *nex.Client, callID uint32, applicat responsePacket.AddFlag(nex.FlagReliable) globals.NEXServer.Send(responsePacket) + + return 0 } func getApplicationConfig_Unknown0() []uint32 { diff --git a/nex/datastore/super-mario-maker/get_application_config_string.go b/nex/datastore/super-mario-maker/get_application_config_string.go index 2cd1e36..0605598 100644 --- a/nex/datastore/super-mario-maker/get_application_config_string.go +++ b/nex/datastore/super-mario-maker/get_application_config_string.go @@ -8,7 +8,7 @@ import ( "github.com/PretendoNetwork/super-mario-maker-secure/globals" ) -func GetApplicationConfigString(err error, client *nex.Client, callID uint32, applicationID uint32) { +func GetApplicationConfigString(err error, client *nex.Client, callID uint32, applicationID uint32) uint32 { // Word blacklists? config := make([]string, 0) @@ -46,6 +46,8 @@ func GetApplicationConfigString(err error, client *nex.Client, callID uint32, ap responsePacket.AddFlag(nex.FlagReliable) globals.NEXServer.Send(responsePacket) + + return 0 } func getApplicationConfigString_WordBlacklist1() []string { diff --git a/nex/datastore/super-mario-maker/get_buffer_queue.go b/nex/datastore/super-mario-maker/get_buffer_queue.go index bebc2da..d8b5f79 100644 --- a/nex/datastore/super-mario-maker/get_buffer_queue.go +++ b/nex/datastore/super-mario-maker/get_buffer_queue.go @@ -10,7 +10,7 @@ import ( "github.com/PretendoNetwork/super-mario-maker-secure/globals" ) -func GetBufferQueue(err error, client *nex.Client, callID uint32, param *datastore_super_mario_maker_types.BufferQueueParam) { +func GetBufferQueue(err error, client *nex.Client, callID uint32, param *datastore_super_mario_maker_types.BufferQueueParam) uint32 { // TODO: complete this rmcResponseStream := nex.NewStreamOut(globals.NEXServer) @@ -47,4 +47,6 @@ func GetBufferQueue(err error, client *nex.Client, callID uint32, param *datasto responsePacket.AddFlag(nex.FlagReliable) globals.NEXServer.Send(responsePacket) + + return 0 } diff --git a/nex/datastore/super-mario-maker/get_course_record.go b/nex/datastore/super-mario-maker/get_course_record.go index 6291cf5..b95ba35 100644 --- a/nex/datastore/super-mario-maker/get_course_record.go +++ b/nex/datastore/super-mario-maker/get_course_record.go @@ -8,7 +8,7 @@ import ( "github.com/PretendoNetwork/super-mario-maker-secure/globals" ) -func GetCourseRecord(err error, client *nex.Client, callID uint32, param *datastore_super_mario_maker_types.DataStoreGetCourseRecordParam) { +func GetCourseRecord(err error, client *nex.Client, callID uint32, param *datastore_super_mario_maker_types.DataStoreGetCourseRecordParam) uint32 { worldRecord := database.GetCourseWorldRecord(param.DataID) rmcResponse := nex.NewRMCResponse(datastore_super_mario_maker.ProtocolID, callID) @@ -47,4 +47,6 @@ func GetCourseRecord(err error, client *nex.Client, callID uint32, param *datast responsePacket.AddFlag(nex.FlagReliable) globals.NEXServer.Send(responsePacket) + + return 0 } diff --git a/nex/datastore/super-mario-maker/get_custom_ranking_by_data_id.go b/nex/datastore/super-mario-maker/get_custom_ranking_by_data_id.go index e0206cb..566e8f7 100644 --- a/nex/datastore/super-mario-maker/get_custom_ranking_by_data_id.go +++ b/nex/datastore/super-mario-maker/get_custom_ranking_by_data_id.go @@ -9,7 +9,7 @@ import ( "github.com/PretendoNetwork/super-mario-maker-secure/utility" ) -func GetCustomRankingByDataID(err error, client *nex.Client, callID uint32, param *datastore_super_mario_maker_types.DataStoreGetCustomRankingByDataIDParam) { +func GetCustomRankingByDataID(err error, client *nex.Client, callID uint32, param *datastore_super_mario_maker_types.DataStoreGetCustomRankingByDataIDParam) uint32 { var pRankingResult []*datastore_super_mario_maker_types.DataStoreCustomRankingResult var pResults []uint32 @@ -50,6 +50,8 @@ func GetCustomRankingByDataID(err error, client *nex.Client, callID uint32, para responsePacket.AddFlag(nex.FlagReliable) globals.NEXServer.Send(responsePacket) + + return 0 } func getCustomRankingByDataIdStarredCourses(pid uint32) ([]*datastore_super_mario_maker_types.DataStoreCustomRankingResult, []uint32) { diff --git a/nex/datastore/super-mario-maker/get_deletion_reason.go b/nex/datastore/super-mario-maker/get_deletion_reason.go index c83559d..2bd1201 100644 --- a/nex/datastore/super-mario-maker/get_deletion_reason.go +++ b/nex/datastore/super-mario-maker/get_deletion_reason.go @@ -6,7 +6,7 @@ import ( "github.com/PretendoNetwork/super-mario-maker-secure/globals" ) -func GetDeletionReason(err error, client *nex.Client, callID uint32, dataIdLst []uint64) { +func GetDeletionReason(err error, client *nex.Client, callID uint32, dataIdLst []uint64) uint32 { // TODO: Complete this pDeletionReasons := make([]uint32, 0) @@ -40,4 +40,6 @@ func GetDeletionReason(err error, client *nex.Client, callID uint32, dataIdLst [ responsePacket.AddFlag(nex.FlagReliable) globals.NEXServer.Send(responsePacket) + + return 0 } diff --git a/nex/datastore/super-mario-maker/get_metas_with_course_record.go b/nex/datastore/super-mario-maker/get_metas_with_course_record.go index acf3da1..3e0a60f 100644 --- a/nex/datastore/super-mario-maker/get_metas_with_course_record.go +++ b/nex/datastore/super-mario-maker/get_metas_with_course_record.go @@ -8,7 +8,7 @@ import ( "github.com/PretendoNetwork/super-mario-maker-secure/globals" ) -func GetMetasWithCourseRecord(err error, client *nex.Client, callID uint32, dataStoreGetCourseRecordParams []*datastore_super_mario_maker_types.DataStoreGetCourseRecordParam, dataStoreGetMetaParam *datastore_types.DataStoreGetMetaParam) { +func GetMetasWithCourseRecord(err error, client *nex.Client, callID uint32, dataStoreGetCourseRecordParams []*datastore_super_mario_maker_types.DataStoreGetCourseRecordParam, dataStoreGetMetaParam *datastore_types.DataStoreGetMetaParam) uint32 { // TODO: complete this rmcResponseStream := nex.NewStreamOut(globals.NEXServer) @@ -36,4 +36,6 @@ func GetMetasWithCourseRecord(err error, client *nex.Client, callID uint32, data responsePacket.AddFlag(nex.FlagReliable) globals.NEXServer.Send(responsePacket) + + return 0 } diff --git a/nex/datastore/super-mario-maker/get_object_infos.go b/nex/datastore/super-mario-maker/get_object_infos.go index f563cbd..27c5a23 100644 --- a/nex/datastore/super-mario-maker/get_object_infos.go +++ b/nex/datastore/super-mario-maker/get_object_infos.go @@ -12,7 +12,7 @@ import ( "github.com/PretendoNetwork/super-mario-maker-secure/globals" ) -func GetObjectInfos(err error, client *nex.Client, callID uint32, dataIDs []uint64) { +func GetObjectInfos(err error, client *nex.Client, callID uint32, dataIDs []uint64) uint32 { pInfos := make([]*datastore_super_mario_maker_types.DataStoreFileServerObjectInfo, 0) courseMetadatas := database.GetCourseMetadataByDataIDs(dataIDs) @@ -53,4 +53,6 @@ func GetObjectInfos(err error, client *nex.Client, callID uint32, dataIDs []uint responsePacket.AddFlag(nex.FlagReliable) globals.NEXServer.Send(responsePacket) + + return 0 } diff --git a/nex/datastore/super-mario-maker/prepare_attach_file.go b/nex/datastore/super-mario-maker/prepare_attach_file.go index fdcbad0..13afe5f 100644 --- a/nex/datastore/super-mario-maker/prepare_attach_file.go +++ b/nex/datastore/super-mario-maker/prepare_attach_file.go @@ -16,7 +16,7 @@ import ( "github.com/PretendoNetwork/super-mario-maker-secure/globals" ) -func PrepareAttachFile(err error, client *nex.Client, callID uint32, dataStoreAttachFileParam *datastore_super_mario_maker_types.DataStoreAttachFileParam) { +func PrepareAttachFile(err error, client *nex.Client, callID uint32, dataStoreAttachFileParam *datastore_super_mario_maker_types.DataStoreAttachFileParam) uint32 { key := fmt.Sprintf("image/%d.jpg", dataStoreAttachFileParam.ReferDataID) bucket := os.Getenv("S3_BUCKET_NAME") date := strconv.Itoa(int(time.Now().Unix())) @@ -24,7 +24,7 @@ func PrepareAttachFile(err error, client *nex.Client, callID uint32, dataStoreAt data := pid + bucket + key + date - hmac := hmac.New(sha256.New, globals.HMACSecret) + hmac := hmac.New(sha256.New, []byte{}) hmac.Write([]byte(data)) signature := hex.EncodeToString(hmac.Sum(nil)) @@ -88,4 +88,6 @@ func PrepareAttachFile(err error, client *nex.Client, callID uint32, dataStoreAt responsePacket.AddFlag(nex.FlagReliable) globals.NEXServer.Send(responsePacket) + + return 0 } diff --git a/nex/datastore/super-mario-maker/rate_custom_ranking.go b/nex/datastore/super-mario-maker/rate_custom_ranking.go index bde3548..768f3ff 100644 --- a/nex/datastore/super-mario-maker/rate_custom_ranking.go +++ b/nex/datastore/super-mario-maker/rate_custom_ranking.go @@ -8,7 +8,7 @@ import ( "github.com/PretendoNetwork/super-mario-maker-secure/globals" ) -func RateCustomRanking(err error, client *nex.Client, callID uint32, params []*datastore_super_mario_maker_types.DataStoreRateCustomRankingParam) { +func RateCustomRanking(err error, client *nex.Client, callID uint32, params []*datastore_super_mario_maker_types.DataStoreRateCustomRankingParam) uint32 { /* This has to change. We need to figure out what DataStoreRateCustomRankingParam.applicationId means. @@ -109,4 +109,6 @@ func RateCustomRanking(err error, client *nex.Client, callID uint32, params []*d responsePacket.AddFlag(nex.FlagReliable) globals.NEXServer.Send(responsePacket) + + return 0 } diff --git a/nex/datastore/super-mario-maker/recommended_course_search_object.go b/nex/datastore/super-mario-maker/recommended_course_search_object.go index 054d1d8..5d2a8c8 100644 --- a/nex/datastore/super-mario-maker/recommended_course_search_object.go +++ b/nex/datastore/super-mario-maker/recommended_course_search_object.go @@ -10,7 +10,7 @@ import ( "github.com/PretendoNetwork/super-mario-maker-secure/utility" ) -func RecommendedCourseSearchObject(err error, client *nex.Client, callID uint32, param *datastore_types.DataStoreSearchParam, extraData []string) { +func RecommendedCourseSearchObject(err error, client *nex.Client, callID uint32, param *datastore_types.DataStoreSearchParam, extraData []string) uint32 { // TODO: complete this pRankingResults := make([]*datastore_super_mario_maker_types.DataStoreCustomRankingResult, 0) @@ -50,4 +50,6 @@ func RecommendedCourseSearchObject(err error, client *nex.Client, callID uint32, responsePacket.AddFlag(nex.FlagReliable) globals.NEXServer.Send(responsePacket) + + return 0 } diff --git a/nex/datastore/super-mario-maker/suggested_course_search_object.go b/nex/datastore/super-mario-maker/suggested_course_search_object.go index 9c03c39..b4e4d95 100644 --- a/nex/datastore/super-mario-maker/suggested_course_search_object.go +++ b/nex/datastore/super-mario-maker/suggested_course_search_object.go @@ -12,7 +12,7 @@ import ( "github.com/PretendoNetwork/super-mario-maker-secure/utility" ) -func SuggestedCourseSearchObject(err error, client *nex.Client, callID uint32, param *datastore_types.DataStoreSearchParam, extraData []string) { +func SuggestedCourseSearchObject(err error, client *nex.Client, callID uint32, param *datastore_types.DataStoreSearchParam, extraData []string) uint32 { // TODO: complete this courseID, _ := strconv.ParseUint(extraData[0], 0, 64) @@ -52,4 +52,6 @@ func SuggestedCourseSearchObject(err error, client *nex.Client, callID uint32, p responsePacket.AddFlag(nex.FlagReliable) globals.NEXServer.Send(responsePacket) + + return 0 } diff --git a/nex/datastore/super-mario-maker/upload_course_record.go b/nex/datastore/super-mario-maker/upload_course_record.go index 1bae0f4..ead0951 100644 --- a/nex/datastore/super-mario-maker/upload_course_record.go +++ b/nex/datastore/super-mario-maker/upload_course_record.go @@ -8,7 +8,7 @@ import ( "github.com/PretendoNetwork/super-mario-maker-secure/globals" ) -func UploadCourseRecord(err error, client *nex.Client, callID uint32, param *datastore_super_mario_maker_types.DataStoreUploadCourseRecordParam) { +func UploadCourseRecord(err error, client *nex.Client, callID uint32, param *datastore_super_mario_maker_types.DataStoreUploadCourseRecordParam) uint32 { database.UpdateCourseWorldRecord(param.DataID, client.PID(), param.Score) rmcResponse := nex.NewRMCResponse(datastore_super_mario_maker.ProtocolID, callID) @@ -28,4 +28,6 @@ func UploadCourseRecord(err error, client *nex.Client, callID uint32, param *dat responsePacket.AddFlag(nex.FlagReliable) globals.NEXServer.Send(responsePacket) + + return 0 } diff --git a/nex/message-delivery/deliver_message.go b/nex/message-delivery/deliver_message.go index 0be1936..19bfb87 100644 --- a/nex/message-delivery/deliver_message.go +++ b/nex/message-delivery/deliver_message.go @@ -6,7 +6,7 @@ import ( "github.com/PretendoNetwork/super-mario-maker-secure/globals" ) -func DeliverMessage(err error, client *nex.Client, callID uint32, oUserMessage nex.StructureInterface) { +func DeliverMessage(err error, client *nex.Client, callID uint32, oUserMessage nex.StructureInterface) uint32 { rmcResponse := nex.NewRMCResponse(message_delivery.ProtocolID, callID) rmcResponse.SetSuccess(message_delivery.MethodDeliverMessage, nil) @@ -24,4 +24,6 @@ func DeliverMessage(err error, client *nex.Client, callID uint32, oUserMessage n responsePacket.AddFlag(nex.FlagReliable) globals.NEXServer.Send(responsePacket) + + return 0 } diff --git a/nex/register_nex_protocols.go b/nex/register_nex_protocols.go index 0e5f734..091f144 100644 --- a/nex/register_nex_protocols.go +++ b/nex/register_nex_protocols.go @@ -1,7 +1,6 @@ package nex import ( - "github.com/PretendoNetwork/nex-protocols-go/datastore" datastore_super_mario_maker "github.com/PretendoNetwork/nex-protocols-go/datastore/super-mario-maker" "github.com/PretendoNetwork/super-mario-maker-secure/globals" nex_datastore "github.com/PretendoNetwork/super-mario-maker-secure/nex/datastore" @@ -9,18 +8,15 @@ import ( ) func registerNEXProtocols() { - datastoreProtocol := datastore.NewDataStoreProtocol(globals.NEXServer) - - datastoreProtocol.GetMeta(nex_datastore.GetMeta) - datastoreProtocol.PreparePostObject(nex_datastore.PreparePostObject) - datastoreProtocol.PrepareGetObject(nex_datastore.PrepareGetObject) - datastoreProtocol.CompletePostObject(nex_datastore.CompletePostObject) - datastoreProtocol.GetMetasMultipleParam(nex_datastore.GetMetasMultipleParam) - datastoreProtocol.ChangeMeta(nex_datastore.ChangeMeta) - datastoreProtocol.RateObjects(nex_datastore.RateObjects) - - datastoreSMMProtocol := datastore_super_mario_maker.NewDataStoreSuperMarioMakerProtocol(globals.NEXServer) + datastoreSMMProtocol := datastore_super_mario_maker.NewProtocol(globals.NEXServer) + datastoreSMMProtocol.GetMeta(nex_datastore.GetMeta) + datastoreSMMProtocol.PreparePostObject(nex_datastore.PreparePostObject) + datastoreSMMProtocol.PrepareGetObject(nex_datastore.PrepareGetObject) + datastoreSMMProtocol.CompletePostObject(nex_datastore.CompletePostObject) + datastoreSMMProtocol.GetMetasMultipleParam(nex_datastore.GetMetasMultipleParam) + datastoreSMMProtocol.ChangeMeta(nex_datastore.ChangeMeta) + datastoreSMMProtocol.RateObjects(nex_datastore.RateObjects) datastoreSMMProtocol.GetObjectInfos(nex_datastore_super_mario_maker.GetObjectInfos) datastoreSMMProtocol.RateCustomRanking(nex_datastore_super_mario_maker.RateCustomRanking) datastoreSMMProtocol.GetCustomRankingByDataID(nex_datastore_super_mario_maker.GetCustomRankingByDataID) diff --git a/nex/server.go b/nex/server.go index 430df62..18ded65 100644 --- a/nex/server.go +++ b/nex/server.go @@ -12,11 +12,7 @@ func StartNEXServer() { globals.NEXServer = nex.NewServer() globals.NEXServer.SetPRUDPVersion(1) globals.NEXServer.SetPRUDPProtocolMinorVersion(2) - globals.NEXServer.SetDefaultNEXVersion(&nex.NEXVersion{ - Major: 3, - Minor: 8, - Patch: 3, - }) + globals.NEXServer.SetDefaultNEXVersion(nex.NewNEXVersion(3, 8, 3)) globals.NEXServer.SetKerberosPassword(os.Getenv("KERBEROS_PASSWORD")) globals.NEXServer.SetAccessKey("9f2b4678") diff --git a/utility/utility.go b/utility/utility.go index 5455b65..d0955b2 100644 --- a/utility/utility.go +++ b/utility/utility.go @@ -6,8 +6,8 @@ import ( "time" "github.com/PretendoNetwork/nex-go" - "github.com/PretendoNetwork/nex-protocols-go/datastore/super-mario-maker/types" - "github.com/PretendoNetwork/nex-protocols-go/datastore/types" + datastore_super_mario_maker_types "github.com/PretendoNetwork/nex-protocols-go/datastore/super-mario-maker/types" + datastore_types "github.com/PretendoNetwork/nex-protocols-go/datastore/types" "github.com/PretendoNetwork/super-mario-maker-secure/database" "github.com/PretendoNetwork/super-mario-maker-secure/globals" "github.com/PretendoNetwork/super-mario-maker-secure/types"