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

@@ -11,18 +11,20 @@ You'll need to either hire some moderators, or make use of (currently non-existe
*Consider enabling a rate limit:* `config messageRateLimit 2` will make it so that players can only send messages every 2 seconds, for example. *Consider enabling a rate limit:* `config messageRateLimit 2` will make it so that players can only send messages every 2 seconds, for example.
2. Make sure that your server is able to handle inappropriate content - this includes NSFW display/sorter art and abusive messages. **Servers that allow such content will be removed immediately.** Consider banning display blocks if it is a problem for your server: `rules add bannedBlocks ["canvas", "logic-display", "large-logic-display"]`. 2. Make sure that your server is able to handle inappropriate content - this includes NSFW display/sorter art and abusive messages. **Servers that allow such content will be removed immediately.** Consider banning display blocks if it is a problem for your server: `rules add bannedBlocks ["canvas", "logic-display", "large-logic-display"]`.
3. **Set an appropriate MOTD, name and description.** This is set with `config <name/desc/motd> <value>`. "Appropriate" means that: 3. **Set an appropriate MOTD, name and description.** This is set with `config <name/desc/motd> <value>`. "Appropriate" means that:
- Your name or description must reflect the type of server you're hosting. - Your name or description must reflect the type of server you're hosting.
Since new players may be exposed to the server list early on, put in a phrase like "Co-op survival" or "PvP" so players know what they're getting into. Yes, this is also displayed in the server mode info text, but having extra info in the name doesn't hurt. Since new players may be exposed to the server list early on, put in a phrase like "Co-op survival" or "PvP" so players know what they're getting into. Yes, this is also displayed in the server mode info text, but having extra info in the name doesn't hurt.
- Make sure players know where to refer to for server support. It should be fairly clear that the server owner is not me, but you. - Make sure players know where to refer to for server support. It should be fairly clear that the server owner is not me, but you.
- Try to be professional in your text; use common sense. - Try to be professional in your text; use common sense.
4. **Get some good maps.** *(optional, but highly recommended)*. Add some maps to your server and set the map rotation to custom-only. You can get maps from the Steam workshop by subscribing and exporting them; using the `#maps` channel on Discord is also an option. 4. **Get some good maps.** *(optional, but highly recommended)*. Add some maps to your server and set the map rotation to custom-only. You can get maps from the Steam workshop by subscribing and exporting them; using the `#maps` channel on Discord is also an option.
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"
} }
``` ```
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. > 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.

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",