Skip to content

Commit 2e0dea9

Browse files
committed
Support java module
1 parent c42823f commit 2e0dea9

File tree

5 files changed

+44
-8
lines changed

5 files changed

+44
-8
lines changed

cmd/build.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ var buildCmd = &cobra.Command{
5454
Arch: arch,
5555
}
5656
switch data.Lang {
57-
case "cs", "go", "js", "ts":
57+
case "cs", "go", "java", "js", "ts":
5858
err = modules.ExecuteBuild(buildData, data)
5959
abort(err)
6060
default:

cmd/docs.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,10 +56,10 @@ var docsCmd = &cobra.Command{
5656

5757
os.Remove(filepath.Join(os.TempDir(), "event_docs.md"))
5858

59-
err = os.WriteFile(filepath.Join(os.TempDir(), "event_docs.html"), text, 0644)
59+
err = os.WriteFile(filepath.Join(os.TempDir(), "event_docs.html"), text, 0o644)
6060
abort(err)
6161

62-
err = os.WriteFile(filepath.Join(os.TempDir(), "event_docs.css"), []byte(docsStyle), 0644)
62+
err = os.WriteFile(filepath.Join(os.TempDir(), "event_docs.css"), []byte(docsStyle), 0o644)
6363
abort(err)
6464

6565
cli.Print("Opening documentation...")

cmd/new.go

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -164,12 +164,12 @@ func newClient() error {
164164
return err
165165
}
166166

167-
language, err := cli.SelectString("Language:", []string{"C#", "Go", "JavaScript", "TypeScript"}, []string{"cs", "go", "js", "ts"})
167+
language, err := cli.SelectString("Language:", []string{"C#", "Go", "Java", "JavaScript", "TypeScript"}, []string{"cs", "go", "java", "js", "ts"})
168168
if err != nil {
169169
return err
170170
}
171171

172-
file := cgfile.CodeGameFileData{
172+
file := &cgfile.CodeGameFileData{
173173
Game: info.Name,
174174
Type: "client",
175175
Lang: language,
@@ -193,6 +193,9 @@ func newClient() error {
193193
case "go":
194194
newData.LibraryVersion = external.LibraryVersionFromCGVersion("code-game-project", "go-client", info.CGVersion)
195195
err = modules.ExecuteNewClient(newData)
196+
case "java":
197+
newData.LibraryVersion = external.LibraryVersionFromCGVersion("code-game-project", "java-client", info.CGVersion)
198+
err = modules.ExecuteNewClient(newData)
196199
case "js", "ts":
197200
newData.LibraryVersion = external.LibraryVersionFromCGVersion("code-game-project", "javascript-client", info.CGVersion)
198201
err = modules.ExecuteNewClient(newData)
@@ -203,13 +206,30 @@ func newClient() error {
203206
return err
204207
}
205208

206-
if language == "cs" || language == "go" || language == "ts" {
209+
file, err = cgfile.LoadCodeGameFile("")
210+
if err != nil {
211+
return fmt.Errorf("Failed to open .codegame.json: %w", err)
212+
}
213+
214+
if language == "cs" || language == "go" || language == "java" || language == "ts" {
207215
eventsOutput := info.Name
208216
switch language {
209217
case "cs":
210218
eventsOutput = strings.ReplaceAll(strings.Title(strings.ReplaceAll(strings.ReplaceAll(eventsOutput, "_", " "), "-", " ")), " ", "")
211219
case "go":
212220
eventsOutput = strings.ReplaceAll(strings.ReplaceAll(eventsOutput, "-", ""), "_", "")
221+
case "java":
222+
packageConf, ok := file.LangConfig["package"]
223+
if !ok {
224+
return errors.New("Missing language config field `package` in .codegame.json!")
225+
}
226+
packageName := packageConf.(string)
227+
if packageConf == "" {
228+
return errors.New("Empty language config field `package` in .codegame.json!")
229+
}
230+
gameDir := filepath.Join("src", "main", "java")
231+
pkgDir := filepath.Join(strings.Split(packageName, ".")...)
232+
eventsOutput = filepath.Join(gameDir, pkgDir, strings.ReplaceAll(strings.ReplaceAll(strings.ToLower(eventsOutput), "_", ""), "-", ""))
213233
case "ts":
214234
eventsOutput = filepath.Join("src", eventsOutput)
215235
}

cmd/run.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ var runCmd = &cobra.Command{
3333
}
3434

3535
switch data.Lang {
36-
case "cs", "go", "js", "ts":
36+
case "cs", "go", "java", "js", "ts":
3737
err = modules.ExecuteRun(runData, data)
3838
abort(err)
3939
default:

cmd/update.go

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package cmd
22

33
import (
4+
"errors"
45
"fmt"
56
"os"
67
"path/filepath"
@@ -90,6 +91,9 @@ func updateClient(config *cgfile.CodeGameFileData) error {
9091
case "go":
9192
updateData.LibraryVersion = external.LibraryVersionFromCGVersion("code-game-project", "go-client", info.CGVersion)
9293
err = modules.ExecuteUpdate(updateData, config)
94+
case "java":
95+
updateData.LibraryVersion = external.LibraryVersionFromCGVersion("code-game-project", "java-client", info.CGVersion)
96+
err = modules.ExecuteUpdate(updateData, config)
9397
case "js", "ts":
9498
updateData.LibraryVersion = external.LibraryVersionFromCGVersion("code-game-project", "javascript-client", info.CGVersion)
9599
err = modules.ExecuteUpdate(updateData, config)
@@ -100,13 +104,25 @@ func updateClient(config *cgfile.CodeGameFileData) error {
100104
return err
101105
}
102106

103-
if config.Lang == "cs" || config.Lang == "go" || config.Lang == "ts" {
107+
if config.Lang == "cs" || config.Lang == "go" || config.Lang == "java" || config.Lang == "ts" {
104108
eventsOutput := config.Game
105109
switch config.Lang {
106110
case "cs":
107111
eventsOutput = strings.ReplaceAll(strings.Title(strings.ReplaceAll(strings.ReplaceAll(eventsOutput, "_", " "), "-", " ")), " ", "")
108112
case "go":
109113
eventsOutput = strings.ReplaceAll(strings.ReplaceAll(eventsOutput, "-", ""), "_", "")
114+
case "java":
115+
packageConf, ok := config.LangConfig["package"]
116+
if !ok {
117+
return errors.New("Missing language config field `package` in .codegame.json!")
118+
}
119+
packageName := packageConf.(string)
120+
if packageConf == "" {
121+
return errors.New("Empty language config field `package` in .codegame.json!")
122+
}
123+
gameDir := filepath.Join("src", "main", "java")
124+
pkgDir := filepath.Join(strings.Split(packageName, ".")...)
125+
eventsOutput = filepath.Join(gameDir, pkgDir, strings.ReplaceAll(strings.ReplaceAll(strings.ToLower(eventsOutput), "_", ""), "-", ""))
110126
case "ts":
111127
eventsOutput = filepath.Join("src", eventsOutput)
112128
}

0 commit comments

Comments
 (0)