This commit is contained in:
Anuken
2023-02-09 17:50:46 -05:00
7 changed files with 49 additions and 94 deletions

View File

@@ -19,10 +19,12 @@ You'll need to either hire some moderators, or make use of (currently non-existe
5. **Check your server configuration.** *(optional)* I would recommend adding a message rate limit of 1 second (`config messageRateLimit 1`), and disabling connect/disconnect messages to reduce spam (`config showConnectMessages false`). 5. **Check your server configuration.** *(optional)* I would recommend adding a message rate limit of 1 second (`config messageRateLimit 1`), and disabling connect/disconnect messages to reduce spam (`config showConnectMessages false`).
6. Finally, **submit a pull request** to add your server's IP to the list. 6. Finally, **submit a pull request** to add your server's IP to the list.
This should be fairly straightforward: Press the edit button on the [server file](https://github.com/Anuken/Mindustry/blob/master/servers_v6.json), then add a JSON object with a single key, indicating your server address. This should be fairly straightforward: Press the edit button on the [server file](https://github.com/Anuken/Mindustry/blob/master/servers_v6.json), then add a JSON object with a single key, indicating your server address.
For example, if your server address is `google.com`, you would add a comma after the last entry and insert: For example, if your server address is `example.com:6000`, you would add a comma after the last entry and insert:
```json ```json
{ {
"address": "google.com" "address": "example.com:6000"
} }
``` ```
> Note that Mindustry also support SRV records. This allows you to use a subdomain for your server address instead of specifying the port. For example, if you want to use `play.example.com` instead of `example.com:6000`, in the dns settings of your domain, add an SRV record with `_mindustry` as the service, `tcp` as the protocol, `play` as the target and `6000` as the port. You can also setup fallback servers by modifing the weight or priority of the record.
Then, press the *'submit pull request'* button and I'll take a look at your server. If I have any issues with it, I'll let you know in the PR comments. Then, press the *'submit pull request'* button and I'll take a look at your server. If I have any issues with it, I'll let you know in the PR comments.

View File

@@ -149,11 +149,16 @@ mod.incompatiblemod = [red]非対応
mod.blacklisted = [red]未対応 mod.blacklisted = [red]未対応
mod.unmetdependencies = [red]依存関係が満たされていません mod.unmetdependencies = [red]依存関係が満たされていません
mod.erroredcontent = [scarlet]コンテンツエラー mod.erroredcontent = [scarlet]コンテンツエラー
mod.circulardependencies = [red]Circular Dependencies
mod.incompletedependencies = [red]Incomplete Dependencies
mod.requiresversion.details = ゲームのバージョンが必要です: [accent]{0}[]\nあなたのゲームは古くなっています。このmodが機能するには、ゲームの新しいバージョン (おそらくベータ/アルファリリース) が必要です。 mod.requiresversion.details = ゲームのバージョンが必要です: [accent]{0}[]\nあなたのゲームは古くなっています。このmodが機能するには、ゲームの新しいバージョン (おそらくベータ/アルファリリース) が必要です。
mod.outdatedv7.details = このmodはゲームの最新バージョンと互換性がありません。 作成者はそれを更新し、[accent]minGameVersion: 136[] を [accent]mod.json[] ファイルに追加する必要があります。 mod.outdatedv7.details = このmodはゲームの最新バージョンと互換性がありません。 作成者はそれを更新し、[accent]minGameVersion: 136[] を [accent]mod.json[] ファイルに追加する必要があります。
mod.blacklisted.details = このmodは、このバージョンのゲームでクラッシュやその他の問題を引き起こすため、手動でブラックリストに登録されています。 使用しないでください。 mod.blacklisted.details = このmodは、このバージョンのゲームでクラッシュやその他の問題を引き起こすため、手動でブラックリストに登録されています。 使用しないでください。
mod.missingdependencies.details = このmodには依存関係がありません: {0} mod.missingdependencies.details = このmodには依存関係がありません: {0}
mod.erroredcontent.details = このゲームは、読み込み中にエラーが発生しました。modの作成者に修正を依頼してください。 mod.erroredcontent.details = このゲームは、読み込み中にエラーが発生しました。modの作成者に修正を依頼してください。
mod.circulardependencies.details = This mod has dependencies that depends on each other.
mod.incompletedependencies.details = This mod is unable to be loaded due to invalid or missing dependencies: {0}.
mod.requiresversion = Requires game version: [red]{0}
mod.errors = コンテンツの読み込み中にエラーが発生しました。 mod.errors = コンテンツの読み込み中にエラーが発生しました。
mod.noerrorplay = [scarlet]以下のModにエラーがあります。[] Modを無効化するか、エラーを修正してください。 mod.noerrorplay = [scarlet]以下のModにエラーがあります。[] Modを無効化するか、エラーを修正してください。
mod.nowdisabled = [scarlet]{0} 依存関係がありません。:[accent] {1}\n[lightgray]これらのModをダウンロードし有効化する必要があります。\nなお、このModは自動的に無効化されます。 mod.nowdisabled = [scarlet]{0} 依存関係がありません。:[accent] {1}\n[lightgray]これらのModをダウンロードし有効化する必要があります。\nなお、このModは自動的に無効化されます。
@@ -287,6 +292,7 @@ server.invalidport = 無効なポート番号です!
server.error = [crimson]サーバーのホストエラー: [accent]{0} server.error = [crimson]サーバーのホストエラー: [accent]{0}
save.new = 新規保存 save.new = 新規保存
save.overwrite = このスロットに上書きしてもよろしいですか? save.overwrite = このスロットに上書きしてもよろしいですか?
save.nocampaign = Individual save files from the campaign cannot be imported.
overwrite = 上書き overwrite = 上書き
save.none = セーブデータが見つかりませんでした! save.none = セーブデータが見つかりませんでした!
savefail = ゲームの保存に失敗しました! savefail = ゲームの保存に失敗しました!
@@ -354,6 +360,8 @@ pausebuilding = [accent][[{0}][] 建築を一時的に中断する
resumebuilding = [scarlet][[{0}][] 建築を再開する resumebuilding = [scarlet][[{0}][] 建築を再開する
enablebuilding = [scarlet][[{0}][] 建築を可能にする enablebuilding = [scarlet][[{0}][] 建築を可能にする
showui = UI 非表示.\nUIを表示するには[accent][[{0}][] を押下 showui = UI 非表示.\nUIを表示するには[accent][[{0}][] を押下
commandmode.name = [accent]Command Mode
commandmode.nounits = [no units]
wave = [accent]ウェーブ {0} wave = [accent]ウェーブ {0}
wave.cap = [accent]ウェーブ {0}/{1} wave.cap = [accent]ウェーブ {0}/{1}
wave.waiting = [lightgray]次のウェーブまで {0} 秒 wave.waiting = [lightgray]次のウェーブまで {0} 秒
@@ -438,6 +446,7 @@ waves.max = 最大ユニット数
waves.guardian = ガーディアン waves.guardian = ガーディアン
waves.preview = プレビュー waves.preview = プレビュー
waves.edit = 編集... waves.edit = 編集...
waves.random = Random
waves.copy = クリップボードにコピー waves.copy = クリップボードにコピー
waves.load = クリップボードから読み込む waves.load = クリップボードから読み込む
waves.invalid = クリップボードのウェーブは無効なウェーブです。 waves.invalid = クリップボードのウェーブは無効なウェーブです。
@@ -649,8 +658,7 @@ bannedunits.whitelist = 禁止ユニットをホワイトリストとして表
bannedblocks.whitelist = 禁止ブロックをホワイトリストとして表示 bannedblocks.whitelist = 禁止ブロックをホワイトリストとして表示
addall = すべて追加 addall = すべて追加
launch.from = [accent]{0}[] からの発射 launch.from = [accent]{0}[] からの発射
"launch.capacity = 発射するアイテムの容量: [accent]{0} launch.capacity = Launching Item Capacity: [accent]{0}
"
launch.destination = 目的地: {0} launch.destination = 目的地: {0}
configure.invalid = 値は 0 から {0} の間でなければなりません。 configure.invalid = 値は 0 から {0} の間でなければなりません。
add = 追加... add = 追加...
@@ -1201,6 +1209,7 @@ rules.unitbuildspeedmultiplier = ユニットの製造速度倍率
rules.unitcostmultiplier = ユニットの製造コスト倍率 rules.unitcostmultiplier = ユニットの製造コスト倍率
rules.unithealthmultiplier = ユニットの体力倍率 rules.unithealthmultiplier = ユニットの体力倍率
rules.unitdamagemultiplier = ユニットのダメージ倍率 rules.unitdamagemultiplier = ユニットのダメージ倍率
rules.unitcrashdamagemultiplier = Unit Crash Damage Multiplier
rules.solarmultiplier = 太陽光の倍率 rules.solarmultiplier = 太陽光の倍率
rules.unitcapvariable = コア数によってユニット上限を変動 rules.unitcapvariable = コア数によってユニット上限を変動
rules.unitcap = 基礎ユニット上限数 rules.unitcap = 基礎ユニット上限数
@@ -2161,8 +2170,8 @@ unit.incite.description = シタデルコアを敵から守ります。\nビー
unit.emanate.description = アクロポリスコアを敵から守ります。\nビームで建造物を修復します。 unit.emanate.description = アクロポリスコアを敵から守ります。\nビームで建造物を修復します。
lst.read = リンクされたメモリセルから数値を読み取ります。 lst.read = リンクされたメモリセルから数値を読み取ります。
lst.write = リンクされたメモリセルに数値を書き込みます。 lst.write = リンクされたメモリセルに数値を書き込みます。
lst.print = メッセージブロックにテキストを追加します。\[accent]Print Flush[] を使用するまで何も表示しません。 lst.print = メッセージブロックにテキストを追加します。[accent]Print Flush[] を使用するまで何も表示しません。
lst.draw = ロジックディスプレイに操作を追加します。\[accent]Draw Flush[] を使用するまで何も表示しません。 lst.draw = ロジックディスプレイに操作を追加します。[accent]Draw Flush[] を使用するまで何も表示しません。
lst.drawflush = キューに入れられた [accent]Draw[] 操作をディスプレイにフラッシュします。 lst.drawflush = キューに入れられた [accent]Draw[] 操作をディスプレイにフラッシュします。
lst.printflush = キューに入れられた [accent]Print[] 操作をメッセージ ブロックにフラッシュします。 lst.printflush = キューに入れられた [accent]Print[] 操作をメッセージ ブロックにフラッシュします。
lst.getlink = プロセッサーのリンクを番号で取得します。番号は0から始まります。 lst.getlink = プロセッサーのリンクを番号で取得します。番号は0から始まります。

View File

@@ -19,7 +19,7 @@ import mindustry.world.meta.*;
import static mindustry.Vars.*; import static mindustry.Vars.*;
public class ItemTurret extends Turret{ public class ItemTurret extends Turret{
public ObjectMap<Item, BulletType> ammoTypes = new ObjectMap<>(); public ObjectMap<Item, BulletType> ammoTypes = new OrderedMap<>();
public ItemTurret(String name){ public ItemTurret(String name){
super(name); super(name);
@@ -82,6 +82,17 @@ public class ItemTurret extends Turret{
} }
public class ItemTurretBuild extends TurretBuild{ public class ItemTurretBuild extends TurretBuild{
@Override
public void onProximityAdded(){
super.onProximityAdded();
//add first ammo item to cheaty blocks so they can shoot properly
if(!hasAmmo() && cheating() && ammoTypes.size > 0){
handleItem(this, ammoTypes.keys().next());
}
}
@Override @Override
public void updateTile(){ public void updateTile(){
unit.ammo((float)unit.type().ammoCapacity * totalAmmo / maxAmmo); unit.ammo((float)unit.type().ammoCapacity * totalAmmo / maxAmmo);

View File

@@ -501,7 +501,7 @@ public class Turret extends ReloadTurret{
ammo.swap(ammo.size - 1, ammo.size - 2); ammo.swap(ammo.size - 1, ammo.size - 2);
} }
return ammo.size > 0 && ammo.peek().amount >= ammoPerShot || cheating(); return ammo.size > 0 && (ammo.peek().amount >= ammoPerShot || cheating());
} }
public boolean charging(){ public boolean charging(){

View File

@@ -191,7 +191,12 @@ public class ServerControl implements ApplicationListener{
info("Selected next map to be @.", Strings.stripColors(map.name())); info("Selected next map to be @.", Strings.stripColors(map.name()));
play(true, () -> world.loadMap(map, map.applyRules(lastMode))); play(true, () -> {
world.loadMap(map, map.applyRules(lastMode));
if(Config.autoPause.bool() && Groups.player.isEmpty()){
Core.app.post(() -> state.set(State.paused));
}
});
}else{ }else{
netServer.kickAll(KickReason.gameover); netServer.kickAll(KickReason.gameover);
state.set(State.menu); state.set(State.menu);

View File

@@ -1,8 +1,4 @@
[ [
{
"name": "Sectorized",
"address": ["sectorized.ddns.net"]
},
{ {
"name": "{AA}", "name": "{AA}",
"address": ["recessive.net"] "address": ["recessive.net"]
@@ -11,18 +7,6 @@
"name": "EasyPlay", "name": "EasyPlay",
"address": ["easyplay.su"] "address": ["easyplay.su"]
}, },
{
"name": "Tendhost",
"address": ["tendhost.ddns.net", "smokeofanarchy.ru:7576"]
},
{
"name": "Atanner Gaming",
"address": ["mindustry.atannergaming.com:6567", "mindustry.atannergaming.com:6700", "mindustry.atannergaming.com:9000"]
},
{
"name": "C.A.M.S.",
"address": ["0.baseduser.eu.org:42000", "nikochio.ddns.net"]
},
{ {
"name": "Chaotic Neutral", "name": "Chaotic Neutral",
"address": ["c-n.ddns.net:1111", "c-n.ddns.net:2222", "c-n.ddns.net:3333"] "address": ["c-n.ddns.net:1111", "c-n.ddns.net:2222", "c-n.ddns.net:3333"]
@@ -47,64 +31,8 @@
"name": "ALEX", "name": "ALEX",
"address": ["alexmindustryhub.ddns.net:6568", "dogemindustry.ddns.net:25586", "alexmindustry.ddns.net:25587", "alexmindustryattac.ddns.net:25800","alexmindustryturbo.ddns.net:25581","alexmindustryhex.ddns.net:25583"] "address": ["alexmindustryhub.ddns.net:6568", "dogemindustry.ddns.net:25586", "alexmindustry.ddns.net:25587", "alexmindustryattac.ddns.net:25800","alexmindustryturbo.ddns.net:25581","alexmindustryhex.ddns.net:25583"]
}, },
{
"name": "Minty [subzero]",
"address": ["minty-server.ddns.net"]
},
{
"name": "Korea",
"address": ["mindustry.initd.kr","mindustry.kr:7100"]
},
{
"name": "Obvilion Network",
"address": ["obvilion.ru", "obvilion.ru:7001", "obvilion.ru:7002", "obvilion.ru:7003"]
},
{
"name": "Nydus",
"address": ["v6.mindustry.nydus.app:6566"]
},
{ {
"name": "Mindustry.Party", "name": "Mindustry.Party",
"address": ["game.mindustry.party"] "address": ["game.mindustry.party"]
},
{
"name": "TSR",
"address": ["uk01.optik.host:26175", "uk01.optik.host:26164"]
},
{
"name": "Sakura",
"address": ["160.16.207.141", "160.16.207.141:21527", "160.16.207.141:31587", "160.16.207.141:26810", "160.16.207.141:4848"]
},
{
"name": "MeowLand",
"address": ["34.134.111.15"]
},
{
"name": "M-DE",
"address": ["mindustry.inc.li", "mindustry.inc.li:6568"]
},
{
"name": "CxZx",
"address": ["usfr2.forcehost.net:25578"]
},
{
"name": "CreateDustry",
"address": ["129.151.64.81:26032"]
},
{
"name": "NukeDustry",
"address": ["nukedustry.tk:7777", "nukedustry.tk:8888"]
},
{
"name": "MindustryBR",
"address": ["mindustryptbr.ddns.net:25579"]
},
{
"name": "Shard",
"address": ["59.12.120.171"]
},
{
"name": "New Campaign Like",
"address": ["n5.yeet.ml:6568"]
} }
] ]

View File

@@ -1,7 +1,7 @@
[ [
{ {
"name": "Explosive corp", "name": "Explosive corp",
"address": ["94.103.91.96:4545", "94.103.91.96:4848", "94.103.91.96:4949", "94.103.91.96:5050", "94.103.91.96:5151", "94.103.91.96:1551"] "address": ["94.103.91.96:4545", "94.103.91.96:4848", "94.103.91.96:4949", "94.103.91.96:5151", "94.103.91.96:1551"]
}, },
{ {
"name": "RCM", "name": "RCM",
@@ -53,7 +53,7 @@
}, },
{ {
"name": "Omega Hub", "name": "Omega Hub",
"address": ["n1.mindustry.me:6608", "n7.mindustry.me:6567", "n7.mindustry.me:6570", "n1.mindustry.me:6568", "n1.mindustry.me:6671", "n1.mindustry.me:6570", "n1.mindustry.me:6573", "n1.mindustry.me:6610", "n1.mindustry.me:6567", "n1.mindustry.me:6599", "n1.mindustry.me:6774", "n1.mindustry.me:6571"] "address": ["n1.mindustry.me:6608", "n7.mindustry.me:6567", "n7.mindustry.me:6570", "n1.mindustry.me:6568", "n1.mindustry.me:6671", "n1.mindustry.me:6570", "n1.mindustry.me:6573", "n1.mindustry.me:6610", "n1.mindustry.me:6567", "n1.mindustry.me:6599", "n1.mindustry.me:6774", "n1.mindustry.me:6571", "n1.mindustry.me:6589"]
}, },
{ {
"name": "KMWStudios", "name": "KMWStudios",
@@ -105,7 +105,7 @@
}, },
{ {
"name": "OMNIDUSTRY", "name": "OMNIDUSTRY",
"address": ["92.255.108.134","92.255.108.134:6568","92.255.108.134:6569","92.255.108.134:6570","92.255.108.134:6571","92.255.108.134:6572","92.255.108.134:6573","92.255.108.134:6574"] "address": ["omnidustry.su", "omnidustry.su:6568", "omnidustry.su:6569", "omnidustry.su:6570", "omnidustry.su:6571", "omnidustry.su:6572", "omnidustry.su:6573", "omnidustry.su:6574"]
}, },
{ {
"name": "The Devil", "name": "The Devil",