mirror of
https://github.com/yairm210/Unciv.git
synced 2025-02-23 13:10:54 +07:00
Custom server port (#6406)
* custom server port * format * format * Modify port range. * Custom server port in client. * replace `rangeTo`. * format: Rename `getUrlWithPort` to `checkMultiplayerServerWithPort`. Co-authored-by: Yair Morgenstern <yairm210@hotmail.com>
This commit is contained in:
parent
84561e7ad4
commit
f6a0a5595f
@ -1,12 +1,12 @@
|
||||
package com.unciv.logic.multiplayer
|
||||
|
||||
import com.badlogic.gdx.Gdx
|
||||
import com.badlogic.gdx.Net
|
||||
import com.unciv.Constants
|
||||
import com.unciv.UncivGame
|
||||
import com.unciv.logic.GameInfo
|
||||
import com.unciv.logic.GameInfoPreview
|
||||
import com.unciv.logic.GameSaver
|
||||
import com.unciv.models.metadata.checkMultiplayerServerWithPort
|
||||
import com.unciv.ui.saves.Gzip
|
||||
import com.unciv.ui.worldscreen.mainmenu.OptionsPopup
|
||||
import java.util.*
|
||||
@ -24,11 +24,11 @@ interface IFileMetaData {
|
||||
|
||||
|
||||
|
||||
class UncivServerFileStorage(val serverIp:String):IFileStorage {
|
||||
val serverUrl = "http://$serverIp:8080"
|
||||
class UncivServerFileStorage(serverIpWithPort:String):IFileStorage {
|
||||
val serverUrl = "http://$serverIpWithPort"
|
||||
override fun saveFileData(fileName: String, data: String) {
|
||||
OptionsPopup.SimpleHttp.sendRequest(Net.HttpMethods.PUT, "$serverUrl/files/$fileName", data){
|
||||
success: Boolean, result: String ->
|
||||
success: Boolean, result: String ->
|
||||
if (!success) {
|
||||
println(result)
|
||||
throw java.lang.Exception(result)
|
||||
@ -70,7 +70,10 @@ class OnlineMultiplayer {
|
||||
val settings = UncivGame.Current.settings
|
||||
if (settings.multiplayerServer == Constants.dropboxMultiplayerServer)
|
||||
fileStorage = DropboxFileStorage()
|
||||
else fileStorage = UncivServerFileStorage(settings.multiplayerServer)
|
||||
else {
|
||||
val serverIpWithPort = settings.multiplayerServer.checkMultiplayerServerWithPort()
|
||||
fileStorage = UncivServerFileStorage(serverIpWithPort)
|
||||
}
|
||||
}
|
||||
|
||||
fun tryUploadGame(gameInfo: GameInfo, withPreview: Boolean) {
|
||||
|
7
core/src/com/unciv/models/metadata/ExtensionFunctions.kt
Normal file
7
core/src/com/unciv/models/metadata/ExtensionFunctions.kt
Normal file
@ -0,0 +1,7 @@
|
||||
package com.unciv.models.metadata
|
||||
|
||||
/** Check the url, if no port, add [defaultPort], then return the url. */
|
||||
fun String.checkMultiplayerServerWithPort(defaultPort: Int = 8080): String {
|
||||
return if (contains(":")) this
|
||||
else "$this:$defaultPort"
|
||||
}
|
@ -16,6 +16,7 @@ import com.unciv.UncivGame
|
||||
import com.unciv.logic.MapSaver
|
||||
import com.unciv.logic.civilization.PlayerType
|
||||
import com.unciv.models.UncivSound
|
||||
import com.unciv.models.metadata.checkMultiplayerServerWithPort
|
||||
import com.unciv.models.ruleset.Ruleset
|
||||
import com.unciv.models.ruleset.Ruleset.RulesetError
|
||||
import com.unciv.models.ruleset.Ruleset.RulesetErrorSeverity
|
||||
@ -342,9 +343,9 @@ class OptionsPopup(val previousScreen: BaseScreen) : Popup(previousScreen) {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private fun successfullyConnectedToServer(action: (Boolean, String)->Unit){
|
||||
SimpleHttp.sendGetRequest( "http://"+ settings.multiplayerServer+":8080/isalive", action)
|
||||
|
||||
fun successfullyConnectedToServer(action: (Boolean, String)->Unit){
|
||||
SimpleHttp.sendGetRequest("http://${settings.multiplayerServer.checkMultiplayerServerWithPort()}/isalive", action)
|
||||
}
|
||||
|
||||
private fun getAdvancedTab() = Table(BaseScreen.skin).apply {
|
||||
|
@ -12,12 +12,25 @@ import java.io.File
|
||||
|
||||
|
||||
internal object UncivServer {
|
||||
private var serverPort = 8080
|
||||
|
||||
@JvmStatic
|
||||
fun main(arg: Array<String>) {
|
||||
fun main(args: Array<String>) {
|
||||
args.forEach { arg ->
|
||||
when {
|
||||
arg.startsWith("-port=") -> with(arg.removePrefix("-port=").toIntOrNull() ?: 0) {
|
||||
if (this in 1024..49151) serverPort = this
|
||||
else println("'port' must be between 1024 and 49151")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
println("Server will run on $serverPort port, you can use '-port=XXXX' custom port.")
|
||||
|
||||
val fileFolderName = "MultiplayerFiles"
|
||||
File(fileFolderName).mkdir()
|
||||
println(File(fileFolderName).absolutePath)
|
||||
embeddedServer(Netty, port = 8080) {
|
||||
embeddedServer(Netty, port = serverPort) {
|
||||
routing {
|
||||
get("/isalive") {
|
||||
call.respondText("true")
|
||||
|
Loading…
Reference in New Issue
Block a user